实验一 LED控制实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 LED控制实验
一.实验目的
在EBDCC2530节点板上运行自己的程序。
通过I/O控制小灯闪烁和蜂鸣器鸣叫。
二.实验环境
硬件:PC机,EBDCC2530节点板,USB接口仿真器。
软件:Windows 98/2000/NT/XP, IAR集成开发环境。
三.实验原理
仔细阅读和查询CC2530设备的数据手册来设置CC2530的I/O引脚,通过I/O引脚输出的高低电平来控制灯的亮与灭和蜂鸣器的鸣叫。本实验设置P1.0、P1.1、P1.4 I/O引脚来选通LED1、LED2、LED3,引脚置为低电平点亮LED,反之熄灭LED。设置P0.1引脚来选通BEEP,引脚置为低电平蜂鸣器鸣叫,反之蜂鸣器不鸣叫。 CC2530的I/O控制口一共有21个,分别为P0、P1、P2。我们以LED1所对应的P1.0引脚所用到的控制寄存器为例,仔细说明控制寄存器中每一位所代表的意义。其他控制寄存器所代表的意义请查看CC2530数据手册。
P1DIR(P1方向寄存器):
D7 D6 D5 D4 D3 D2 D1 D0
P1.7方向0:输入1:输出P1.6方
向0:
输入
1:输出
P1.5方
向0:
输入
1:输出
P1.4方
向0:
输入
1:输出
P1.3方
向0:
输入
1:输出
P1.2方
向0:
输入
1:输出
P1.1方
向0:
输入
1:输出
P1.0方
向0:
输入
1:输出
P1SEL(P1功能选择寄存器):
D7 D6 D5 D4 D3 D2 D1 D0
P1.7功能 0:普通I/O 1:外设P1.6功
能 0:普
通I/O
1:外设
P1.5功
能 0:普
通I/O
1:外设
P1.4功
能 0:普
通I/O
1:外设
P1.3功
能 0:普
通I/O
1:外设
P1.2功
能 0:普
通I/O
1:外设
P1.1功
能 0:普
通I/O
1:外设
P1.0功
能 0:普
通I/O
1:外设
寄存器的设置:
1)将控制寄存器的某一位置1:
例如:P1DIR |= 0x01;
解释:“|=”表示按位或运算,0x01为十六进制数,转换成二进制数为0000 0001,若P1DIR原来的值为0011 0010,或运算后P1DIR的值为0011 0001,根据上面的计算后P1_0的方向改为输出,其他I/O 口保持不变。
2)将控制寄存器的某一位清0:
例如:P1DIR &= ~0x01;
解释:“&=”表示按位与运算,“~”运算表示取反,0x01为十六进制数,转换成二进制数为1111 1110,P1DIR原来的值为0011 0011,与运算后P1DIR的值为0011 0010,根据上面的计算后P1_0的方向改为输入,其他I/O口保持不变。
四.主要代码
LDE灯实现的主要代码为:
void main(void)
{
led_beep_init();
halWait(250);
while(1) //开始循环
{
LED1 = 0; //LED1 闪烁
halWait(250);
LED1 = 1;
halWait(250);
LED2 = 0; //LED2 闪烁\
halWait(250);
LED2 = 1;
halWait(250);
LED3 = 0; //LED3 闪烁
halWait(250);
LED3 = 1; halWait(250);
BEEP = 0; //BEEP 鸣叫halWait(250);
BEEP = 1;
halWait(250);
LED1 = 0; //LED 灯全亮LED2 = 0;
LED3 = 0;
halWait(250);
halWait(250);
LED1 = 1; //LED 灯全灭LED2 = 1;
LED3 = 1;
halWait(250);
halWait(250);
}
}
五.实验步骤
1、正确连接USB仿真器的下载线和EBDCC2530节点板。
2、打开实验源码LEDs.eww(路径为:出厂光盘DISK-EMBV210-WSN\05-Example\2 基本接口实验\2.2 LED),编译工程,依次选择“Project”→“Download and Debug”,下载到CC2530节点板。
3、把仿真器左侧的USB接口拔掉,然后拔掉连接在EBDCC2530节点板DBG位置的调试接口。我们打开EBDCC2530节点板右下方的电源开关,此时可以观察到程序运行的情况。(在不拔掉仿真器的情况下,我们可以通过相关的调试进一步观察LED的闪烁情况和蜂鸣器的鸣叫情况。)
4、修改延时函数,可以改变LED 小灯的闪烁和蜂鸣器鸣叫的时间间隔。
5、重新编译,并下载程序到EBDCC2530节点板,观察LED的闪烁和蜂鸣器的鸣叫情况。
六.实验结果
Led灯全亮时 LED灯全灭