单片机原理及应用 教学课件 ppt 作者 陈桂友 孙同景 第7章 中断

上传人:E**** 文档编号:89499253 上传时间:2019-05-25 格式:PPT 页数:58 大小:514.50KB
返回 下载 相关 举报
单片机原理及应用 教学课件 ppt 作者 陈桂友 孙同景 第7章  中断_第1页
第1页 / 共58页
单片机原理及应用 教学课件 ppt 作者 陈桂友 孙同景 第7章  中断_第2页
第2页 / 共58页
单片机原理及应用 教学课件 ppt 作者 陈桂友 孙同景 第7章  中断_第3页
第3页 / 共58页
单片机原理及应用 教学课件 ppt 作者 陈桂友 孙同景 第7章  中断_第4页
第4页 / 共58页
单片机原理及应用 教学课件 ppt 作者 陈桂友 孙同景 第7章  中断_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《单片机原理及应用 教学课件 ppt 作者 陈桂友 孙同景 第7章 中断》由会员分享,可在线阅读,更多相关《单片机原理及应用 教学课件 ppt 作者 陈桂友 孙同景 第7章 中断(58页珍藏版)》请在金锄头文库上搜索。

1、第7章 中断,7.1 中断的概念,7.2 8051单片机的中断系统及其管理,7.3 MSC1211中断系统的增强功能,7.1 中断的概念,计算机在执行某一段程序的过程中,由于计算机系统之外的某种原因,有必要中止原程序的执行,而去执行相应的中断处理程序,待处理结束之后,再回来继续执行被中止了的原程序。这种程序在执行过程中由于外界的随机原因而被中间打断的情况称为“中断”。 计算机采用中断技术,大大提高了工作效率和处理问题的灵活性,主要表现在三方面: 1.解决了快速CPU和慢速外设之间的矛盾,可使CPU和外设并行工作; 2.可及时处理控制系统中许多随机参数和信息; 3.具备了处理故障的能力,提高了机

2、器自身的可靠性。 “中断”类似于程序设计中的调用子程序,但它们又有区别,主要是中断的产生是随机的,而子程序调用是程序中事先安排好的没有随机性,因此中断比子程序调用对现场保护要求更为严格。,7.2 8051单片机的中断系统及其管理,8051共有5个中断源,二个优先级,中断处理程序可实现两极嵌套,因而具有较强的中断处理能力。,7.2.1 中断源及其优先级管理,1.中断源 中断源是指能发出中断请求,引起中断的装置或事件。 8051单片机提供5个中断源: 2个外部中断请求(由P3.2和P3.3输入) 2个片内定时/计数器T0和T1的溢出中断请求TF0和TF1 1个片内串行口中断请求TI或RI 这些中断

3、请求信号分别锁存在特殊功能寄存器TCON和SCON中。,IT0:选择外部中断请求0为边沿触发方式或电平触发方式的控制位。IT0=0,为电平触发方式,低电平有效;IT0=1,为边沿触发方式,输入脚上电平由高到低的负跳变有效。IT0可由软件置“1”或清“0”。 IE0:外部中断0请求标志。当IT0=0即电平触发方式时,每个机器周期的S5P2采样,若为低电平,将直接触发外部中断。当IT0=1即为边沿触发方式时,当第一个机器周期采样到为高电平,第二个机器周期采样到为低电平时,由硬件置位IE0,并以此来向CPU请求中断。当CPU响应中断,转向中断服务程序时由硬件清“0”IE0。 IT1:外部中断1触发方

4、式控制位,和IT0类似。 IE1:外部中断1请求标志,其意义和IE0相同。 外部中断与IEx之间的关系如下图所示,TCON:定时/计数器控制寄存器,字节地址88H。,SCON:串行口控制寄存器,字节地址为98H。 SCON的低二位锁存串行口的接收中断和发送中断标志,其格式如下。 TI:8051串行口的发送中断标志。TI=1表示串行口发送器正在向CPU申请中断。CPU响应发送器中断请求,转向执行中断服务程序时并不清“0”TI,TI必须由用户在中断服务程序中清“0”,即中断服务程序中必须有CLR TI或ANL SCON,#0FDH等清“0”TI的指令。 RI:串行口接收中断标志。RI为1表示串行口

