单片机技术与应用电子教案 2.外部中断控制LED亮灭.doc
PAGE
PAGE1
课时教案
课程:单片机技术与应用-基于CC2530的ZigBee技术开发与应用
课题
外部中断控制LED亮灭
课时
4
教学
目标
知识:
1.掌握CC2530中断处理流程
2.掌握中断服务函数的格式
3.掌握外部中断控制LED亮灭的设计流程
技能:
1.会设计编写程序
2.会应用IAR软件编写、编译、链接、下载、调试程序,能够将CCDebugger仿真下载器的下载线连接到ZigBee实训模块与电脑,进行仿真演示。
素质:
1.程序设计过程中,具备严谨求实、认真负责的学习态度。
2.学习中具备守纪律、讲规矩、明底线、知敬畏的道德意识。
重点
1.中断服务函数的格式
2.外部中断控制LED亮灭的设计流程
难点
外部中断控制LED亮灭的程序设计
教法
做中教做中学任务驱动式
学法
学练结合自主探究
教具
试验
多媒体、PPT课件
教学过程
问题设计及知识点
师生互动设计
(问题与任务)
外部中断控制LED亮灭
【任务描述】
基于ZigBee实训模块做基础开发,采用中断的方式开发按键功能,每次按下SW1键,LED1亮灭状态反转。
【任务分析】
1.知识分析
实现按键控制LED,必须理解CC2530单片机中断处理过程,从而理解其中断服务函数的格式及含义,掌握外部中断程序设计流程。
2.设备分析
实训任务选择ZigBee实训模块,能够依据实训模块电路图,明确按键、灯与CC2530单片机端口的关系。
3.技能分析
实现按键控制LED亮灭,必须会运用IAR软件进行编程,并能够编译、链接、调试程序;会利用CCDebugger仿真下载器,将仿真器的下载线连接到ZigBee实训模块与电脑,进行仿真演示。
【知识储备】
一、中断的概念及作用
二、中断系统的相关概念
三、CC2530中断源
四、中断相关寄存器
五、中断使能步骤
六、CC2530中断处理
在中断源使能的条件下,当中断发生时,CPU就指向中断向量地址,进入中断服务函数。在“iocc2530.h”头文件中有中断向量的定义,如下所示:
1)#defineRFERR_VECTORVECT(0,0x03)/*RFTXFIFOUnderflowandRXFIFOOverflow*/
2)#defineADC_VECTORVECT(1,0x0B)/*ADCEndofConversion*/
3)#defineURX0_VECTORVECT(2,0x13)/*USART0RXComplete*/
4)#defineURX1_VECTORVECT(3,0x1B)/*USART1RXComplete*/
5)#defineENC_VECTORVECT(4,0x23)/*AESEncryption
/DecryptionComplete*/
6)#defineST_VECTORVECT(5,0x2B)/*SleepTimerCompare*/
……//共有18个中断源
二、CC2530中断服务函数
中断服务函数与一般自定义函数不同,有特定的书写格式:
#pragmavector=中断向量
__interruptvoid函数名称(void)
{
/*在这里编写中断处理函数的具体程序*/
}
说明:
在每一中断服务函数之前,都要加一句起始语句:
#pragmavector=中断向量
其中中断向量表示接下来要写的中断服函数是为哪个中断源服务的。
例如:要在P1端口引入外部中断,可以写为:
#pragmavector=0x7B或者#pragmavector=P1INT_VECTOR
0x7B是中断向量的入口地址,P1INT_VECTOR是头文件“iocc2530.h”中的宏定义。
__interrupt关键字表示该函数是一个中断服务函数,函数名称可以自定义,函数体不能带有参数,也不能有返回值。
由于不管中断源有没有被使能,硬件都会自动把该中断源对应的中断标志位设置为1,所以在执行中断服务函数结束后,需要把中断使能标志位清零。
【任务指导】
1.搭建开发环境
1)新建工作区,工作区名为:work2_1。
2)新建工程,工程名为:project2_1。
3)新建源程序文件,命名为test2_1.c。
4)将test2_1.c文件添加到project2_1工程中。
5)按键CTRL+S保存工作区。
6)配置工程选项,“Project”-“Options”-“GeneralOptions”,“Device”-“TexasInstruments”-“CC2530F256”。
7)配置lin