第五部分单片机中断和存储空间的扩展教学课件.ppt
《第五部分单片机中断和存储空间的扩展教学课件.ppt》由会员分享,可在线阅读,更多相关《第五部分单片机中断和存储空间的扩展教学课件.ppt(37页珍藏版)》请在三一文库上搜索。
1、第五章 单片机中断和存储空间的扩展,5.1单片机中断 5.1.1 中断定义 5.1.2 中断工作流程 5.1.3 中断嵌套和中断优先级 5.1.4 中断潜在危险 5.2 单片机中断程序设计实例,Page 1,Lecture3 Page 2,单片机的认识与实践,中断,What and Why 中断处理流程 标志位 使能 中断服务程序ISR 中断向量表 Interrupt vector table 中断嵌套和中断优先级 nesting/prioirity 中断潜伏期 latency,Lecture3 Page 3,单片机的认识与实践,什么是中断,中断是一个需要CPU立刻处理的内部/外部事件 内部事
2、件 : 定时器定时时间到 AD变换结束 外部事件 : 按键动作 发生外部通信 ,Lecture3 Page 4,单片机的认识与实践,中断 vs 轮询,轮询: 周期/连续的检查外部事件是否发生 消耗大量CPU的处理时间 轮询过程需要和其他功能代码结合 由于CPU需要处理其他事件(可能是无关紧要的),可能丢失关键事件 中断 由硬件来判断是否发生外部事件并通知CPU 专用的中断服务程序来处理事件,Lecture3 Page 5,单片机的认识与实践,中断 vs 轮询,中断 适于处理对响应要求非常高的事件 适于处理持续事件非常短的事件 适于低功耗的应用 程序设计较复杂 轮询 适于处理对时间响应要求低的场
3、合 程序设计简单,Lecture3 Page 6,单片机的认识与实践,中断工作流程,内部/外部事件请求CPU处理 CPU停止正常流程,执行中断服务程序ISR ISR结束后,CPU返回正常流程,正常流程,中断请求,中断服务子程序,PC,程序计数器,Lecture3 Page 7,单片机的认识与实践,堆栈,中断的堆栈占用,正常流程,中断请求,中断处理服务程序,为什么?,保存返回地址 和寄存器上下文(Register context),Page 8,单片机的认识与实践,中断的堆栈占用,中断的寄存器入栈由CPU硬件完成 对于具体的CPU,在中断时哪些寄存器被推入堆栈/寄存器在堆栈的保存顺序是在其手册中
4、指明的。 It is the programmers responsibility to find out from the datasheet.,Lecture3 Page 9,单片机的认识与实践,中断 vs 轮询,比如早上7点早起,要听第一节单片机课:,反复看钟 确定时间。,Lecture3 Page 10,单片机的认识与实践,中断标志位,Indications - Interrupt flag (IF) 每一个中断源都有对应的中断标志 中断标志位将引发向CPU的中断请求 通过读写操作可以清除中断标志位,What happened if IF is not cleared?,Lecture
5、3 Page 11,单片机的认识与实践,中断控制,中断允许/禁止 全局中断控制 - enable/disable ALL interrupts CPU的CCR寄存器中一个特殊位. 在复位后,全局禁止位是置起的 中断发生后,全局禁止位也被置起 Dedicated IE one bit for each interrupt sources 通常在复位后所有的中断都被禁止了,Interrupt request,IF,Global IE,dedicated IE,Lecture3 Page 12,单片机的认识与实践,CCR(X and I bit),全局中断控制,不可屏蔽中断控制位,Lecture3
6、Page 13,单片机的认识与实践,CCR(X and I bit),Resets, the SWI instruction are not affected by the X and I mask bits. Interrupt service requests from the XIRQ pin are inhibited when X =1, but are not affected by the I bit. X can be set from 1 to 0 only. All other interrupts are inhibited when I = 1.,IRQ,XIRQ,Re
7、set,MCU,快速响应的事件、 严重的错误处理,绝大多数常规应用,Lecture3 Page 14,单片机的认识与实践,中断服务子程 ISR,中断服务子程(ISR,Interrupt Service Routine) 中断服务子程不同于一般的子程序 由CPU硬件自动调用,而不是由其他程序调用 在ISR执行前,CPU已经进行了一些特殊操作 ISR需要特殊的返回处理(指令) 对每一个中断,必须调用对应的ISR - how?,SCI_RX_ISR: turn on global IE if interrupt nesting is enabled clear the IF .process rti
8、,Lecture3 Page 15,单片机的认识与实践,中断向量表,中断向量表是一段连续的存储空间 在复位后有默认的起始位置 通过改写中断向量基址寄存器可以重新定位向量表 每个中断在向量表中都有相应的表项,该表项的值为该中断对应的服务程序的地址(地址指针) 由程序代码确定中断向量表的每个表项,Lecture3 Page 16,单片机的认识与实践,中断向量表,YES, It is also the programmers responsibility to find this information from the datasheet.,Lecture3 Page 17,单片机的认识与实践,中
9、断优先级,多个中断同时出现时,高优先级中断先得到响应 中断优先级可以是固定的或编程指定的 固定优先级: 根据中断向量表顺序 (查查DataSheet) 设定优先级:每个中断都有优先级设置位 相同优先级的中断,按先后顺序处理,Lecture3 Page 18,单片机的认识与实践,中断嵌套,中断嵌套指CPU在执行一个中断服务程序的过程中,可以再次响应新的中断请求。 在进入中断服务程序时,CPU硬件会将全局中断使能位关闭。为了实现中断嵌套,必须在ISR开始重新允许全局中断(在有多优先级的情况下,选择允许到哪一个级别的中断)。 中断嵌套的层数 中断嵌套对堆栈的消耗很大,Lecture3 Page 19
10、,单片机的认识与实践,Normal Process,External event,ISR,中断嵌套时的堆栈,ISR,STACK,External event,Lecture3 Page 20,单片机的认识与实践,中断的潜在危险,Global variables, While (A != 0) temp = arrayA; A-; putchar(temp); ISR: . A+;,Array 是个字符串,例如”hello!” A是一个全局变量,XIRQ的问题,Page 21,Numbering and coding systems,5.1 单片机中断 中断的定义,中断是一个需要CPU立刻处理的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 部分 单片机 中断 存储空间 扩展 教学 课件
链接地址:https://www.31doc.com/p-2527280.html