5、接收器正向CPU申请中断,同样RI必须由用户的中断服务程序清“0”。,TF0:片内定时/计数器0溢出中断申请标志,在启动T0计数后,定时/计数器0从初值开始加1计数,当最高位产生溢出时,由硬件置“1”TF0,向CPU申请中断,CPU响应TF0中断时清“0”该标志位,TF0也可用软件清“0”(查询方式)。 TF1:片内的定时/计数器1的溢出中断申请标志,功能和TF0类似。,2.中断的开放、禁止及优先级 对于每个中断源,其开放与禁止由专用寄存器IE中的某一位控制。 中断次序(优先级)可由专用寄存器IP中相应位是置1还是清0决定其为高优先级还是低优先级,这在硬件上有相应的优先级触发器予以保证。,IE

6、:中断允许寄存器 EA:开放或禁止所有中断。如EA=0,则不响应中断。如EA=1,每个中断源分别由各自的允许位的置位或清除确定开放或禁止。 ES:开放或禁止串行通道中断。如ES=0,则禁止串行通道中断。 ET1:开放或禁止定时器1溢出中断。如ET1=0,则禁止定时器1中断。 EXl:开放或禁止外部中断源1。如果EXl=0,则禁止外部中断1。 ET0:开放或禁止定时器0溢出中断。如果ET0=0,则禁止定时器0中断。 EX0:开放或禁止外部中断源0。如果EX0=0,则禁止外部中断0。 用户可据需要置“1”或清“0”IE相应的位,来允许或禁止各中断源的中断申请。欲使某中断源允许中断,必须同时使EA=

7、1,首先使CPU开放中断。所以EA相当于中断允许的“总开关”。,IP:中断优先级寄存器 PS:决定串行通道中断优先级。PS=1,则编程为高优先级。 PT1:决定定时器1中断优先级。PT1=1,则编程为高优先级。 PX1:决定外中断1优先级。PX1=1,则编程为高优先级。 PT0:决定定时器0中断优先级。PT0=1,则编程为高优先级。 PX0:决定外中断0优先级。PX0=1,则编程为高优先级。,8051单片机的中断系统,8051单片机对中断优先级的处理原则: 不同级的中断源同时申请中断时:先高后低; 处理低级中断又收到高级中断请求时:停低转高; 处理高级中断却收到低级中断请求时:高不睬低; 同一

8、级的中断源同时申请中断时:事先规定。 对于同优先级,单片机对其中断次序安排如下: 中断源 同一级的中断优先级 外部中断0 最高 定时计数器T0溢出中断 外部中断1 定时/计数器T1溢出中断 串行口中断 最低,7.2.2 单片机响应中断的条件及响应过程,1响应条件 单片机响应中断的条件首先是:中断源有请求,中断允许寄存器IE相应位置“1”,CPU中断开放(EA=1)。这样,在每个机器周期内,单片机对所有中断源都进行顺序检测,并可在任一个周期的S6期间,找到所有有效的中断请求并对其优先级进行排队,满足下列条件: 无同级或高级中断正在服务; 现行指令执行到最后一个机器周期且已结束; 若现行指令为RE

9、TI或需访问特殊功能寄存器IE或IP的指令时,执行完该指令且其紧接着的另一条指令也已执行完。 单片机便在接着的下一个机器周期的S1期间响应中断。否则,将丢弃中断查询的结果。,2中断的响应过程 单片机一旦响应中断,首先置位相应的优先级有效触发器(中断系统包含了两个不可编程的“优先等级生效”触发器,一个用于指明已进行高优先级的中断服务,以阻止其他的中断请求,另一个用于指明已进入低优先级的中断服务,阻止除高优先级以外的全部其他中断请求),然后执行一个硬件子程序调用,把断点地址压人堆栈,再把与各中断源对应的中断服务程序的首地址送程序计数器PC,同时清除中断请求标志(TI和RI除外),从而控制程序转移到

10、中断服务程序。以上过程均由中断系统自动完成。 由上述过程可知,单片机响应中断后,只保护断点而不保护现场(如标志位寄存器PSW的内容),且不能清除串行口中断请求标志TI和RI,也无法清除外中断输入电平申请信号,所有这些应在用户编制中断处理程序时予以考虑。,各中断源所对应的中断服务程序首地址如下: 中断源 入口地址 外部中断0 0003H 定时器计数器T0 000BH 外部中断1 0013H 定时器计数器T1 001BH 串行口中断 0023H CPU从此地址开始执行中断服务程序直至遇到一条RETI指令为止。RETI指令表示中断服务程序的结束,CPU执行该指令,一方面清除中断响应时所置位的优先级有

