- 30
- 0
- 约3.78千字
- 约 11页
- 2017-01-12 发布于重庆
- 举报
实验4外部中断配置实验例程
ZigBee实验四
所谓中断是指CPU在正常执行程序的过程中,由于内部或外部事件的触发或由程序的预先安排,引起CPU暂时中断当前正在运行的程序,而转去执行为内部或外部事件或程序预先安排的事件的服务子程序,待中断服务子程序执行完毕后,CPU再返回到被暂时中断的程序处(断点)继续执行原来的程序,这一过程叫做中断。
CC2530有18个中断源。每个中断源都有它自己的位于一系列SFR寄存器中的中断请求标志。相应标志位请求的每个中断可以分别使能或禁用。
通过本实验了解CC2530 的外部中断的配置;
通过本实验了解CC2530的外部中断功能的运用。
用中断编写一个使用SW1按键,控制LED亮灭的程序;
烧录程序并进行硬件上的验证。
硬件准备
ZIGBEE调试底板一个;
图4-1 ZIGBEE调试底板
ZIGBEE仿真器一个;
图4-2 ZIGBEE仿真器
ZIGBEE模块一个;
图4-3 ZIGBEE模块
9~12V电源一个;
图4-4 电源
硬件连接图;
图4-5 硬件连接图
软件准备
IAR Embedded Workbench for MCS-51 7.51A集成开发环境;
仿真器驱动。
IO中断
通用I/O 引脚设置为输入后,可以用于产生中断。中断可以设置在外部信号的上升或下降沿触发。P0、P1或P2 端口都有中断使能位,对位于IENl-2 寄存器内的端口所有的位都是公共的。如下:
IENI.P0 IE:P0 中断使能;
IEN2.PI IE:P1 中断使能;
IEN2.P2IE:P2 中断使能。
除了这些公共中断使能之外,每个端口的位都有位于SFR 寄存器P0IEN、P1IEN 和P2IEN 的单独的中断使能。即使配置为外设I/O 或通用输出的I/O 引脚使能时都有中断产生。
当中断条件发生在I/O 引脚之一上面,P0-P2 中断标志寄存器P0IFG、P1IFG 或P2IFG 中相应的中断状态标志将设置为1。不管引脚是否设置了它的中断使能位,中断状态标志都被设置。当中断已经执行,中断状态标志被清除,该标志写入0。这个标志必须在清除CPU 端口中断标志(PxIF)之前被清除。
用于中断的SFR 寄存器描述在下一节。寄存器总结如下:
? P0IEN: P0 中断使能
? P1IEN: P1 中断使能
? P2IEN: P2 中断使能
? PICTL: P0、P1 和P2 触发沿设置
? P0FG : P0 中断标志
? P1IFG: P1 中断标志
? P2IFG: P2 中断标志
中断配置
CPU 有18 个中断源。每个中断源都有它自己的位于一系列SFR 寄存器中的中断请求标志。相应标志位请求的每个中断可以分别使能或禁用。
每个中断请求可以通过设置中断使能SFR 寄存器的中断使能位IEN0,IEN1 或者IEN2 使能或禁止。CPU的中断使能相对应的SFR。
注意某些外部设备有若干事件,可以产生与外设相关的中断请求。这些中断请求可以作用在端口0、端口1、端口2、定时器1、定时器2、定时器3、定时器4 和无线电上。对于每个内部中断源对应的SFR 寄存器,这些外部设备都有中断屏蔽位。
为了使能任一中断功能,应当采取下列步骤:
1、清除中断标志;
2、如果有,则设置SFR 寄存器中对应的各中断使能位为1;
3、设置寄存器IEN0、IEN1 和IEN2 中对应的中断使能位为1;
4、设置IEN0 中的EA 位为1 使能全局中断;
5、在该中断对应的向量地址上,运行该中断的服务程序。
启动IAR Embedded Workbench,新建一个项目工程“EXINT_TEST”,并拷贝对应配套实验例子里user文件夹到自己新建的工程目录下,并将user文件夹里的.C文件添加到工程里,并配置工程项目,具体步骤参看《实验一》。
图4-6 建立的工程
Make,这一步可以省略,因为进行DeBug前,IAR软件会先编译再下载代码到目标板上去仿真,但对于编译检查错误,这一步也很有必要。如果正确编译后文件右侧的红星会消失。在Make或Debug之前,Clean一下,如下图所示:
图4-7 编译代码文件
如果正确建立工程并正确配置了工程,则此时编译是无错误的,编译无错误如图(注意前文提到的未编译文件的右边有个红星,如果正确编译后,右边没有出现红星):
图4-8 正确编译工程
按照前面“实验设备”小节中的“硬件连接图”连接好硬件并打开电源,点击DEBUG按钮或者”Project-Debug”或者快捷键“Ctrl + D”进行程序下载并Debug。如有出错,请检查硬件连接或拔掉仿真器USB
原创力文档

文档评论(0)