- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LED灯闪烁实验总结
LED灯闪烁实验总结
PAGE / NUMPAGES
LED灯闪烁实验总结
课程名称:
Zigbee
技术及应用
实验项目:
LED
灯闪耀实验
指导教师:
专业班级:
姓名:
学号:
成绩:
实验目的
(1) 学习单片机 IO口配置与驱动,实现指示灯 LED1闪耀,频次为 1Hz;
(2) 经过模块化编程,养成优秀编程习惯。
实验设施
(1) CC2530中心板一块;
(2) 传感器底板一个;
(3) 仿真器一个;
(4) 方口 USB线一根;
实验原理
3.1 硬件设计原理
本实验的原理如图 1-1 所示。此中, LED1和 LED3都串连一个 R273和 R275限流电阻,而后连结到CC2530的 P1口的 P1_1和 P1_0管脚上。当P1_1为低电平常, LED1上有电流流过, LED1被点亮,反之熄灭。
图 1-1 LED 灯原理图
限流电阻 R的计算:图中 R273和R275限流电阻,其计算公式以下:
R=(U-UF)/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-633 Ω,电阻只需在此范围内即可,一般选择了 470Ω的常用电阻。
从图 1-1 能够看出,假如要让 LED1发光,需要设置 CC2530对应的 I/O 口将 LED电平拉低。本实验我们只点亮 LED1指示灯,因此只需设置 LED1为低电平即可, 因此只需我们知道 LED1与CC2530哪个管脚相
连就能够进行编程。跟着这个思路我们在原理图中找到 LED1与 CC2530芯片的 P1_1管脚连结,将 P1_1
管脚拉低 LED1即被点亮。
3.2 程序设计原理
(1)主程序剖析
本实验的程序流程如图 1-2 所示,其要点 IO 口的配置。假如以 1Hz 的频次点亮 LED1闪耀,则需要配置 P1_1为输出,而后在 P1_1输出 1Hz的脉冲信号。
开始
初始化 I/O 口
翻开 LED1
延时 500ms
封闭 LED1
延时 500ms
图 1-2 程序逻辑流程图
(2)IO 端口配置
P1 口经过特别功能存放器 P1SEL(P1 口功能选择存放器) 和 P1DIR(P1 口方向存放器) 进行配置,
其定义以下。
P1SEL(P1 功能选择存放器, P0SEL同理):
位号码 名称 复位 R/W 描绘
7:0 SELP1_[7:0] 0x00 R/W P1.7 到 P0.0 功能选择
0:通用 I/O
1: 外设功能
P1DIR(P1 方向存放器, P0DIR同理):
位号码 名称 复位 R/W 描绘
7:0 SELP1_[7:0] 0x00 R/W P1.7 到 P1.0 的 I/O 方向
0: 输入
1: 输出
特别功能存放器的配置方法: 经过位操作实现对特别功能存放器的配置。 【比如,假如需要对 P1SEL
的第 3位设置为 1,则可用 P1SEL |= 0x08 ( 二进制表示为: 0000 1000 ) 来实现;假如需要对 P1SEL的
第 3位设置为 0,则可用 P1SEL = 0xF7来实现。】
(3)延时子程序设计
延时函数原型以下,在 16M Hz主时钟频次下,参数 time 的值表示延时了多少 ms。(本例使用的
cc2530单片机上电默认使用内部
void Delay_ms( unsigned
{
RC振荡器产生系统主时钟,内部主时钟 int time )
RC振荡器频次为
16M Hz)
unsigned int i , j ;
for ( i =0; i time ; i
for ( j =0; j 500;
++)
j
++);
}
以上 C语言代码由
IAR编译生成的汇编代码如图
1-3 所示。
联合 C语言的延时函数和从汇编指令我们能够看到存放器
R0/R1保留变量
j
的值, R2/R3保留参数
time 的值, R4/R5保留变量 i 的值。
依据 cc2530数据手册和用户指南上对 8051内核的介绍, cc2530内核为兼容标准 8051的单周期内核,大部分单字节指令在一个机器周期内都能履行达成。
下边我们联合图 1-3 中的汇编指令详尽剖析一下延不时间的详细计算方法。此处我们忽视入栈代码段的时间耗费。
地点 00006B-00006F:将参加比较计算的存放器 R4/R5清零
文档评论(0)