资源预览内容
第1页 / 共70页
第2页 / 共70页
第3页 / 共70页
第4页 / 共70页
第5页 / 共70页
第6页 / 共70页
第7页 / 共70页
第8页 / 共70页
第9页 / 共70页
第10页 / 共70页
亲,该文档总共70页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,第4章 MCS-51的中断系统,本章内容:中断的概念MCS-51单片机中断系统外部事件中断及应用,2,(一)中断在计算机系统中,中断是指CPU在执行某段程序的过程中,由于某一事件发生时,要求CPU暂时停止正在执行的程序,而去执行相应的处理程序,待处理结束后,再返回到原来程序停止处继续执行。,4.1 中断的概念,4.1.1 中断的概念,3,(二)中断处理与子程序调用的区别 调用哪个子程序、完成什么任务是用户设计程序时事先安排好的,是采用子程序调用指令实现的;而中断事件发生是随机的,哪个事件发生、何时调用中断处理程序是事先无法确定的,在程序中无法事先安排调用指令,调用中断处理程序的过程是由硬件自动完成的。,4.1 中断的概念,4.1.1 中断的概念,4,中断系统是指实现中断响应和处理的所有硬件和软件,它包括中断源的产生、中断判优、中断响应、中断查询、中断处理等过程。,4.1 中断的概念,4.1.2 CPU响应和处理中断的机制,5,中断源:(1)计算机系统的外部设备某一事件发生,向CPU请求中断;被控设备某个参数超过限位阈值,向CPU请求中断等。(2)计算机内部的某个事件发生,如定时/计数器溢出、串行口接收到或发送完一帧数据等。(3)计算机发生了故障引起中断,如系统电源掉电、运算器运算溢出、系统出错等事件发生,向CPU申请中断。(4)人为设置中断。用户在编程和调试时人为设置的中断事件,如单步执行、设置断点。,4.1 中断的概念,4.1.2 CPU响应和处理中断的机制,6,中断触发及中断请求登记: 当一个事件发生了,该中断源触发了中断,中断系统通过硬件把这个中断源对应的中断触发器置1,以此向CPU发出请求,即中断登记。CPU通过检测中断触发器的状态是否为1来识别是哪一个中断源发出了请求。 只要中断触发一次,中断触发器被置1并锁存,除非中断触发器被清0,否则,该中断源后续的中断请求不再登记。,4.1 中断的概念,4.1.2 CPU响应和处理中断的机制,7,中断优先级: 在中断系统中,按照轻重缓急的原则给每一个中断源分配一个中断CPU的优先级。当多个中断源同时向CPU发出请求,通过判断中断优先级中断判优,优先响应中断优先级最高的中断源的请求,待CPU处理完优先级最高的中断请求后,再依次按优先级顺序响应其它中断源的中断请求。,4.1 中断的概念,4.1.2 CPU响应和处理中断的机制,8,中断响应条件 : (1)有中断源的中断请求; (2)CPU允许这个中断源请求中断; (3)CPU处于开放中断的状态; (4)CPU刚刚结束一条指令的执行过程。,4.1 中断的概念,4.1.2 CPU响应和处理中断的机制,9,CPU要响应中断需要先做的准备: (1)关中断; (2)保护断点; (3)取中断处理程序的入口地址,转入中断处理程序。,4.1 中断的概念,4.1.2 CPU响应和处理中断的机制,10,(1)保护现场;(2)中断处理;(3)恢复现场;(4)开中断,中断返回。,CPU进行中断处理:,4.1 中断的概念,4.1.2 CPU响应和处理中断的机制,中断处理程序的流程,11,4.1 中断的概念,4.1.2 CPU响应和处理中断的机制,中断嵌套处理,12,中断嵌套时的低优先级中断处理程序流程图,4.1 中断的概念,4.1.2 CPU响应和处理中断的机制,13,中断系统应具备以下功能:(1)实现中断与返回;(2)能够对中断请求按优先级响应;(3)能实现中断嵌套处理。,4.1 中断的概念,4.1.2 CPU响应和处理中断的机制,14,中断处理过程示意,4.1 中断的概念,15,(1)解决了快速CPU和低速外部设备之间的速度匹配问题,使CPU和外设同时工作; (2)可以实现实时处理; (3)可以实现突发故障的及时自动处理; (4)可以实现多任务资源共享。,4.1 中断的概念,4.1.3 中断技术的作用,16,MCS-51单片机中断系统结构,4.2 MCS-51中断系统的结构,17,MCS-51单片机中断标志位分别由2个特殊功能寄存器存储: (1)定时/计数器控制寄存器; (2)串行口控制寄存器。,4.2 MCS-51中断系统的结构,4.2.1 MCS-51单片机的中断标志,18,(一 ) 定时器控制寄存器(TCON) 定时/计数器控制寄存器TCON锁存外部中断请求标志以及定时/计数器的计数溢出标志。TCON的地址88H,寄存器中各位的位地址为88H8FH。,4.2 MCS-51中断系统的结构,4.2.1 MCS-51单片机的中断标志,19,(1)外部事件中断请求标志位 IE0为外部事件中断 的中断请求标志位,IE1为外部事件中断 的中断请求标志位。 外部事件中断可以由电平触发或跳变触发,中断触发的方式取决于TCON寄存器中IT0和IT1的设定。(2)定时/计数器溢出标志位 TF0为定时/计数器T0的计数溢出标志位,TF1定时/计数器T1的计数溢出标志位。,4.2 MCS-51中断系统的结构,4.2.1 MCS-51单片机的中断标志,20,(二)串行口控制寄存器(SCON) 串行口控制寄存器SCON锁存串行口发送缓冲器的发送结束标志和接收缓冲器的接收到数据标志,不论哪个中断标志有效,都会触发串行口中断。SCON的地址98H,各位的位地址位:98H9FH。,4.2 MCS-51中断系统的结构,4.2.1 MCS-51单片机的中断标志,21,(1)TI串行口发送中断请求标志位 当串行口发送缓冲器发送完一帧数据后,由硬件自动把TI置1,以此向CPU请求中断。(2)RI串行口接收中断请求标志位 当串行口接收缓冲器接收完一帧串行数据后,由硬件把RI置1;以此向CPU请求中断。 注意:在CPU响应中断时,标志位TI 和RI不被自动清0,必须由用户在中断处理程序中用软件清0,否则,CPU将会陷入响应中断和中断处理当中,造成数据帧的丢失。,4.2 MCS-51中断系统的结构,4.2.1 MCS-51单片机的中断标志,22,由于串行口接收和发送共享一个中断源,无论是发送结束标志TI还是接收到数据标志RI被置1,都会产生串行口中断请求。在双工通信时,为了辨别哪一个触发了中断,必须首先在中断处理程序中检测TI和RI的状态,然后清除标志位(TI或RI),再进行相应的中断处理。,4.2 MCS-51中断系统的结构,4.2.1 MCS-51单片机的中断标志,23,MCS-51单片机的中断控制分为2级,第一级通过5个中断允许控制位来确定屏蔽或者允许某个中断源的中断请求,第二级通过1个控制位来确定CPU开放或禁止中断。中断允许寄存器IE(Interrupt Enable Register)用来保存这些中断允许控制位。IE寄存器的地址为0A8H,寄存器中各位的位地址为0A8H 0AFH。,4.2 MCS-51中断系统的结构,4.2.2 MCS-51单片机的中断控制,24,(1)CPU中断控制位:EA(2)外部中断允许控制位: EX0、 EX1(3)定时/计数器溢出中断允许控制位: ET0、ET1(4)串行中断允许控制位:ES,4.2 MCS-51中断系统的结构,4.2.2 MCS-51单片机的中断控制,25,MCS-51单片机的中断控制由用户通过设定中断允许寄存器IE来实现,如单片机开放中断,允许外部事件中断、定时/计数器T0溢出中断和串行口中断。 设定程序如下: MOV IE, #10010110B 或: SETB EA; CPU开放中断 SETB EX1; 允许中断 SETB ET0; 允许定时/计数器溢出中断 SETB ES; 允许串行口中断,4.2 MCS-51中断系统的结构,4.2.2 MCS-51单片机的中断控制,26,当多个中断源同时请求中断,或者CPU正在处理一个中断,又有了新的中断请求,MCS-51单片机的处理原则是: (1)多个中断源同时向CPU请求中断时,首先响应高优先级中断源的中断请求; (2)高优先级中断请求可以中断低优先级的中断处理,从而实现中断嵌套。低优先级中断请求不能中断高优先级或相同优先级的中断处理。,4.2 MCS-51中断系统的结构,4.2.3 MCS-51单片机的中断优先级,27,中断优先级寄存器IP寄存器的地址0B8H,寄存器中各位的位地址为0BFH0B8H。,4.2 MCS-51中断系统的结构,4.2.3 MCS-51单片机的中断优先级,(1)PX0为外部事件中断的优先级设定位;(2)PT0为定时/计数器T0的溢出中断优先级设定位;(3)PX1为外部事件中断的优先级设定位;(4)PT1为定时/计数器T1的溢出中断的优先级设定位;(5)PS为串行口中断的优先级设定位。,28,4.2 MCS-51中断系统的结构,4.2.3 MCS-51单片机的中断优先级,相同优先级时的中断优先级,29,CPU响应中断请求是有条件的,如果此时不存在下列3种情形: (1)CPU正在处理相同优先级或高级优先级的中断。 (2)当前的机器周期不是指令的最后一个机器周期。 (3)正在执行的指令是RETI、或者是访问特殊功能寄存器IE或IP的指令。 CPU响应中断请求,立即产生一个硬件调用,使程序转移到相应的中断处理程序入口地址处,调用中断处理程序。,4.2 MCS-51中断系统的结构,4.2.4 MCS-51单片机的中断响应及处理过程,30,CPU响应中断请求时,根据中断源的优先级,中断系统把相应的高优先级触发器或低优先级触发器置1,以封锁相同优先级和低级优先级的中断请求;然后由硬件调用把当前程序计数器PC的内容(即断点)压入堆栈保护,并且把相应的中断处理程序入口地址装入程序计数器PC,使程序转移到这个中断处理处。MCS-51单片机各个中断源的中断处理程序入口地址是固定的。,4.2 MCS-51中断系统的结构,4.2.4 MCS-51单片机的中断响应及处理过程,31,4.2 MCS-51中断系统的结构,4.2.4 MCS-51单片机的中断响应及处理过程,MCS-51单片机各中断源的中断处理程序入口地址,32,MCS-51单片机CPU响应中断的过程,4.2 MCS-51中断系统的结构,4.2.4 MCS-51单片机的中断响应及处理过程,33,中断处理过程,4.2 MCS-51中断系统的结构,4.2.4 MCS-51单片机的中断响应及处理过程,34,在使用MCS-51单片机中断技术时,应注意以下几个方面: (1)中断查询是在每个机器周期是重复进行的。当一个中断标志位置1但没有被CPU响应,这个中断标志位是不会被保持的。每一个机器周期总是查询的是上一个机器周期新采样得到的中断标志位状态。,4.2 MCS-51中断系统的结构,4.2.4 MCS-51单片机的中断响应及处理过程,35,(2)由于2个中断入口地址之间只有8个单元,在实际应用时,通常在入口地址处安排一条无条件转移指令,把中断处理程序存放在程序存储器的其它区域。另外,如果不使用中断处理,最好在中断入口地址所在单元放置RETI指令,以免由于干扰或其他因素意外触发中断导致程序“跑飞”的现象发生,使程序能够安全地返回到断点处继续运行。,4.2 MCS-51中断系统的结构,4.2.4 MCS-51单片机的中断响应及处理过程,36,(3)子程序返回RET指令也可以使中断处理程序返回到断点处,但是,它不能告知CPU中断处理已经结束。因此,CPU依然处于中断处理的状态。如果是处理高优先级中断,CPU只响应一次中断,而且屏蔽其它所有的中断请求。,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号