- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
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
文档评论(0)