资源描述
,*,单片机原理及应用,单片机原理及应用,版权所有,All Rights Reserved,*,MCS,51,中断系统,MCS-51,中断系统,单片机原理及应用,中断技术是计算机中的重要技术之一。,引入中断技术作用:,(,1,),实时处理,提高计算机处理故障的能力;,CPU,及时处理随机事件,提高计算机处理故障的能力;,故障处理,电源掉电、存储出错、运算溢出,(,2,),解决,CPU,和外设之间的速度匹配问题,提高,CPU,的效率。,分时操作,CPU,可以同多个外设,“,同时,”,工作,本章将介绍中断的概念,介绍,MCS-51,中断处理过程及应用。,单片机原理及应用,8051有5个中断源,具有两个中断优先级,即每个中断源可以设为高优先级或低优先级,实现两级中断服务程序嵌套。,与中断系统有关的特殊功能寄存器有:,中断允许寄存器,(,IE,),、,中断优先级别控制寄存器,(,IP,),中断源寄存器,(,TCON、SCON,),中断源,二个外中断:,三个内中断:,T0、T1、,串口发送接收中断,单片机原理及应用,MCS-51,的中断系统,中断源,8051单片机有5个中断请求源:,单片机,INT0,或,外部输入中断源,INT0(P3.2),INT1,或,外部输入中断源,INT1(P3.3),T0,片内定时器,T0,的溢出,T1,片内定时器,T1,的溢出,串行口,片内串行口发送或接收中断源,单片机原理及应用,IE0,TCON,SCON,INT0,IT0=0,IT0=1,INT1,IT1=0,IT1=1,TF0,IE1,TF1,T0,T1,TI,RI,TXD,RXD,ES,ET0,EX0,EX1,ET1,EA,自然优先级,矢量地址,高级中断请求,自然优先级,矢量地址,低级中断请求,PX0,PT0,PX1,PT1,PS,IE,IP,MCS-51,的中断系统结构图,中断标志位,中断源允许,总允许,中断优先级,单片机原理及应用,自然优先级由硬件形成,排列次序如下:,中断源 自然优先级,外部中断,0,最高级,定时器,T0,中断,外部中断,1,定时器,T1,中断,串行口中断 最低级,单片机原理及应用,TCON,寄存器,T0,和,T1,控制寄存器,TF1,TF0,IE1,IT1,IE0,IT0,TCON,T1,溢出中断标志(,TCON.7):,T1,启动计数后,计满溢出由硬件置位,TF1=1,,向,CPU,请求中断,此标志一直保持到,CPU,响应中断后,,才由硬件自动清0,。也可用软件查询该标志,并由软件清0。,7,6,5,4,3,2,1,0,单片机原理及应用,TF1,TF0,IE1,IT1,IE0,IT0,TCON,88H,外部中断,INT1,中断标志位(,TCON.3),:,IE11,,外部中断1向,CPU,申请中断,外部中断,INT1,触发方式控制位,(TCON.2):,IT1=0,,电平触发方式,IT1=1,下降沿触发方式,7,6,5,4,3,2,1,0,TCON,寄存器,T0,和,T1,控制寄存器,注意:该寄存器可以位寻址。,单片机原理及应用,返回,TI,(SCON.1),串行发送中断标志。,RI,(SCON.0),串行接收中断标志。,TI,RI,SCON,寄存器,串行口控制寄存器,SCON,98H,7,6,5,4,3,2,1,0,注意:该寄存器可以位寻址。,单片机原理及应用,IE,寄存器,中断允许寄存器,IE,A8H,EA,ES,ET1,EX1,ET0,EX0,例:允许定时器,T0,中断:,SETB EA,SETB ET0,或,MOV IE,#82H,7,6,5,4,3,2,1,0,注意:该寄存器可以位寻址。,单片机原理及应用,51单片机有两个中断优先级,高级和低级,专用寄存器,IP,为中断优先级寄存器,用户可用软件设定,相应位为,1,,对应的中断源被设置为,高优先级,,相应位为0,对应的中断源被设置为低优先级,系统复位时,均为低优先级,该寄存器可以位寻址,PS,PT1,PX1,PT0,PX0,IP,寄存器,中断优先级寄存器,IP,B8H,7,6,5,4,3,2,1,0,单片机原理及应用,中断响应过程,CPU,在每机器周期的,S6,采样,并按优先级处理所有,被激活,的中断请求,如没有被下述条件阻止,将在下一机器周期的状态1(,S1),响应激活了的最高级中断请求,执行中断查询结果。,CPU,正在处理相同或更高优先级的中断,现正执行的不是指令的最后一机器周期;,正执行的是中断返回指令,或对,IE、IP,的写操作(须在这些指令执行后至少再执行一条指令后才会响应中断),如果存在以上三条件,,CPU,放弃查询结果,在下一机器周期重新查询。,由于存在中断阻断的情况而未被及时响应,待上述封锁中断的条件被撤消之后,由于中断标志还存在,仍会响应。,单片机原理及应用,CPU,响应中断时,先置位相应的,优先级状态触发器,,然后执行一条内部,自动形成的长调用指令,,使控制转移至至相应的,入口地址,并,清零,相应的中断请求源(串口,TI、RI,除外)。,通常,在中断入口处安排一条相应的跳转指令,以跳到用户设计的中断处理程序入口。,CPU,执行中断处理程序移一直到,RETI,指令为止。,执行,RETI,指令:将清零,优先级状态触发器,,然后从堆栈中弹出两个字节到,PC。,单片机原理及应用,中断服务程序,是一种为中断源的特定情况要求服务的独立程序段,以中断返回指令,RETI,结束,中断服务完后返回到原来被中断的地方,(,即,断点,),,继续执行原来的程序。,中断服务程序的固定入口:,0003H,单元,外部中断,INT0,的中断服务程序入口,000BH,单元,内部定时器计数器,T0,的中断服务程序入口,0013H,单元,外部中断,INT1,的中断服务程序入口,001BH,单元,内部定时器计数器,T1,的中断服务程序入口,0023H,单元,串行口的中断服务程序入口,中断服务程序和子程序一样,在调用和返回时,也有一个保护断点和现场的问题。,在中断响应过程中,断点的保护主要由硬件电路自动实现。它将断点压人堆栈,再将中断服务程序的入口地址送入程序计数器,PC,,,使程序转向中断服务程序,即为中断源的请求服务。,单片机原理及应用,程序存储器,ROM,0000H,0023H:,串行口中断入口,0003H:,外部中断0入口,000BH:,定时器0溢出中断入口,0013H:,外部中断1入口,001BH:,定时器1溢出中断入口,复位后,程序的入口地址,包含,T0,中断服务子程序的程序结构:,ORG 0000H,AJMP MAIN,ORG 000BH,LJMP INTT0,ORG 030H,MAIN:.,.,.,INTT0:.,.,.,RETI,END,单片机原理及应用,中断请求的撤除,CPU,响应某中断请求后,在中断返回前,应该撤除该中断请求,否则会引起另一次中断,。,定时器0或1溢出:,CPU,在响应中断后,硬件清除了有关的中断请求标志,TFO,或,TF1,,即,中断请求是自动撤除的,。,边沿激活的外部中断:,CPU,在响应中断后,也是,用硬件自动清除,有关的中断请求标志,IE0,或,IE1,。,串行口中断:,CPU,响应中断后,没有用硬件清除,TI、RI,,故这些中断不能自动撤除,而,要靠软件来清除相应的标志,。,单片机原理及应用,电平触发外部中断,撤除方法较复杂。,因为在电平触发方式中,,CPU,响应中断时不会自动清除,IE1,或,IE0,标志,所以在响应中断后应立即撤除,INT0,或,INT1,引脚上的低电平。,在硬件上,,CPU,对,INT0,和,INT1,引脚的信号不能控制,所以这个问题要通过硬件,再配合软件来解决。,电平激活的外部中断源中断标志的撤除,单片机原理及应用,中断处理过程,一个完整的中断处理的基本过程应该包括:中断请求、中断响应、中断处理以及中断返回。,中断处理流程图如图,5-5,所示。,不同的计算机由于中断系统的硬件结构不完全相同,因而中断响应的方式有所不同。,中止现行程序,保护断点,转入中断服务程序入口,保护现场,中断服务,恢复现场,中断返回(,RETI,),图,5-5,中断处理流程图,中断响应,中断返回,中断处理,中断请求,CPU,响应中断,中断请求,单片机原理及应用,中断返回,是指执行完中断服务程序后,程序返回到断点,(,即原来程序执行时被断开的位置,),,继续执行原来的程序。,中断返回由专门的,中断返回指令“,RETI”,实现,该指令的功能是把断点地址取出,送回到程序计数器,PC,中去。,特别要注意不能用子程序返回指令“,RET”,代替中断返回指令“,RETI”,。,单片机原理及应用,中断应用举例,中断程序,一般包含中断控制程序(即中断初始化程序)和中断服务程序两部分。,中断初始化程序,中断初始化程序实质上就是对,TCON,、,SCON,、,IE,和,IP,寄存器的管理和控制。只要这些寄存器的相应位按照要求进行了状态预置,,CPU,就会按照人们的意图对中断源进行管理和控制。,中断初始化程序一般不独立编写,而是包含在主程序中,根据需要进行编写。,中断初始化程序需完成以下操作:,1,开中断;,2,某一中断源中断请求的允许与禁止,(,屏蔽,),;,3,确定各中断源的优先级别;,4,若是外部中断请求,则要设定触发方式是电平触发还是边沿触发,。,单片机原理及应用,例,1,假设规定外部中断,0,为电平触发方式,高优先级,试写出有关的初始化程序。,方法,1,,用位操作指令完成:,SETB EA,;,开中断允许总控制位,SETB EX0,;,外中断,0,开中断,SETB PX0,;,外中断,0,高优先级,CLR IT0,;,电平触发,方法,2,,用其它指令也可完成同样功能:,MOV IE,,,#81H,;,同时置位,EA,和,EX0,ORL IP,,,#01H,;,置位,PX0,ANL TCON,,,#0FEH,;使,IT0,为,0,这两种方法都可以完成题目规定的要求。一般情况下,用方法,1,简单些。因为,在编制中断初始化程序时,只需知道控制位的名称就行了,而不必记住它们在寄存器中的确切位置。,单片机原理及应用,例,2,设在主程序中用到了寄存器,PSW,、,ACC,、,B,、,DPTR,,,而在执行中断服务程序时需要用到这些寄存器。在中断服务程序里要保护,PSW,、,ACC,、,B,、,DPTR,的内容,以免破坏主程序中相应用到的寄存器,PSW,、,ACC,、,B,、,DPTR,内容。,程序如下:,SERVICE,:,CLR EA,PUSH,PSW,;,保护程序状态字,PUSH,ACC,;,保护累加器,A,PUSH,B,;,保护寄存器,B,PUSH,DPL,;,保护数据指针低字节,PUSH,DPH,;,保护数据指针高字节,SETB EA,;,中断处理,CLR EA,POP,DPH,;,恢复现场,即恢复各寄存器内容,POPDPL,POP B,POPACC,POPPSW,SETB EA,RETI,单片机原理及应用,(,P95,)按键控制灯循环点亮,ORG0000H,SETBP3.3,MOVA,#0FEH,LOOP:MOVP1,,,A,JBP3.3,,,$,JNBP3.3,,,$,RLA,SJMPLOOP,END,ORG0000H,SJMPMAIN,ORG0013H,SJMPINT_1,ORG30H,MAIN:MOVSP,#60H,MOVA,#0FEH,MOVP1,,,A,SETBIT1,SETBEA,SETBEX1,SJMP$,ORG50H,INT_1,:,RLA,MOVP1,,,A,RETI,END,单片机原理及应用,外部中断源的扩展,两种扩展方法:,1.定时器,T0,T1。(,工作在计数方式下),2.中断和查询结合。,单片机原理及应用,用定时器作外部中断源 将定时器,T0,扩展为外部中断源。,将定时器,T0,设定为方式2(自动恢复计数初值),,TH0,和,TF0,的初值均设置为,FFH,,允许,T0,中断,,CPU,开放中断,源程序如下:,MOVTMO
展开阅读全文