单片机技术与应用电子教案 2.外部中断控制LED亮灭.docVIP

单片机技术与应用电子教案 2.外部中断控制LED亮灭.doc

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

释然 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档