任务5-2 按键中断控制流水灯new_第1页
任务5-2 按键中断控制流水灯new_第2页
任务5-2 按键中断控制流水灯new_第3页
任务5-2 按键中断控制流水灯new_第4页
任务5-2 按键中断控制流水灯new_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

单片机应用技术18物联网核心课程项目化实施课程案例回顾任务5-1外部中断统计器

使用数码管实现一位外部中断统计器• 按键按下产生下降沿脉冲,提出片外外设的中断请求信号(外部中断INT0);•CPU响应外部中断INT0,统计并显示外部中断的请求次数(静态数码管),9次归零;1、因(请求):中断源,初始化寄存器配置;2、果(响应):中断服务函数,程序处理复习与思考中断服务函数中断请求触发方式中断响应允许中断标志硬件置1中断响应--》编程:1、中断的初始化配置;2、中断服务函数中断源TCON——认知中断请求标志;(P167)

配置请求触发方式请求方式:Interrupttrigger中断允许寄存器IE(P168)例,若允许T1中断,则指令如下:ET1=1;//位操作EA=1;或:IE=0X88;//字节操作该寄存器可以位寻址?单片机的中断KeyWords(P165)中断源:外设(片上或片外)产生的特定事件;有()个中断源?分别是()?中断请求:中断源要求CPU中断而提出的请求,会以

()通知CPU中断源有了中断请求?断点:()执行过程中被打断的地方?中断响应:CPU从获得请求到转去执行中断服务的过程中断服务函数:为特定的中断请求事件而编写的一段特殊的处理程序,(是/否)需要语句调用该函数?因果中断请求中断响应中断服务中断返回外设与CPU沟通:断而不乱片外外设片上外设如:按键CPU以外的模块统称“外设”,包括:片上外设+片外外设“主人”CPU中断系统学习进阶:其它芯片的中断源分类拓展片上外设(各资源模块)+片外外设(外部中断)CC2530PIC16F87X任务5-2按键中断控制流水灯5.2.1中断响应过程揭秘5.2.2中断请求的撤除5.2.3中断服务函数探究5.2.4中断优先级与中断嵌套项目5中断系统应用5.2.1

中断响应过程揭秘中断响应中断响应:因

果从中断请求标志有效,到CPU开始执行中断服务程序的那一段过程。中断响应判断思考:只要提出中断请求(请求标志置1),CPU便会响应中断?中断响应的条件(P170)①中断源发出中断请求(标志置1)②总中断允许位EA置1③申请中断的中断源允许位置1。满足所有的条件①CPU正在响应同级或更高优先级的中断②当前指令未执行完;③正在执行中断返回或访问关键寄存器IE和IP无法中断响应的情况中断初始化寄存器配置中断响应的过程1、保存断点地址2、自动调用中断服务程序主程序main(){语句1;语句2;语句3:语句4:语句n;}断点说明:CPU硬件自动完成保存地址的任务中断响应的过程1、保存断点地址2、自动调用中断服务函数主程序main(){语句1;语句2;语句3:语句4:语句n;}中断服务函数voidint_1()interrupt2using2{语句1;语句2;语句3:语句4:具体的中断处理程序语句n;}断点中断响应的时间主程序main(){语句1;语句2;语句3:语句4:语句n;}中断服务程序voidint_1()interrupt2using2{语句1;语句2;语句3:语句4:语句n;}断点中断响应的时间大约为3

8个机器周期中断请求是否会重复响应?案例引入任务5-1外部中断统计器拓展

使用数码管实现一位外部中断统计器• 按键按下产生下降沿脉冲,提出片外外设的中断请求信号;•CPU响应外部中断INT0,统计并显示外部中断的请求次数(静态数码管),9次归零;中断的电平触发方式5.2.2中断请求的撤除撤除中断请求标志(P168)TF1TF0IE1IE0TIRITCONSCON定时器T1定时器T0外部中断1外部中断0串行口1:有中断请求0:无中断请求中断请求:中断源要求CPU中断而提出的请求,中断请求标志硬件置1;中断请求撤除:中断请求标志位要恢复为0,即中断请求撤除,以避免重复中断操作。中断请求标志撤除—定时器中断T0、T1定时器T0和定时器T1:中断标志硬件自动清除T0中断服务程序void

timer0()interrupt1{语句1;语句2;语句3:语句4:无需对TF0进行处理语句n;}T0中断服务程序对比:定时器的查询方式需要TFx=0;软件清标志中断请求标志撤除—外部中断INT0、INT1外部中断0和外部中断1(下降沿触发):中断标志硬件自动清除外部中断0和外部中断1(低电平触发):硬件电路和软件编程硬件电路:可加入D触发器软件编程:增加类似于while(!K0);语句中断请求标志撤除—串口中断串行口中断:软件编程清除标志TI、RIvoid

