LED灯闪烁实验总结.docx
《LED灯闪烁实验总结.docx》由会员分享,可在线阅读,更多相关《LED灯闪烁实验总结.docx(11页珍藏版)》请在冰豆网上搜索。
LED灯闪烁实验总结
指导教师:
课程名称:
Ziqbee技术及应用实验项目:
LED灯闪烁实验
专业班级:
姓名:
学号:
成绩:
1・实验目的
(1)学习单片机10口配置与驱动,实现指示灯LED1闪烁,频率为1Hz;
(2)通过模块化编程,养成良好编程习惯。
2.实验设备
(1)CC253C核心板一块;
(2)传感器底板一个;
(3)仿真器一个;
(4)方口USB线一根;
3.实验原理
3.1硬件设计原理
本实验的原理如图1」所示。
其中,LED1和LED3都串联一个R273和R275限流电阻,然后连接到
CC2530勺P1口的P11和P10管脚上。
当P11为低电平时,LED1±有电流流过,LED1被点亮,反之
熄灭。
33VLED1
T片
gS
LED3
4T0R
图LED灯原理图
限流电阻R的计算:
图中R273和R275限流电阻,其计算公式如下:
R二(U—UF)/ID(1-1)
式中,U为电路供电电压,UF为LED正向压降,ID为LED的工作电流。
对于普通LED发光二极管,
其正向压降:
黄色为1.4V、红色为1.6V、蓝/白色为2.5V;点亮工作电流为3-20mAo
由图可知,电路供电电压为U=3.3V,LED1选择为黄色发光二极管(压降是1.4V),带入
1)式可得R的取值范围是95-633Q,电阻只要在此范围内即可,一般选择了470Q的常用电阻。
从图可以看出,如果要让LED1发光,需要设置CC253C对应的I/O口将LED电平拉低。
本实验我们只点亮LED1指示灯,所以只要设置LED1为低电平即可,所以只要我们知道LED1与CC2530哪个管脚相连就可以进行编程。
随着这个思路我们在原理图中找到LED1与CC2530芯片的P1_1管脚连接,
将P1_1管脚拉低LED1即被点亮。
3.2程序设计原理
(1)主程序分析
本实验的程序流程如图所示,其重点I0口的配置。
如果以1Hz的频率点亮LED1闪烁,贝嚅要配置
P1_1为输出,然后在P1_1输出1Hz的脉冲信号。
开始
图1-2程序逻辑流程图
(2)10端口配置
P1口通过特殊功能寄存器P1SEL(P1口功能选择寄存器)和P1DIR(P1口方向寄存器)进行配
置,其定义如下
P1SEL(P1功能选择寄存器,P0SEL同理):
位号码
名称
复位
R/W
描述
7:
0
SELP1」7:
0]
0x00
R/W
P1.7到P0.0功能选择
0:
通用1/0
1:
外设功能
P1DIR(P1方向寄存器,P0DIR同理):
位号码
名称
复位
R/W
描述
7:
0
SELP1」7:
0]
0x00
R/W
P1.7至IJP1.0的I/O方向
0:
输入
1:
输出
特殊功能寄存器的配置方法:
通过位操作实现对特殊功能寄存器的配置。
【例如,如果需要对P1SEL
的第3位设置为1,则可用P1SEL|=0x08(二进制表示为:
00001000来实现;如果需要对P1SEL的第3
位设置为Q则可用P1SEL&=0xF7来实现。
】
(3)延时子程序设计
延时函数原型如下,在16MHz主时钟频率下,参数time的值表示延时了多少ms。
(本例使用的cc253(单片机上电默认使用内部RC振荡器产生系统主时钟,内部主时钟RC振荡器频率为16MHz)
voidDelay_m$unsignedinttime)
{
unsignedinti,j;
for(i=0;i