中职 物联网应用基础实训4.4教学课件 网页制作基础教程(Dreamweaver CS6 第2版)_第1页
中职 物联网应用基础实训4.4教学课件 网页制作基础教程(Dreamweaver CS6 第2版)_第2页
中职 物联网应用基础实训4.4教学课件 网页制作基础教程(Dreamweaver CS6 第2版)_第3页
中职 物联网应用基础实训4.4教学课件 网页制作基础教程(Dreamweaver CS6 第2版)_第4页
中职 物联网应用基础实训4.4教学课件 网页制作基础教程(Dreamweaver CS6 第2版)_第5页
已阅读5页,还剩17页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

中职物联网应用基础实训4.4教学课件网页制作基础教程(DreamweaverCS6第2版)工信版第四单元

CC2530单片机基础任务卡4.4断而有序——通用I/O中断任务卡4.4断而有序——通用I/O中断

上一个任务介绍了CC2530输入输出的基础知识,并通过对Zigbee板上LED灯的控制,学习了如何配置并控制I/O端口的功能和数据传输方向。本任务将继续学习CC2530单片机I/O端口引起外部中断的方法,实现利用SW1按键中断来控制流水灯的暂停和启动。问题1:中断的含义?问题2:CC2530中断过程?拓展问题:CC2530各种中断源的使用?任务提出41.理解单片机中断的概念和作用2.了解中断的处理过程3.掌握CC2530外部中断的配置方法4.掌握中断处理函数的编写方法任务目标4任务卡4.4断而有序——通用I/O中断1.了解中断通过图4-27了解中断的含义和流程。通过知识链接了解中断的概念。任务实施4图4-27任务卡4.4断而有序——通用I/O中断2.CC2530的中断系统(1)中断源CC2530具有18个中断源,每个中断源都由各自的一系列特殊功能寄存器来进行控制。根据本任务知识链接的内容了解CC2530的18个中断源及优先级。(2)中断初始化CC2530的P0、P1和P2端口中的每个引脚设置为输入后,都可以勇于产生中断,要使用某些引脚的外部中断功能,必须要进行中断初始化。操作步骤如图4_28所示。任务卡4.4断而有序——通用I/O中断任务卡4.4断而有序——通用I/O中断图4-28第一步,使能端口组中断功能本任务使用SW1按键(P1_2引脚)作为外部中断,则需要将P1端口组中断功能开启,即设置寄存器IEN2的P1IE位为1。IEN2寄存器描述如表4-13所示。代码:IEN2|=0X10;任务卡4.4断而有序——通用I/O中断第二步,使能某端口中断功能使能P1_2端口中断,即设置寄存器P1IEN的第2位为1。P1IEN寄存器描述如表4-14所示。代码:P1IEN|=1;任务卡4.4断而有序——通用I/O中断第三步,设置中断触发方式按键SW1按下过程中P1_2端口的电信号产生下降沿跳变,松开过程中电信号产生上升沿跳变。本任务要求按键按下后流水灯暂停,将PICTL寄存器第1位置位1,P1_2端口被设置为下降沿触发方式。PICTL寄存器描述如表4-15所示。 代码:PICTL

=0x02;任务卡4.4断而有序——通用I/O中断第四步,设置中断优先级本任务只使用了一个中断,此处不必设置优先级。第五步,使能系统总中断中断系统总开关控制需要设置IEN0寄存器的第7位即EA位为1。IEN0寄存器描述如表4-16所示。代码:EA=1;任务卡4.4断而有序——通用I/O中断(3)中断标志例如,P1IFG

&=~0x04;

是清除P1_2引脚的中断状态标志位。PxIFG寄存器的描述分别如表4-17和表4-18所示。任务卡4.4断而有序——通用I/O中断3.中断函数CC2530中断服务函数与一般自定义函数不同,有特定的书写格式:#pragma

vector

=

中断向量//本任务SW1对应P1_2,向量值为PINT_VECTOR或0X7B__interrupt

void

