您好,欢迎访问三七文档
第4章中断技术一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。4.1中断概述4.2MCS-51中断系统第4章中断技术第4章中断技术4.1中断概述返回1、中断的定义:中断是指如下过程:CPU与外设同时工作,CPU执行主程序,外设做准备工作,当外设准备好时向CPU发中断请求信号,若条件满足,则CPU终止主程序的执行,转去执行中断服务程序,在中断服务程序中CPU与外设交换信息,待中断服务程序执行完后,CPU再返回刚才终止的主程序继续执行。2、中断系统的定义:中断系统是指为了实现中断传送过程在CPU内外设置的硬件和有关中断的指令。3、中断源:⑴中断源的定义:中断源是指引起中断请求的来源。⑵中断源的分类:①软中断和②硬中断4、中断处理的全过程中断处理的全过程分成3个阶段:中断请求、中断响应和中断服务。5、多重中断与中断优先级⑴当系统中有多个设备提出中断请求时,多个外设的中请信号要通过门电路送到CPU的中请输入端,使CPU能收到多个外设提出的中请。⑵CPU在收到多个外设的请求后,按中断处理原则处理中断。⑶确定优先级的方法解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法(采用可编程的中断控制器芯片,如Intel8259A)。通过指令引起的中断。可以发中断请求信号的外设或过程。如打印机、驱动器、故障源和A/D转换器等。第4章中断技术中断请求1.CPU都有中请输入线。中请输入线有2类:非屏蔽中请输入线和可屏蔽中请输入线;有的CPU只有可屏蔽中请输入线,而有的CPU则2种都有。2.CPU的开、关中断。CPU内有1个中断请求触发器IFF,当IFF=1时,称CPU开中断,此时CPU可以处理收到的可屏蔽中请;当IFF=0时,称CPU关中断,虽然CPU收到了可屏蔽中请,但不处理(响应)它。3.CPU内有中断请求检测电路。CPU每执行一条指令,其内的中断请求检测电路都要检测中断请求输入端的状态:①先测NMI,若NMI有效,则CPU进入非屏蔽中响阶段。②若NMI无效,则检测INT的状态。③若INT有效且CPU开中断,则CPU进入可屏蔽中响阶段。④若INT有效但CPU关中断,则CPU执行下一条指令。⑤若INT无效,则CPU执行下一条指令。对于非屏蔽中请输入线上的中请,CPU无条件的响应。对于可屏蔽中请输入线上的中请,只有在CPU和中断源都开中断的情况下才能响应。返回第4章中断技术中断响应1.中断响应定义中断源向CPU发出中断请求,若其优先级别最高,CPU在满足一定的条件下,可以中断当前程序的运行,保护好被中断的主程序的断点及现场信息。然后,根据中断源提供的信息,找到中断服务子程序的入口地址,转去执行新的程序段,这就是中断响应。2.中断响应条件CPU响应中断是有条件的,如内部允许中断、中断未被屏蔽、当前指令执行完等。3.任何CPU在中断响应阶段一定做如下工作:①保护断点和②给出中断服务程序入口地址(将中断服务程序的首地址送给PC,为CPU执行装段服务程序创造条件);有的CPU还会做自动关中断等操作4.给出中断服务程序入口地址的方法有2种:⑴固定入口式(中断服务程序的首地址固定,直接将此规定地址送给PC)⑵矢量式。返回第4章中断技术中断服务中断服务子程序是由用户根据自己的需要编制的,编制时要注意如下问题:1.保护现场:由一系列的PUSH指令完成。目的是为了保护那些与主程序中有冲突的寄存器,(如A,PSW,工作寄存器等),如果中断服务子程序中所使用的寄存器与主程序中所使用的寄存器等没有冲突的话,这一步骤可以省略。2.开/关中断:由SETB或CLR指令实现。目的是为了能控制中断。3.中断服务:与中断源实现信息交换。4.恢复现场:由一系列的POP指令完成。是与保护现场对应的,但要注意数据恢复的次序,以免混乱。5.返回:使用中断返回指令RETI。不能使用一般的子程序返回指令RET,因为RETI指令除了能恢复断点地址外,还能恢复中断响应时的标志寄存器的值,而这后一个动作是RET指令不能完成的。返回中断服务子程序结构图第4章中断技术中断服务子程序结构图返回保护现场开中断与外设交换信息恢复现场中断返回第4章中断技术中断处理原则返回1.当多个中断源同时提出中请时,CPU按优先级的高低有高到低依次为外设服务。2.当CPU正为某外设服务又有新外设提出中请时,⑴若新外设级别高则CPU终止为原外设服务转去为新外设服务,为新外设服务完后,再为原外设服务。⑵若新外设级别低或与原外设同级,则CPU继续为原外设服务,为原外设服务完后,再为新外设服务。第4章中断技术4.2MCS-51中断系统4.2.1MCS-51中断系统结构4.2.2MCS-51中断处理过程4.2.3MCS-51中断系统应用返回第4章中断技术4.2.1MCS-51中断系统结构MCS51系列单片机上集成有中断系统,从使用者的角度出发,MCS51的中断系统就是一些SFR,如IE、IP、TCON、SCON。返回INT0定时器1串行口外设外设0INT10IE0IE1TF0TF1定时器0TCONRITISCONEX0EX1ET0ET1ES&IEEAPX001PX101PT001PT101PS01IP0003H000BH0013H001BH0023H0003H000BH0013H001BH0023HPC高低中断源第4章中断技术MCS-51中断源MCS51单片机有5个中断源。5个中断源分为2种:2个外中断(由P3.2和P3.3引入)和3个内中断(T0、T1和串口)。每个中断源对应一个中断标志位,当某个中断源有中请时,相应的中断标志位置1,各个中断源的中断标志位在TCON和SCON中。返回INT0定时器1串行口外设外设0INT10IE0IE1TF0TF1定时器0TCONRITISCONEX0EX1ET0ET1ES&IEEAPX001PX101PT001PT101PS01IP0003H000BH0013H001BH0023H0003H000BH0013H001BH0023HPC高低中断源第4章中断技术中断标志与TCON和SCON1、MCS51单片机内部的中断检测电路检测到有中请后,将检测结果存于TCON、SCON中;每个中断源对应一个中断标志位,当某个中断源有中请时,相应的中断标志位置1,各个中断源的中断标志位在TCON和SCON中。TCON:88H可以按字节操作,也可以按位操作。TCON:98H可以按字节操作,也可以按位操作。2、在每条指令结束时,CPU检测各个中断标志位,若中断标志位置1,则认为有中断请求。3、外中断有2种触发方式:低电平和下降沿,由TCON中的TI0和TI1决定。⑴当IT0=1,INT0为脉冲方式,后沿负跳变有效;当IT0=0,低电平有效。此位,可由软件置1或清0。⑵当IT1=1,INT1为脉冲方式,后沿负跳变有效;当IT1=0,低电平有效。此位可由软件置1或清0。返回TF1TR1TF0TR0IE1IT1IE0IT0TIRI第4章中断技术中断开放与中断允许控制寄存器IEMCS-51单片机的5个中断源都是可屏蔽中断,也就是说用户可以通过软件方法来控制是否允许CPU去响应中断。CPU对中断源的中断开放(也称中断允许)或中断屏蔽(也称中断禁止)的控制是通过中断允许控制寄存器IE来实现的。IE:A8H可以按字节操作,也可以按位操作。EA:当EA=0时,称CPU关中断。当EA=1时,称CPU开中断。EX0:当EX0=0时,禁止INT0申请中断;当EX0=1时,允许INT0申请中断。EX1:当EX1=0时,禁止INT1申请中断;当EX1=1时,允许INT1申请中断。ET0:当ET0=0时,禁止T0中断;当ET0=1时,允许T0中断。ET1:当ET1=0时,禁止T1中断;当ET1=1时,允许T1中断。ES:当ES=0时,禁止串行口中断;当ES=1时,允许串行口中断8051复位后IE=00H,说明CPU和各个中断源都关中断。注意:单片机在响应中断后不会自动关中断,因此,如果在转入中断服务处理程序后,如果想禁止更高级的中断源的中断申请,可以用软件方式关闭中断。例如:假定要开放外中断1和T1的溢出中断,屏蔽其他中断,则对应的中断允许控制寄存器内容应为10001100B,即中断允许控制字为8CH。①使用字节操作指令,可用一条指令MOVIE,#8CH完成。②使用位操作指令,则需三条指令SETBEX1;SETBET1;SETBEA实现。EX0ET0EX1ET1ESEA返回第4章中断技术中断优先级与中断优先级寄存器IPMCS-51单片机的中断系统对优先级的控制比较简单,只规定了两个中断优先级,对于每一个中断源均可编程为高优先级中断或低优先级中断,各中断源的优先级由中断优先级控制寄存器IP设定。IP:B8H可以按字节操作,也可以按位操作。PX0:当PX0=0时,INT0处于低级;当PX0=1时,INT0处于高级。PX1:当PX1=0时,INT1处于低级;当PX1=1时,INT1处于高级。PT0:当PT0=0时,T0处于低级;当PT0=1时,T0处于高级。PT1:当PT1=0时,T1处于低级;当PT1=1时,T1处于高级PS:当PS=0时,串行口处于低级;当PX0=1时,串行口处于高级。8051复位后IP=00H,说明各个中断源都处于低级。注意:1、当五个中断源在同一个优先级的情况下INT0优先权最高,串行口优先权最低。在同一个优先级中,对五个中断源的优先次序安排如下:INT0→T0→INT1→T1→串口(中断优先级从高到低)2、对于外中断来说,可以用软件查询法和硬件排队电路法确定优先级。3、通过对IP寄存器的编程,可以把五个中断源分别定义在两个优先级中,软件可以随时对IP的各位清0或置1。例如某软件中对寄存器IE、IP设置如下:MOVIE,#10001111BMOVIP,#00000110B此时该系统中:①CPU中断允许;允许外部中断0、外部中断1、定时/计数器0、定时/计数器1发出的中断申请。②允许中断源的中断优先次序为:定时/计数器0外部中断1外部中断0定时/计数器1。PX0PT0PX1PT1PS返回第4章中断技术4.2.2MCS-51中断处理全过程1、中断请求⑴MCS51单片机内部的中断检测电路随时检测各个中断源,检测到有每个中断源有中请后,将相应的中断标志位置1。⑵CPU在每条指令结束时,检测各个中断标志位,若中断标志位置1,则认为有中断请求。⑶CPU读取IE和IP的内容,若中断允许且满足如下条件,则在下一个机器周期进入中断响应阶段。①没有同级或更高级的中断正在执行(否则必须等CPU为它们服务完之后,才能响应新中断请求。)②执行完的指令不是RETI或访问IE和IP的指令(否则必须另外执行一条指令后才能响应。)2、中断响应在中断响应阶段单片机做2件工作:⑴断点地址压栈。⑵根据不同的中断源,将不同的固定地址送PC,从而转到不同的地方执行程序。各个中断源的入口地址是:0003H、000BH、0013H、001BH、0023H。INT0T0INT1T1串行口注意:8051在响应了INT0、INT1、T0、T1的中断之后会自动清除它们的中断标志位,但不会清除串口的中断标志位。3、中断服务CPU响应中断后即转至中断服务程序的入口,执行中断服务程序。针对中断源的具体要求进行不同处理,不同的中断源其中断处理内容可能不同。中断服务(子)程序的最后一条指令是RETI,RETI指令使程序返回被中断的(主)程序继续执行。CPU执行该指令,一方面清除中断响应时所置位的优先级有效触发器;另一方面从堆栈栈顶弹出断点地址送入程序计数器PC,从而返回主程序。返回第4章中断技术4.2.3MCS-51中断系统的应用1、中断系统初始化在使用MCS51单片机内部的中断系统时,需要对其初始化,89C5
本文标题:中断技术
链接地址:https://www.777doc.com/doc-7039820 .html