serial()interrupt4{RI=0; 语句1;语句2;语句3:语句4语句n;}串行口中断服务程序5.2.3中断服务函数探究中断响应与中断服务函数主程序main(){语句1;语句2;语句3:语句4:语句n;}中断服务程序voidint_1()interrupt2using2{语句1;语句2;语句3:语句4:语句n;}断点大约为3

8个机器周期入口地址->PC0x00030x000B0x00130x001B0x0023中断服务函数语法格式中断服务函数以函数形式存在(但区别于函数,无需调用,CPU自动响应执行);中断函数定义语法如下:

void函数名()

interrupt

n

[using

m]{

语句…;}中断源n外部中断00定时器01外部中断12定时器13串行口4寄存器组m组00组11组22组33中断服务函数与普通子函数的区别——自动调用执行定义延时子函数delay主函数调用延时函数中断服务函数无需调用语句:CPU自动执行,用户无需干涉的,不需要调用指令。例:中断服务函数定义如下:void

int1()interrupt

2using2{语句1;语句2;语句3;语句4;语句n;}中断服务函数与普通子函数的区别——保护和恢复现场解决共享资源的冲突问题!保护现场:

保护在中断服务子程序中使用了的SFR、全局变量等相关共享资源案例引入任务5-2按键中断控制流水灯主程序状态:从高位到低位D8到D1流水灯(状态0);当K1按下(INT0)时:从两边到中间再到两边点亮,完成一次(状态1);当K2按下(INT1)时:从D1到D8逐盏点亮,直到全亮,完成一次(状态2);要求:1)流水灯采用定时器查询方式,T0的工作方式1,基准定时50ms,实现1s的delays()子函数;

2)K1、K2分别连接INT0、INT1的外部中断引脚,实现按键的中断方式,快速响应处理;测试:1)主程序的流水灯运行时,K1或K2按下;记录被打断的点,观察能否返回?——断点的状态

2)先按下K1(显示状态1),再按下K2,能否即刻打断并进入状态2呢?同级不会被即刻打断3)K1和K2同时按下,请问会先响应哪个中断请求呢?——自然优先级

K1K2✎小组实践1、子函数delays():采用定时器查询方式,T0的工作方式1,基准定时50ms,实现1s调用delays():在3种流水灯代码中,调用delays()。2、中断初始化子函数init_int0_1():配置中断功能的寄存器位,外部中断边沿触发方式;开中断源int0/int1;开总中断;3、中断服务函数K1_int0()interrupt0/K2_int1()interrupt2:外部中断硬件连接:首先确认K1/K2分别连接外部中断int0/int1的中断源功能引脚;中断服务函数:按键的中断方式,中断请求时,硬件自动执行的中断服务函数K1_int0();K2_int1();分别显示led1[]和led2[]不同流水灯状态码

(注意保护/恢复现场的代码框架,参考ppt24页)4、main()函数:初始化(定时器/中断);

while(1){显示;逻辑处理等}任务5.2按键控制流水灯中断服务函数中断请求触发方式中断响应允许中断标志硬件置1中断优先级(高、低两级)中断响应--》编程:1、中断的初始化配置;2、中断服务函数中断源案例引入任务5-2按键中断控制流水灯中断功能测试三条程序流:主程序状态0;int0中服状态1;int1中服状态2;观察现象,完成保护现场/优先级等中断功能测试:1)注释int0中服函数中保护和恢复现场的代码;下载运行;测试:主程序流水灯点亮D6绿灯时,按下K1中断,观察K1的状态1流水完毕后,能否回到D6绿灯?(中断返回了,但P2的共享资源,运行时现场未保护)!按下K2呢?2)还原代码!在主程序流先按下K1中断响应执行int0中服函数后,再按下K2,能否即刻对int1中断源的请求进行中断响应呢?等待int0中断响应结束后,能否响应int1的中断请求呢?反过来呢?在主程序流先按下K2再按下K1?(已经得到响应的中断请求,不会被它的同级中断源所中断)3)在主程序流,K1和K2同时按下,请问会先响应哪个中断请求呢?——自然优先级4)修改程序,使外部中断INT1有高优先级?下载运行;测试:K1和K2同时按下,观察现象?——中断的高优先级15)主程序流按下K1,再按下K2,观察现象?主程序流按下K2,再按下K1,观察现象?——中断嵌套(中断被中断)

K1K2P3.2P3.3P25.2.4中断优先级与中断嵌套中断请求标志

(触发模式)中断响应允许优先级高级低级中断源因(中断源)果(中断服务函数)TCON(SCON)IEIP中断优先级中断优先级寄存器IP(P169)中断优先级寄存器1:高优先级0:低优先级低优先级的中断可被高优先级

温馨提示

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

最新文档

评论

0/150

提交评论