单片机技术与应用电子教案 2.外部中断控制LED亮灭_第1页
单片机技术与应用电子教案 2.外部中断控制LED亮灭_第2页
单片机技术与应用电子教案 2.外部中断控制LED亮灭_第3页
单片机技术与应用电子教案 2.外部中断控制LED亮灭_第4页
单片机技术与应用电子教案 2.外部中断控制LED亮灭_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课时教案课程:单片机技术与应用-基于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_VECTOR0x7B是中断向量的入口地址,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)配置linker,勾选Overridedefault8)配置Debugger,“Debugger”->“Setup”->“Driver”->“TexasInstruments”。2.在编辑窗口设计程序(1)准备工作#include<iocc2530.h>//引用头文件#defineLED1P1_0//P1_0控制LED1#defineSW1P1_2//P1_2与SW1连接(2)设计端口初始化函数,配置端口寄存器分析ZigBee模块上按键SW1、LED1与引脚的关系,明确其对应寄存器的设置信息,根据上述分析对端口P1_0及P1_2相关寄存器进行配置,端口初始化函数如下:voidinitial_gpio(){P1SEL&=~0x05;//设置P1_0、P1_2为GPIOP1DIR|=0x01;//设置P1_0端口为输出P1DIR&=~0x04;//设置P1_2端口为输入LED1=0x00;//LED1灭P1INP&=~0x04;//P1_2端口为“上拉/下拉”模式P2INP&=~0x40;//所有P1端口都设置为“上拉”}(3)设计中断初始化函数中断初始化函数的编程根据中断使能的步骤进行编写:开总中断→开中断源→若是外部中断→设置端口位中断→设置中断触发方式,程序如下:voidinitial_interrupt(){EA=1;//使能总中断IEN2|=0x10;//使能P1端口中断源P1IEN|=0x04;//使能P1_2位中断P1CTL|=0x02;//P1_2中断触发方式为下降沿触发}(4)设计中断服务函数任务通过按键SW1触发中断,由ZigBee模块按键电路可知按键与端口P1_2相连,所以中断源为P1INT,在“iocc2530.h”头文件中已定义其中断向量为P1INT_VECTOR,其中断标志位为P1IF和P1IFG。中断服务函数编程如下://*************中断服务函数**************#pragmavector=P1INT_VECTOR__interruptvoidP1_ISR(void){if(P1IFG&0x04)//判断P1_2端口是否有按键按下{LED1=!LED1;}P1IF=0x00;//清除P1端口中断标志位P1IFG&=~0x04;//清除P1_2端口中断标志位}(5)设计主函数voidmain(){initial_gpio();initial_interrupt();while(1);}3.编写、分析、调试程序编译、下载程序。编译无错后,将CCDebugger与ZigBee模块相连,并分别连接到电脑,下载程序,测试程序功能。教师引导学生分析任务学生复习巩固所学知识教师引导学生分析理解中断向量定义教师引导学生理解掌握中断服务函数的书写格式,掌握其应用。。学生搭建开发环境教师巡视指导、评价小组合作编写头文件,定义相关变量小组合作分析设置相应端口寄存器,编写端口初始化函数。教师巡视指导、评价学生依据中断使能步骤编写中断初始化函数教师巡视指导、评价做中教做中学教师引导学生编写中断服务函数学生编写主函数要求会调用各种初始化函数学生实际动手操作,测试程序功能新知应用采用外部中断方式,当第1次按下SW1键时,LED1亮,第2次按下SW1键时,LED2亮;第3次按下SW1键时,LED1和LED2全灭;再次按下SW1键时,LED灯重复上述状态。了解学生对新知识的掌握程度课堂小结1.中断的处理流程2.中断服务函数3.外部中断控制LED亮灭的程序设计流程师生总结评价作业1.ZigBee模块上的LED1和LED2,分别与P1_0和P1_1相连,SW1与P1_2相连,编程实现以下功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论