《单片机原理及应用第五章.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用第五章.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章第五章 中断系统中断系统5.1 中断概述中断概述 中中断断是是指指CPUCPU对对系系统统或或系系统统外外发发生生的的某某个个事事件件的的一一种种响响应应过过程程,即即CPUCPU暂暂时时停停止止现现行行程程序序的的执执行行,而而自自动动转转去去执执行行预预先先安安排排好好的的处处理理该该事事件件的的服服务务子子程程序序,处处理理结结束束后后再再返返回回被被暂停处继续执行原来的程序。暂停处继续执行原来的程序。实实现现这这种种中中断断功功能能的的硬硬件件系系统统和和软软件件系系统统统统称为中断系统。统统称为中断系统。引起引起CPU中断的根源,称为中断的根源,称为中断源。中断源。中断源向中断
2、源向CPU提出提出的中断请求。的中断请求。CPU暂时中断原来的事务暂时中断原来的事务A,转去处理事件转去处理事件B。对事件对事件B处理完毕后,再回到原来被中断的地方(即处理完毕后,再回到原来被中断的地方(即断点断点),),称为中断返回。实现上述中断功能的部件称为称为中断返回。实现上述中断功能的部件称为中断系统中断系统(中断机构)。(中断机构)。一个单片机系统可能有多个中断源,而一个单片机系统可能有多个中断源,而单片机单片机CPU在某一时刻只能响应一个中断源在某一时刻只能响应一个中断源的中断请求,当多个中断源同时向的中断请求,当多个中断源同时向CPU发出发出中断请求时,则必须按照中断请求时,则必
3、须按照“优先级别优先级别”进行进行排队,排队,CPU首先选定其中中断级别高的中断首先选定其中中断级别高的中断源为其服务,然后按排队顺序逐一服务,完源为其服务,然后按排队顺序逐一服务,完毕后返回断点地址,继续执行主程序。毕后返回断点地址,继续执行主程序。分时操作分时操作。CPU可以分时为多个可以分时为多个I/O设备服务,设备服务,提高了计算机的利用率;提高了计算机的利用率;实时响应实时响应。CPU能够及时处理应用系统的随机事能够及时处理应用系统的随机事件,系统的实时性大大增强;件,系统的实时性大大增强;可靠性高可靠性高。CPU具有处理设备故障及掉电等突发具有处理设备故障及掉电等突发性事件能力,从
4、而使系统可靠性提高。性事件能力,从而使系统可靠性提高。优点:优点:中断系统应考虑的基本问题中断系统应考虑的基本问题:中断源中断源:中断请求信号的来源。:中断请求信号的来源。中中断断响响应应与与返返回回:CPUCPU响响应应中中断断后后转转去去执执行行特特定定中中断断服服务务程程序序及及执执行行完完毕毕后后返返回回原原执行的程序。执行的程序。优优先先级级控控制制:多多个个中中断断提提出出请请求求时时,CPU CPU 响应的次序。响应的次序。中断与调用子程序的区别:子程序的执行是由程序员事先安排好的(由一条调用子程序指令来转入),而中断服务程序是由随机的中断事件引起的;子程序的执行受到主程序或上一
5、级子程序的控制,而中断服务程序一般与被中断的程序毫无关系;有可能发生多个中断事件同时请求CPU服务的情况。中断的作用:中断作为一项重要的计算机技术,在计算机中得到了广泛的应用。中断技术实质上就是一种资源共享技术,其主要作用如下:中断技术能实现CPU与多个外部设备并行工作,提高了CPU的利用率及数据的输入/输出效率;中断技术能对计算机运行过程中某个事件的出现或突然发生的故障,做到及时发现并进行自动处理,即实现实时处理;中断技术能使我们通过键盘发出请求,随时对运行中的计算机进行干预,即可以实现人机联系;实现多道程序的切换运行;在多机系统中,实现各处理机之间的信息交换和任务切换。5.5.2 2 AT
6、89C51AT89C51中断系中断系统统 5.2.1 中断源及中断系统构成中断源及中断系统构成 51子子系系列列提提供供5个个中中断断源源,具具有有两两个个优优先先级级,可可形成中断嵌套。形成中断嵌套。/INT0/INT0:外外部部中中断断0 0,P3.2P3.2口口,低低电电平平或或下下降降沿沿触触发发。/INT1/INT1:外部中断外部中断1 1,P3.3P3.3口,低电平或下降沿触发。口,低电平或下降沿触发。T0T0:定时计数器定时计数器0 0中断,中断,T0T0回零溢出触发回零溢出触发TF0TF0标志。标志。T1T1:定时计数器定时计数器1 1中断,中断,T1T1回零溢出触发回零溢出触
7、发TF1TF1标志。标志。TITIRIRI:串串行行I/OI/O中中断断,串串行行口口完完成成一一帧帧数数据据发发送送接接收收后触发。后触发。80C51的中断系统有的中断系统有5个中断源,个中断源,2个优先级,可实个优先级,可实现二级中断嵌套现二级中断嵌套。5.2.2 中断标志与中断控制中断标志与中断控制 1、中断锁存寄存器、中断锁存寄存器TCON:TCON也为定时计数器的控制寄存器,也为定时计数器的控制寄存器,锁存锁存标志。字节地址锁存锁存标志。字节地址88H。TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 1、中断锁存寄存器、中断锁存寄存器TCON:TF1:T1溢出中断标志
8、溢出中断标志TF0:T0溢出中断标志溢出中断标志 1有中断请求有中断请求IE1:INT1中断请求标志中断请求标志 0无中断请求无中断请求IE0:INT0中断请求标志中断请求标志IT1:INT1触发控制位触发控制位 1下降沿触发下降沿触发IT0:INT0触发控制位触发控制位 0低电平触发低电平触发2、串行口控制寄存器串行口控制寄存器SCON:TI,串行口发送中断标志位。当串行口发送中断标志位。当CPU将一个发送将一个发送数据写入串行口发送缓冲器时,就启动了发送过数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不
9、能自动清除响应中断时,不能自动清除TI,TI必须由软件清必须由软件清除。除。RI,串行口接收中断标志位。当允许串行口接收串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位数据时,每接收完一个串行帧,由硬件置位RI。同样,同样,RI必须由软件清除。必须由软件清除。3、中断允许寄存器、中断允许寄存器IE:EA:总中断控制位总中断控制位ES:串行口中断控制位串行口中断控制位ET1:T1中断控制位中断控制位EX1:INT1中断控制位中断控制位ET0:T0中断控制位中断控制位EX0:INT0中断控制位中断控制位以上各位:以上各位:1允许中断;允许中断;0禁止中断。禁止中断。用于
10、打开或关断各中断源,字节地址用于打开或关断各中断源,字节地址A8H。4、中断优先级寄存器、中断优先级寄存器IP:PS:串行口中断优先级控制位串行口中断优先级控制位PT1:T1中断优先级控制位中断优先级控制位PX1:INT1中断优先级控制位中断优先级控制位PT0:T0中断优先级控制位中断优先级控制位PX0:INT0中断优先级控制位中断优先级控制位以上各位:以上各位:1高优先级;高优先级;0低优先级。低优先级。用于设定各中断源的优先级,字节地址用于设定各中断源的优先级,字节地址B8H。中断基本规则中断基本规则:任一种中断,不能被同级或低级中断所中断;任一种中断,不能被同级或低级中断所中断;高级中断
11、能打断低级中断(中断嵌套);高级中断能打断低级中断(中断嵌套);若同时有几个同级中断源提出申请,若同时有几个同级中断源提出申请,CPU响响应的顺序为(查询):应的顺序为(查询):INT0(高)T0INT1T1RITI(最低)5.3 中断处理过程 中断处理过程可分为中断处理过程可分为4 4个阶段:个阶段:中断请求中断请求,中中断查询和响应断查询和响应,中断处理中断处理,中断返回中断返回。1.1.中断请求中断请求 中断请求是由硬件完成的,定时中断和串行中断请求是由硬件完成的,定时中断和串行中断在单片机芯片内部自动完成,中断请求完成中断在单片机芯片内部自动完成,中断请求完成后,相应的中断请求标志位被
12、直接置位。后,相应的中断请求标志位被直接置位。外部中断的中断请求信号要分别从(外部中断的中断请求信号要分别从(P3.2P3.2)和和 (P3.3)2(P3.3)2个引脚由片外输入。片内中断控制系个引脚由片外输入。片内中断控制系统在每个机器周期的统在每个机器周期的S5P2S5P2对引脚信号进行采样根对引脚信号进行采样根据采样的结果来设置中断请求标志位的状态,中据采样的结果来设置中断请求标志位的状态,中断请求完成后,中断请求标志位被置位。断请求完成后,中断请求标志位被置位。2.2.中断查询和响应中断查询和响应 中断的查询和中断的响应也是由硬件自中断的查询和中断的响应也是由硬件自动完成的。动完成的。
13、所谓查询所谓查询:就是由就是由CPUCPU测试测试TCONTCON和和SCONSCON中的中的各标志位的状态,以确定有无中断请求以及各标志位的状态,以确定有无中断请求以及是那一个中断请求。是那一个中断请求。在程序执行过程中,中在程序执行过程中,中断查询是在指令执行的每个机器周期中不停断查询是在指令执行的每个机器周期中不停地重复进行的。地重复进行的。3 中断响应条件中断响应条件中断源有中断请求;中断源有中断请求;此中断源的中断允许位为此中断源的中断允许位为1;CPU开中断(即开中断(即EA=1)。)。同时满足时,同时满足时,CPU才有可能响应中断。才有可能响应中断。此外,若某个中断源通过编程设置
14、处于被打开此外,若某个中断源通过编程设置处于被打开的状态,并满足中断响应的条件,但是,若遇到的状态,并满足中断响应的条件,但是,若遇到以下任一情况,则单片机仍不能响应此中断:以下任一情况,则单片机仍不能响应此中断:当前当前CPUCPU正在处理比申请源高级或与申请源同正在处理比申请源高级或与申请源同级的中断。级的中断。当前正在执行的那条指令没有执行完。当前正在执行的那条指令没有执行完。正在访问正在访问IEIE、IPIP中断控制寄存器或执行中断控制寄存器或执行RETIRETI指指令。并且,只有在执行这些指令后至少再执行一令。并且,只有在执行这些指令后至少再执行一条指令时,才能接受中断请求。条指令时
15、,才能接受中断请求。由于上述原因而未能响应的中断请求,待上由于上述原因而未能响应的中断请求,待上述原因消失时该中断请求标志却已消失,那么该述原因消失时该中断请求标志却已消失,那么该中断不再被响应。也就是说,中断不再被响应。也就是说,MCS-51MCS-51对查询的结对查询的结果不作记忆,查询过程在下个机器周期重新进行。果不作记忆,查询过程在下个机器周期重新进行。4 4 中断响应中断响应 中断响应是对中断源提出的中断请求的接中断响应是对中断源提出的中断请求的接受,在中断查询中,当查询到有效的中断请求受,在中断查询中,当查询到有效的中断请求时,紧接着就进行中断响应。中断响应的主要时,紧接着就进行中
16、断响应。中断响应的主要内容是由硬件自动生成一条长调用指令内容是由硬件自动生成一条长调用指令LCALL LCALL addr16addr16,这里的,这里的addr16addr16就是程序存储器中相应就是程序存储器中相应的中断服务程序地址区的入口地址。的中断服务程序地址区的入口地址。中断入口地址中断入口地址:0003H :外部中断外部中断0服务程序入口(服务程序入口(INT0)000BH :定时器定时器0中断服务程序入口(中断服务程序入口(T0)0013H :外部中断外部中断1服务程序入口(服务程序入口(INT1)001BH :定时器定时器1中断服务程序入口(中断服务程序入口(T1)0023H
17、:串行口中断服务程序入口串行口中断服务程序入口 5 中断响应时间中断响应时间:一般情况下:一般情况下:中中断断请请求求 响响应中断应中断 (38个机器周期)个机器周期)中断响应时间是指从中断响应有效(标志位置中断响应时间是指从中断响应有效(标志位置1 1)到)到转向其中断服务程序地址区的入口地址所需的时间。转向其中断服务程序地址区的入口地址所需的时间。分析可知,在单中断源的中断系统中,中断响应分析可知,在单中断源的中断系统中,中断响应时间至少要用时间至少要用3 3个机器周期,最多为个机器周期,最多为8 8个机器周期。个机器周期。在一般应用情况下,中断响应时间长短通常无需在一般应用情况下,中断响
18、应时间长短通常无需考虑,但是在需要精确定时的应用中,为了保证定时考虑,但是在需要精确定时的应用中,为了保证定时的精确,往往要估算中断响应的时间。的精确,往往要估算中断响应的时间。6、中断响应过程、中断响应过程:响应中断响应中断自动清除中断请求标志(自动清除中断请求标志(IE0、IE1、TF0、TF1,但但RI/TI需由软件清)需由软件清)保留断点(当前保留断点(当前PC值入栈)值入栈)中断入口地址中断入口地址PC执行中断服务程序执行中断服务程序中断返回(中断返回(RETI)恢复断点(原恢复断点(原PC值出栈)值出栈)8.中断请求的撤销 CPUCPU响应中断后,应撤销该中断请求,否则会引起响应中
19、断后,应撤销该中断请求,否则会引起再次中断。再次中断。对于定时中断,在对于定时中断,在CPUCPU响应中断后,由中断机构硬件响应中断后,由中断机构硬件自动撤销中断请求标志自动撤销中断请求标志TF0TF0和和TF1TF1;对于脉冲方式触发的外中断,由于脉冲信号过后就对于脉冲方式触发的外中断,由于脉冲信号过后就消失了,也是在响应中断后由中断机构硬件自动撤销消失了,也是在响应中断后由中断机构硬件自动撤销中断请求标志中断请求标志IE0IE0和和IE1IE1;对电平触发的外中断,对电平触发的外中断,CPUCPU响应中断后,必须立即撤响应中断后,必须立即撤除引脚上的低电平触发信号才能由硬件自动撤销中断除引
20、脚上的低电平触发信号才能由硬件自动撤销中断请求标志请求标志IE0IE0和和IE1IE1;对于串行中断,对于串行中断,CPUCPU响中断后,中断请求标志响中断后,中断请求标志RIRI和和TITI不会被自动撤销,它们要用软件来撤销,这在编写串不会被自动撤销,它们要用软件来撤销,这在编写串行中断服务程序时应以注意。行中断服务程序时应以注意。9.9.中断处理中断处理 中断处理应根据具体要求编写中断服务中断处理应根据具体要求编写中断服务程序。在程序中要注意以下程序。在程序中要注意以下2 2个问题:个问题:现场保护和现场恢复现场保护和现场恢复;关中断和开中断关中断和开中断 10.中断返回 中断服务程序的最
21、后一条指令必须是中断中断服务程序的最后一条指令必须是中断返回指令返回指令RETIRETI,CPUCPU执行这条指令时,把响应中执行这条指令时,把响应中断时置位的优先级触发器复位,再从堆栈中弹断时置位的优先级触发器复位,再从堆栈中弹出断点地址送出断点地址送PCPC,使程序回到断点处重新执行,使程序回到断点处重新执行先前被中断了的程序。由于先前被中断了的程序。由于RETIRETI的作用不同于的作用不同于RETRET,所以中断的返回不能用,所以中断的返回不能用RETRET指令来替代。指令来替代。5.45.4 中断系中断系统统的的应应用用 AT89C51中断功能的应用主要包括两方中断功能的应用主要包括
22、两方面的内容:一是各中断源的合理运用和相应面的内容:一是各中断源的合理运用和相应硬件电路的设计,二是初始化程序和中断服硬件电路的设计,二是初始化程序和中断服务程序的编写。下面通过几个应用举例加以务程序的编写。下面通过几个应用举例加以理解。理解。例例利用外中断实现程序的单步执行。利用外中断实现程序的单步执行。AT89C51内内部部有有4 KB字字节节的的Flash存存储储器器,用用户户编编写写好好的的程程序序用用简简单单的的程程序序写写入入器器很很容容易易写写入入和和擦擦除除,在在没没有有开开发发系系统统的的条条件件下下,利利用用外外中中断断实实现现程程序序的的单单步步运运行行为用户调试程序带来
23、一定的方便为用户调试程序带来一定的方便。外中断外中断/INT0设为电平触发方式,中断服务程序为:设为电平触发方式,中断服务程序为:ORG 0003H JNB P3.2,$JB P3.2,$RETI原理:当原理:当CPU正在处理某中断时,不能响应同级正在处理某中断时,不能响应同级别中断,且在执行别中断,且在执行RETI返回指令后,还必须多执返回指令后,还必须多执行一条指令才能响应新的中断。行一条指令才能响应新的中断。例例 扩展外部中断源:扩展外部中断源:在在变变频频调调速速器器中中都都设设有有过过流流(OC)、过过压压(OV)、欠欠压压(UV)、过过热热(OH)这这四四种种故故障障保保护护,当当
24、任任一一故故障障发发生生时时,都都要要立立刻刻停停机机处处理理,避避免免故故障障范范围围扩扩大大。这这种种情情况况必必须须采采用用中中断断方方式式,使使单单片片机机立立刻刻响响应应中中断断处处理理。试试设设计计其其硬硬件件电电路路和和软软件件程程序。序。根根据据要要求求,四四个个故故障障相相当当四四个个中中断断源源,可可利利用用中中断断查查询询方方法法,将将四四个个中中断断源源归归结结为为一一个个中中断断请请求求,同同时时四四个个故故障障信信号号引引到到P1口口的的四四个个输输入入端端,然然后后在在中中断断程程序序中中查查询询P1口口,确确定定是是哪哪一一个个故故障障申申请请的的中中断断。电电
25、路路如如图图5-8所所示示。一一旦旦发发生生故故障障,单单片片机机必必须须响响应应中中断断,因因此此,该该中中断断必必须须设设置置成成最最高高级级中中断断。在在中中断断程程序序中可以显示故障信息。中可以显示故障信息。图5-8 扩展4个外中断源电路主程序和中断服务程序如下:主程序和中断服务程序如下:ORG0000HLJMP ZCX1 ;转主程序转主程序 ORG 0013HLJMP INT1 ;转中断程序转中断程序 ORG 0100HZCX1:MOV SP,#30H ;置堆栈指针;置堆栈指针MOV IP,#04H ;设;设 为最高级为最高级CLR IT1 ;设;设 为电平触发为电平触发SETB E
26、A ;开中断;开中断SETB EX1ZCX2:其他处理程序:其他处理程序 AJMP ZCX2ORG 0200HINT1:PUSH PSW ;中断服务程序中断服务程序 PUSH ACC JB P1.0,XI1 ;P1.0为为1,转,转OC中断服务程序中断服务程序 JB P1.1,XI2 ;P1.1为为1,转,转OV中断服务程序中断服务程序 JB P1.2,XI3 ;P1.2为为1,转,转UV中断服务程序中断服务程序 JB P1.3,XI4 ;P1.3为为1,转,转OH中断服务程序中断服务程序INRET:POP ACC POP PSW RETIXI1:AJMP OCXI2:AJMP OV XI3:
27、AJMP UV XI4:AJMP OH OC:;OC处理子程序处理子程序(略略)AJMP INRET OV:;OV处理子程序处理子程序(略略)AJMP INRET UV:;UV处理子程序处理子程序(略略)AJMP INRET OH:;OH处理子程序处理子程序(略略)AJMP INRET 例例:下图是单片机控制的数据传输系统。将:下图是单片机控制的数据传输系统。将P1P1口设置成数据输入口,外部设备每准备好一个数据口设置成数据输入口,外部设备每准备好一个数据时发出一个正脉冲,使时发出一个正脉冲,使D D触发器触发器Q Q端置端置0 0,向送入一个,向送入一个低电平中断请求信号。中断响应后,为了撤
28、销中断低电平中断请求信号。中断响应后,为了撤销中断请求,可利用请求,可利用P3.0P3.0向向D D触发器的直接置位端触发器的直接置位端SDSD输出一输出一个负脉冲,使个负脉冲,使D D触发器的触发器的Q Q端置端置1 1,从而撤销了低电平,从而撤销了低电平的中断请求信号。的中断请求信号。程序编制如下:程序编制如下:ORG 0000HORG 0000HSTART:LJMP MAIN START:LJMP MAIN ;跳转到主程序;跳转到主程序 ORG 0003HORG 0003H LJMP INT0 LJMP INT0 ;转向中断服务程序转向中断服务程序 ORG 0030H ORG 0030H
29、 ;主程序;主程序MAIN:CLR IT0 MAIN:CLR IT0 ;设置电平触发方式设置电平触发方式 SETB EA SETB EA ;CPUCPU开放中断开放中断 SETB EX0 SETB EX0 ;允许外中断允许外中断0 0中断中断 MOV DPTR,#1000H MOV DPTR,#1000H ;置数据区地址针;置数据区地址针 ORG 0100H ORG 0100H ;中断服务程序;中断服务程序 INT0:PUSH PSW INT0:PUSH PSW ;保护现场;保护现场 PUSH A PUSH A CLR P3.0 CLR P3.0 ;由;由P3.0P3.0输出负脉冲输出负脉冲
30、NOP NOP ;NOP NOP ;SETB P3.0 SETB P3.0 ;MOV A,P1 MOV A,P1 ;输入数据;输入数据 MOVX MOVX DPTR,A DPTR,A ;存入数据存储器;存入数据存储器 INC DPTR INC DPTR ;修改数针;修改数针 POP A POP A ;恢复现场;恢复现场 POP PSW POP PSW ;RETI RETI ;中断返回;中断返回 例例:图:图5-35-3的中断线路可实现多个故障。当的中断线路可实现多个故障。当系统无故障时,系统无故障时,4 4个故障源输入端全为低电平,个故障源输入端全为低电平,显示灯全熄灭,只有当某部分出现故障,
31、其相显示灯全熄灭,只有当某部分出现故障,其相应的输入线才由低电平变为高电平从而引起中应的输入线才由低电平变为高电平从而引起中断。中断服务程序的任务就是判定故障源,并断。中断服务程序的任务就是判定故障源,并进行相应的灯光显示。进行相应的灯光显示。程序编制如下:程序编制如下:ORG 0000H ORG 0000H AJMP MA1 AJMP MA1 ;转向主程序;转向主程序 ORG 0003HORG 0003H AJMP SERVE AJMP SERVE ;转向中断服务程序;转向中断服务程序MA1:MA1:MOVMOV P1,#55H P1,#55H ;全部指示灯灭,并为读入故障信;全部指示灯灭,
32、并为读入故障信 ;号作准备号作准备 SETB IT0 SETB IT0 ;选取外中断为脉冲触发方式;选取外中断为脉冲触发方式 SETB EX0 SETB EX0 ;允许外中断;允许外中断0 0中断中断 SETB EA SETB EA ;开;开CPUCPU中断中断LOOP:MOV A,P1 LOOP:MOV A,P1 ;ANL A,#55H ANL A,#55H ;JNZ LOOP JNZ LOOP ;有故障信号转;有故障信号转LOOPLOOP MOV P1,#55H MOV P1,#55H ;无故障信号灯全灭,;无故障信号灯全灭,;并为读入故并为读入故 障信号作准备障信号作准备 SJMP LO
33、OP SJMP LOOP ;等待中断;等待中断SERVESERVE:JNB P1.0,L1 JNB P1.0,L1 ;中断服务程序,查询故障源,若有故障,将;中断服务程序,查询故障源,若有故障,将 ;相应的灯点亮;相应的灯点亮 SETB P1.1SETB P1.1 SJMP L2 SJMP L2L1:CLR P1.1L1:CLR P1.1L2:JNB P1.2,L3L2:JNB P1.2,L3 SETB P1.3SETB P1.3 SJMP L4 SJMP L4L3:CLR P1.3L3:CLR P1.3L4:JNB P1.4,L5L4:JNB P1.4,L5 SETB P1.5SETB P1.5 SJMP L6 SJMP L6L5:CLR P1.5L5:CLR P1.5L6:JNB P1.6,L7L6:JNB P1.6,L7 SETB P1.7 SETB P1.7 SJMP L8 SJMP L8L7:CLR P1.7L7:CLR P1.7L8:RETIL8:RETI本章到此结束
限制150内