11、效触发器,一方面由栈顶弹出断点地址送程序计数器PC,从而返回主程序。若用户在中断服务程序开始安排了保护现场指令(相应寄存器内容入栈),则在RETI指令前应有恢复现场(相应寄存器内容出栈)指令。这在编程时也应注意。,一个典型的中断服务程序: ORG 0003H ;外部中断0入口地址 LJMP INT0_ISR ;其他程序代码 INT0_ISR: ;外部中断0服务程序 RETI,7.2.3 关于外部中断,1外部中断的触发方式 由TCON寄存器中的IT1和IT0位的“0”“1”状态可决定外中断源是电平触发方式还是边沿触发方式。 若ITx=0,外中断为电平触发方式。单片机在每一个机器周期的S5P2期间

12、采样中断输入信号的状态,若为低电平,即可直接触发外部中断。在这一触发方式中,中断源必须持续请求,直到中断实际上产生为止。然后,在中断服务程序返回之前,必须撤消中断请求信号,否则机器将以为又发生另一次中断请求。所以电平触发方式适合于外部中断输入为低电平,且在中断服务程序中能清除该中断源申请信号的情况。 若ITx=1,外部中断为边沿触发方式。在这种方式中如果在端连续采样到一个周期的高电平和紧接着一个周期的低电平,则在TCON寄存器中的中断请求标志位IEx就被置位,由IEx标志位请求中断。显然,这种方式的中断请求即使CPU暂时不能响应,中断申请标志由于被保存也不会丢失,而一旦CPU响应中断,进人中断

13、服务程序时,IEx会被CPU自动清除。 由于外中断源在每个机器周期被采样一次,所以输入的高电平或低电平至少必须保持十二个振荡周期,以保证能被可靠采样到。,2外部中断的响应时间 外中断申请信号,在每个机器周期的S5P2期间被采样并锁存,但须等到下个机器周期才被查询并被确定是否有效,若中断被激活,并且满足响应条件,则转去执行中断服务程序。这样,产生外部中断申请到得到CPU确认,需一个机器周期,而CPU保护断点,自动转入中断处理程序需2个机器周期,所以外部中断响应时间至少需要三个机器周期。 若中断请求被前述三个条件之一所阻止,则将需更长的响应时间。如果已经在执行另一个同级或更高级的中断,附加的等待时

14、间显然取决于该正执行中断服务程序的长短,以及是否还有更高级的中断源存在。若正处理指令未执行到最后的机器周期,所需的额外等待时间不会超过三个周期(由于需时最长的指令MUL和DIV也仅为4个机器周期)。考虑极限情况,所执行指令为RETI或者存取IE或IP的指令,其下相邻指令为MUL或DIV,则前者需一个机器周期后者需4个机器周期,这时额外的等待时间不会多于5个机器周期。 所以,在一个单中断源情况中,中断响应时间总是在3-8个机器周期之间。,7.2.4 中断程序编制举例,例1利用8051的外部中断,实现单步操作。 该电路的工作原理是:8051响应中断后,执行完RETI须返回主程序执行一条指令,然后才

15、能响应新的中断。这样,只要/INT0引脚平时为低电平,且编程为电平触发,则主机响应中断,进入中断服务程序,并在该服务程序中停留,直到/INT0引脚上接收到一个脉冲(从低高低),才返回主程序执行一条指令,然后又立即进入中断服务程序,等待下一个脉冲的到来,又返回主程序执行一条指令,如此反复,可单步执行完整个程序,该种单步操作用以调试检查程序。,其初始化程序如下: CLR IT0 SETB EA SETB PX0 SETB EX0 外部中断0的中断服务程序如下: HERE0:JNB P3.2,HERE0 HERE1:JB P3.2,HERE1 RETI,例2多个外部中断源扩展 硬件连接如图,各中断输

16、入端为高电平有效,当某中断有效时点亮对应LED指示灯。 当外部中断源多于2个时,可采用硬件申请与软件查询的方法,把多个中断源通过硬件“线或”或经或非门引入外中断源输入端,同时又连到某I/O口。这样,每个源都可能引起中断,在中断服务程序中通过软件查询便可确定哪一个是正在申请的中断源,其查询的次序则由中断源优先级决定,这就可实现多个外部中断源的扩展。,汇编语言程序如下: ORG 0000H LJMP MAIN ;转主程序 ORG 0003H LJMP INT_0 ;转中断服务程序 ORG 0100H MAIN: MOV SP,#60H SETB IT0 ;为沿触发中断方式 SETB EX0 ;允许中断 SETB EA ;CPU开中断 LOOP1: MOV A,P1 ANL A,#55H JNZ LOOP1 ;有外部中断请求去LOOP1 ORL P1,#0FFH ;无外部中断请求输出置1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号