




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程名称:Zigbee技术及应用实验项目:LED灯闪烁实验指导教师: 专业班级: 姓名: 学号: 成绩: 1 .实验目的(1)学习单片机IO 口配置与驱动,实现指示灯LED1闪烁,频率为1Hz;(2)通过模块化编程,养成良好编程习惯。2 .实验设备(1) CC253战心板一块;(2) 传感器底板一个;(3) 仿真器一个;(4) 方口 US瞰一根;3 .实验原理3.1 硬件设计原理本实验的原理如图1-1所示。其中,LED1和LED3都串联一个R273ffi R275艮流电阻,然后连接到 CC2530JP1 口的P1_1和P1_0f脚上。当P1_1为低电平时,LED1上有电流流过,LED1被点亮,
2、反之 熄灭。3JVLED1T力Ej Pl 1LED3吟 PI/I 4:0R1-1 LED 灯原理图限流电阻R的计算:图中R273WR275艮流电阻,其计算公式如下:R=(UUF)/ID(1-1)式中,U为电路供电电压,UF为LED正向压降,ID为LED的工作电流。对于普通LED发光二极管,其正向压降:黄色为1.4V、红色为1.6V、蓝/白色为2.5V;点亮工彳电流为3-20mA。由图1-1可知,电路供电电压为U=3.3V, LED1 选择为黄色发光二极管(压降是1.4V) ,带入 (1-1)式可得R的取值范围是95-633Q,电阻只要在此范围内即可,一般选择了 470Q的常用电阻。从图1-1可
3、以看出,如果要让LED1发光,需要设置CC2530寸应的I/O 口将LED电平拉低。本实验我们只点亮LED1指示灯,所以只要设置LED1为低电平即可,所以只要我们知道LED1与CC25301个 管脚相连就可以进行编程。随着这个思路我们在原理图中找到LED1与CC253曲片的P1_1管脚连接,将P1 1管脚拉低LED1即被点亮。3.2 程序设计原理( 1)主程序分析本实验的程序流程如图1-2所示,其重点IO 口的配置。如果以1Hz的频率点亮LED1闪烁,则需要 配置P1_1为输出,然后在P1_1输出1Hz的脉冲信号。C开始图1-2程序逻辑流程图(2) IO端口配置P1 口通过特殊功能寄存器 P1
4、SEL (P1 口功能选择寄存器)和P1DIR (P1 口方向寄存器)进行配 置,其定义如下。P1SEL (P1功能选择寄存器,P0SEL同理):位号码名称复位R/W描述7:0SELP1_7:00x00R/WP1.7到P0.0功能选择0: 通用I / O1:外设功能P1DIR (P1方向寄存器,P0DIR同理):位号码名称复位R/W描述7:0SELP1_7:00x00R/WP1.7至U P1.0的I/O 方向0:输入1:输出特殊功能寄存器的配置方法:通过位操作实现对特殊功能寄存器的配置。【例如,如果需要对P1SEL的第3位设置为1,则可用P1SEL|= 0x08 (二进制表示为:0000 10
5、00来实现;如果需要对P1SEL勺第3位设置为0,则可用P1SEL &= 0xF7来实现。(3)延时子程序设计延时函数原型如下,在16M Hz主时钟频率下,参数time的值表示延时了多少ms。(本例使用的 cc2530片机上电默认使用内部RC振荡器产生系统主时钟,内部主时钟 RC振荡器频率为16M Hz)void Delay_m$unsignedint time)unsigned int i, j;for(i=0; i<time; i+)for(j= 0; j<50Q j+);以上C语言代码由IAR编译生成的汇编代码如图1-3所示。结合C语言的延时函数和从汇编指令我们可以看
6、到寄存器R0/R1保存变量j的值,R2/R3保存参数time的值,R4/R5保存变量i的值。根据cc253O据手册和用户指南上对8051内核的介绍,cc253的核为兼容标准8051的单周期内核, 大多数单字节指令在一个机器周期内都能执行完成。下面我们结合图1-3中的汇编指令详细分析一下延时时间的具体计算方法。此处我们忽略入栈代码 段的时间消耗。地址00006B-00006F将参与比较计算的寄存器 R4/R5清零,然后跳转至00008她行。地址00008A-00008F R4/R5(变量i)与R2/R3(参数time)进行减法运算,如果两次都没没有产生借位,即CY=0。则说明R4/R5累加到了
7、time指定的次数,程序执行到“ JNC 0x0097' PC指针将调转到地址 00009初出延时循环,否则循序向下执行。地址000091-000095对R0/R1清零,将PC旨针跳转到地址00007孰行地址00079-000080清除借位寄存器值后将R0/R1与字面量5001行减法运算,然后判断借位寄存否则PC指针跳转到地址00007处执行器CY的值,如果CY=0则循序执行地址000082t指令,地址000071-000078将R0/R1中保存的变量做自力口 1操作。地址000082-000089将R4/R5中保存的变量做自加1操作。RegisterDisasserrulvGo to
8、.QcoCodc图1-3延时函数汇编代码dA-(J3BAcgiskcrj-BRO ERIL BR2-ER3-咐R4ERG -ERE L ER 7-F -U -3 -屿口-RSI -HD-ACCY EO KI R2 R3 E4 RS E6 R7 SF SPP SPX DPTRUxUCuao000000x0000nxnnOkQO 0x01 0xF4 0h01 0x00 0x00 0x00 0x000xC57CBAMK = OkOOPCOkCOSD由以上分析可知,地址000091-000095 000071-00008段是C语言代码for(j=0; j<50Q j+)的汇编 指令。每次循环,地
9、址00091-00009段指令执行1次,地址000071-00008段指令执行50畋。查询80C51 汇编指令集得到一次for(j=0; j<50Q j+)循环CC253需要执行(6+13*500)个指令周期。在上文中我们查询CC253嗷据手册和用户手册得知CC253眦理大多数单字节指令只需要一个机器周期。假设所有指令都在一个机器周期内执行完成。 CC253时行一次for(j = 0; j<50Q j+)循环最少需 要(6+13*500)个机器周期。单片机一个机器周期等于一个时钟周期,CC253r个时钟周期为1/16M , 所以该次循环最少用时约400us假设双字节指令需要的机器周
10、期与标准 8051相同。CC253瞅行一次for(j=0; j<500 j+)循环最 多需要6*12+9*500+3*12*5001机器周期。同理该次循环最多用时约 1400us由于TI没有开源CC2530寸汇编的取址和译码操作。所以这里我彳门不能明确CC2530旨令每一个汇编 指令的用时。只能粗略估算。上述代码中循环的50歆是一个经验值,也可以借助示波器将1msi勺延时 次数计算出来。4 .实验步骤步骤一:编写LED灯闪烁程序,编译无误。步骤二:将CC2530真块(CC2530K心板与传感器底板,以后简称 CC2530真块)与仿真器连接, 仿真器用US琏接线与电脑进行连接。步骤三:点击
11、IAR软件中的Download and Debug按钮进行编译下载。步骤四:然后单击调试工具栏中的GO按钮。步骤五:此时LED1指示灯闪烁,则成功;否则返回步骤一,直至调试成功。5 .实验部分参考代码main函数文件:/* fn main* brief The main function.* param None* return None*/void main(void)/* LED1 初始化 */Led1_Init ();while(1)/* 开 LED1 */LED1_ON ();/*延时约500ms */Delay_ms (500);/* 关 LED1 */LED1_OFF ();/*延
12、时约500ms */Delay_ms (500);leM文件:#ifndef _LED_H#define _LED_H#include <ioCC2530.h>#define LED1 P1_1/*宏定义开LED1 */#define LED1_ON() LED1 = 0/*宏定义关LED1 */#define LED1_OFF() LED1 = 1/*函数声明部分 */extern void Led1_Init (void);extern void Delay(unsigned int time);#endif / _LED_HLed灯控制文件:#include <ioCC
13、2530.h>#include "led.h"/* fnLed1_Init* briefLED1 initialization.* paramNone* returnNone* */void Led1_Init (void)/* 配置寄存器将 P1_1配置成普通I/O 口 */ P1SEL &=0x02;/* 配置寄存器将 P1_1配置成输出模式*/P1DIR |=0x02;LED1 = 1;/* fnDelay_ms* brief This is a delay function.* param(in)time- Delay time* returnNone
14、*/void Delay_ms(unsigned int time)unsigned int i, j;for (i = 0; i<time; i+) for(j= 0; j<500; j+);6 .实验结果LED1指示灯闪烁一次,频率是1Hz。7 .附录:时钟周期知识扩展8051 CPU 简介增强型8051内核使用标准的8051指令集。因为以下原因指令执行比标准的8051更快:每个指令周期是一个时钟,而标准的8051每个指令周期是12个时钟。消除了总线状态的浪费。因为一个指令周期与可能的内存存取是一致的,大多数单字节指令在一个时钟周期内执行。除了速度提高之外,增强型8051 内核还包括结构上的改善:第二个数据指针一个扩展的18 源中断单元8051 内核的对象代码兼容业界标准的8051 微控制器。即对象代码使用8051 内核上执行的业界标准的80
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民办四川天一学院《食品工厂设计Ⅱ》2023-2024学年第二学期期末试卷
- 环保造纸原料的选择考核试卷
- 液力元件在港口起重机中的应用考核试卷
- 现代金属工艺品设计创新与实践考核试卷
- 水产加工品安全监管与质量控制措施考核试卷
- 电声器件在安防报警系统中的应用考核试卷
- 电子电路的智能穿戴设备电池管理考核试卷
- 电吹风风力减弱修理考核试卷
- 电机制造中的嵌入式系统设计考核试卷
- 2025年-海南省建筑安全员《B证》考试题库
- 托育服务中心项目可行性研究报告
- 春检工作安全措施(标准版)
- 2025版《南方凤凰台·5A教案·基础版·化学》导学案
- TPX6111B数显卧式铣镗床使用手册3
- 法莫替丁注射液-外科
- 【采购管理优化探究文献综述3000字】
- +山东省泰安市肥城市2023-2024学年七年级下学期期中考试英语试题+
- (高清版)WST 830-2024 外照射放射防护剂量转换系数标准
- (高清版)JTGT 5440-2018 公路隧道加固技术规范
- CHT 9016-2012 三维地理信息模型生产规范(正式版)
- 经济学说史考试重点PDF
评论
0/150
提交评论