函数名称(void){/*此处编写中断处理函数的具体程序*/PxIFG

=

0;

//清除Px引脚的中断状态标志位//P1IFG

=

0;PxIF

=

0;

//清除Px端口组的中断状态标志位//P1IF=0;}任务卡4.4断而有序——通用I/O中断4.实现按键中断——流水灯效果的暂停与继续(1)实现流水灯:要实现流水灯的效果,需要使用While语句。将While语句设为无限循环,使开关灯效果不断重复,即可实现流水灯效果。代码如下。while(1){delay(500);LED1=1;delay(500);LED1=0;delay(500);LED2=1;delay(500);LED2=0;delay(500);LED3=1;delay(500);LED3=0;delay(500);LED4=1;delay(500);LED4=0;}任务卡4.4断而有序——通用I/O中断(2)标志位:我们前面已经将SW1设置为中断端口,所以想要在流水灯中实现停暂和启动,需要在延时函数中添加一个标志位,当标志位为0时程序就会继续流水灯效果,当为1时,就会暂停流水灯。我们需要再次利用While语句,在延时函数中使用这个标志位。代码如下。unsignedcharflag_Pause=0;//流水灯运行标志位,为1暂停,为0运行。voiddelay(unsignedinttime){unsignedinti;

unsignedcharj;for(i=0;i<time;i++)for(j=0;j<240;j++){asm("NOP");//asm用来在C代码中嵌入汇编语言操作,汇编命令nop是空操作,消耗1个指令周期。asm("NOP");asm("NOP");while(flag_Pause);//根据flag_Pause的值确定是否在此循环}}任务卡4.4断而有序——通用I/O中断(3)中断函数:只需要在中断函数中调整标志位的值,就可以实现停暂流水灯的效果。代码如下。#pragmavector=P1INT_VECTOR__interruptvoidP1_INT(void){if(P1IFG&0x04)//如果P1_2口中断标志位置位{if(flag_Pause==0){

flag_Pause=1;

}else{flag_Pause=0;

}P1IFG&=~0x04;//清除P1_2口中断标志位}P1IF=0;//清除P1口中断标志位}任务卡4.4断而有序——通用I/O中断(4)参照4单元资源文件夹中的4.5工程,编写此程序,实现流水灯启停效果。也可以直接将工程中的hex文件烧写入ZigBee板中,观察效果。流水灯启停效果可以扫描二维码4-6观看视频。二维码4_6任务卡4.4断而有序——通用I/O中断1.总结

利用中断功能实现了流水灯的启停操作2.目标达成测试(1)要使用SW1按键(P1_2引脚)作为外部中断,则需要将

端口组中断功能开启,即设置寄存器IEN2的P1IE位为1。代码为IEN2|=

;(2)P1IEN寄存器的作用是使能

端口组的某一个引脚的中断,例如P1IEN|=0x04;表示使能

引脚端口的中断功能。任务总结4任务卡4.4断而有序——通用I/O中断(3)设置中断触发方式,使用__________________寄存器。(4)使能总中断的代码是__________________。(5)中断的初始化有哪几步,按照顺序填入序号。

()使能端口组中某些位的中断

()使能端口组中断功能

()使能总中断

()设置中断优先级

()设置中断触发方式(6)中断函数的声明分为哪几部分,写出这几个关键字______________________________。任务卡4.4断而有序——通用I/O中断1.编写一个程序,使用中断方式,用SW1键控制LED1的亮灭状态。要求如下(1)ZigBee板上电后,LED1灯熄灭。(2)按下SW1后,LED1灯点亮。(3)再次按下SW1后,LED1灯熄灭。(4)重复2、3步骤。能力拓展4任务卡4.4断而有序——通用I/O中断2.大赛题目:将Zigbee小模块上SW1按键设置为外部中断输入引脚。在中断服务函数中,控制一个LED6灯的开关切换,也就是原来LED是点亮的熄灭,原来熄灭的点亮。同时在主程序中,运行一段跑马灯程序,使LED3和LED4

温馨提示

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

评论

0/150

提交评论