LED灯闪烁实验总结.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

156****9082 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档