《定时计数技术》PPT课件.ppt
第第4 4章章 中断技术中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有系统的硬件有CPU、存储器和、存储器和I/O口,外设组成。口,外设组成。CPU与存与存储器之间的信息交换比较简单,而储器之间的信息交换比较简单,而CPU与外设之间进行信与外设之间进行信息交换之前必须确定外设是否准备好,即选择息交换之前必须确定外设是否准备好,即选择I/O传送方式。传送方式。I/O传送方式有传送方式有4种:无条件、查询、中断和种:无条件、查询、中断和DMA。本章学。本章学习中断传送方式的有关内容。习中断传送方式的有关内容。4.1 中断概述中断概述 4.2 MCS-51中断系统中断系统 第第4 4章章 中断技术中断技术第第4 4章章 中断技术中断技术 4.1 中断概述中断概述返回1、中断的定义:、中断的定义:中断是指如下过程:CPU与外设同时工作,CPU执行主程序,外设做准备工作,当外设准备好时向CPU发中断请求信号,若条件满足,则CPU终止主程序的执行,转去执行中断服务程序,在中断服务程序中CPU与外设交换信息,待中断服务程序执行完后,CPU再返回刚才终止的主程序继续执行。2、中断系统的定义:、中断系统的定义:中断系统是指为了实现中断传送过程在CPU内外设置的硬件和有关中断的指令。3、中断源:、中断源:中断源的定义定义:中断源是指引起中断请求的来源。中断源的分类分类:软中断软中断和 硬中断硬中断4、中断处理的全过程、中断处理的全过程 中断处理的全过程分成3个阶段:中断请求中断请求、中断响应中断响应和中断服务中断服务。5、多重中断与中断优先级、多重中断与中断优先级 当系统中有多个设备提出中断请求时,多个外设的中请信号要通过门电路送到CPU的中请输入端,使CPU能收到多个外设提出的中请。CPU在收到多个外设的请求后,按中断处理原则中断处理原则处理中断。确定优先级的方法解决优先级的问题一般可有三种方法:软件查询法软件查询法、简单硬件方简单硬件方法法及专用硬件方法专用硬件方法(采用可编程的中断控制器芯片,如Intel8259A)。通过指令引起的中断。通过指令引起的中断。可以发中断请求信号的外设或过程。如打印机、可以发中断请求信号的外设或过程。如打印机、驱动器、故障源和驱动器、故障源和A/D转换器等。转换器等。第第4 4章章 中断技术中断技术中断请求中断请求1CPU都有中请输入线。都有中请输入线。中请输入线有2类:非屏蔽中请输入线非屏蔽中请输入线和可屏蔽中请输入线可屏蔽中请输入线;有的CPU只有可屏蔽中请输入线,而有的CPU则2种都有。2CPU的开、关中断。的开、关中断。CPU内有1个中断请求触发器IFF,当IFF=1时,称CPU开中断,此时CPU可以处理收到的可屏蔽中请;当IFF=0时,称CPU关中断,虽然 CPU收到了可屏蔽中请,但不处理(响应)它。3CPU内有中断请求检测电路。内有中断请求检测电路。CPU每执行一条指令,其内的中断请求检测电路都要检测中断请求输入端的状态:先测NMI,若NMI有效,则CPU进入非屏蔽中响阶段。若NMI无效,则检测INT的状态。若INT有效且CPU开中断,则CPU进入可屏蔽中响阶段。若INT有效但CPU关中断,则CPU执行下一条指令。若INT无效,则CPU执行下一条指令。对于非屏蔽中请输入线上的中请,对于非屏蔽中请输入线上的中请,CPU无条件的响应。无条件的响应。对于可屏蔽中请输入线上的中请对于可屏蔽中请输入线上的中请,只有在,只有在CPU和中断源都开中和中断源都开中断的情况下才能响应。断的情况下才能响应。返回第第4 4章章 中断技术中断技术中断响应中断响应1中断响应定义中断响应定义 中断源向CPU发出中断请求,若其优先级别最高,CPU在满足一定的条件下,可以中断当前程序的运行,保护好被中断的主程序的断点及现场信息。然后,根据中断源提供的信息,找到中断服务子程序的入口地址,转去执行新的程序段,这就是中断响应。2中断响应条件中断响应条件 CPU响应中断是有条件的,如内部允许中断、中断未被屏蔽、当前指令执行完等。3任何任何CPU在中断响应阶段一定做如下工作:在中断响应阶段一定做如下工作:保护断点和保护断点和给出中断服务程序入口地址给出中断服务程序入口地址(将中断服务程序的首地址送给PC,为CPU执行装段服务程序创造条件);有的CPU还会做自动关中断等操作4给出中断服务程序入口地址的方法有给出中断服务程序入口地址的方法有2种:种:固定入口式固定入口式(中断服务程序的首地址固定,直接将此规定地址送给PC)矢量式。矢量式。返回第第4 4章章 中断技术中断技术中断中断服务服务 中断服务子程序是由用户根据自己的需要编制的,编制时要注意如下问题:1保护现场:保护现场:由一系列的PUSH指令完成。目的是为了保护那些与主程序中有冲突的寄存器,(如A,PSW,工作寄存器等),如果中断服务子程序中所使用的寄存器与主程序中所使用的寄存器等没有冲突的话,这一步骤可以省略。2开开/关中断:关中断:由SETB或CLR指令实现。目的是为了能控制中断。3中断服务:中断服务:与中断源实现信息交换。4恢复现场:恢复现场:由一系列的POP指令完成。是与保护现场对应的,但要注意数据恢复的次序,以免混乱。5返回:返回:使用中断返回指令RETI。不能使用一般的子程序返回指令RET,因为RETI指令除了能恢复断点地址外,还能恢复中断响应时的标志寄存器的值,而这后一个动作是RET指令不能完成的。返回中断服务子程序结构图中断服务子程序结构图第第4 4章章 中断技术中断技术中断中断服务子程序结构图服务子程序结构图返回保护现场保护现场开中断开中断与外设交换信息与外设交换信息恢复现场恢复现场中断返回中断返回第第4 4章章 中断技术中断技术中断处理原则中断处理原则返回1当多个中断源同时提出中请时,CPU按优先级的高低有高到低依次为外设服务。2当CPU正为某外设服务又有新外设提出中请时,若新外设级别高则CPU终止为原外设服务转去为新外设服务,为新外设服务完后,再为原外设服务。若新外设级别低或与原外设同级,则CPU继续为原外设服务,为原外设服务完后,再为新外设服务。第第4 4章章 中断技术中断技术 4.2 MCS-51中断中断系统系统4.2.1 MCS-51中断系统结构中断系统结构4.2.2 MCS-51中断处理过程中断处理过程4.2.3 MCS-51中断系统应用中断系统应用返回第第4 4章章 中断技术中断技术 4.2.1 MCS-51中断中断系统结构系统结构 MCS51系列单片机上集成有中断系统,从使用者的角度出发,系列单片机上集成有中断系统,从使用者的角度出发,MCS51的的中断系统就是一些中断系统就是一些SFR,如,如IE、IP、TCON、SCON。返回INT0定时器定时器1串行口串行口外设外设外设外设0INT10IE0IE1TF0TF1定时器定时器0TCONRITISCONEX0EX1ET0ET1ESIEEAPX001PX101PT001PT101PS01IP0003H000BH0013H001BH0023H0003H000BH0013H001BH0023HPC高高低低中断源中断源第第4 4章章 中断技术中断技术MCS-51中断中断源源 MCS51单片机有单片机有5个中断源。个中断源。5个中断源分为个中断源分为2种:种:2个外中断(由个外中断(由P3.2和和P3.3引入)引入)和和3个内中断(个内中断(T0、T1和串口)。每个中断源对应一个中断标志位,当某个中断源有和串口)。每个中断源对应一个中断标志位,当某个中断源有中请时,相应的中断标志位置中请时,相应的中断标志位置1,各个中断源的中断标志位在,各个中断源的中断标志位在TCON和和SCON中。中。返回INT0定时器定时器1串行口串行口外设外设外设外设0INT10IE0IE1TF0TF1定时器定时器0TCONRITISCONEX0EX1ET0ET1ESIEEAPX001PX101PT001PT101PS01IP0003H000BH0013H001BH0023H0003H000BH0013H001BH0023HPC高高低低中断源中断源第第4 4章章 中断技术中断技术中断中断标志与标志与TCON和和SCON 1、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。返回TF1TR1TF0TR0IE1 IT1 IE0 IT0TIRI第第4 4章章 中断技术中断技术中断中断开放与中断允许控制寄存器开放与中断允许控制寄存器 IE MCS-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 1和和T1T1的溢出中断,屏蔽其他中断,则对应的中断允许控制寄存的溢出中断,屏蔽其他中断,则对应的中断允许控制寄存器内容应为器内容应为10001100B10001100B,即中断允许控制字为,即中断允许控制字为8CH8CH。使用字节操作指令,可用一条指令使用字节操作指令,可用一条指令MOV IEMOV IE,8CH8CH完成。完成。使用位操作指令,则需三条指令使用位操作指令,则需三条指令SETB EX1SETB EX1;SETB ET1SETB ET1;SETB EASETB EA实现。实现。EX0ET0EX1ET1ESEA返回第第4 4章章 中断技术中断技术中断中断优先级与中断优先级寄存器优先级与中断优先级寄存器 IP MCS-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优先权最高,串行口优先权最低。在同一个优先级中,对五个中断源的优先次序安排如下:INT0T0INT1T1串口串口(中断优先级从高到低)(中断优先级从高到低)2、对于外中断来说,可以用软件查询法软件查询法和硬件排队电路法硬件排队电路法确定优先级。3、通过对IP寄存器的编程,可以把五个中断源分别定义在两个优先级中,软件可以随时对IP的各位清0或置1。例如例如 某软件中对寄存器IE、IP设置如下:MOV IE,10001111B MOV IP,00000110B 此时该系统中:CPU中断允许;允许外部中断0、外部中断1、定时/计数器0、定时/计数器1发出的中断申请。允许中断源的中断优先次序为:定时/计数器0外部中断1外部中断0定时/计数器1。PX0PT0PX1PT1PS返回第第4 4章章 中断技术中断技术 4.2.2 MCS-51中断中断处理全过程处理全过程1、中断请求、中断请求 MCS51单片机内部的中断检测电路随时检测各个中断源,检测到有每个中断源有中请后,将相应的中断标志位置1。CPU在每条指令结束时,检测各个中断标志位,若中断标志位置1,则认为有中断请求。CPU读取IE和IP的内容,若中断允许且满足如下条件条件,则在下一个机器周期进入中断响应阶段。没有同级或更高级的中断正在执行(否则必须等没有同级或更高级的中断正在执行(否则必须等CPU为它们服务完之后,才能响应新中断请为它们服务完之后,才能响应新中断请求。)求。)执行完的指令不是执行完的指令不是RETI或访问或访问IE和和IP的指令(否则必须另外执行一条指令后才能响应的指令(否则必须另外执行一条指令后才能响应。)2、中断响应、中断响应 在中断响应阶段单片机做2件工作:断点地址压栈。断点地址压栈。根据不同的中断源,将不同的固定地址送根据不同的中断源,将不同的固定地址送PC,从而转到不同的地方执行程序。,从而转到不同的地方执行程序。各个中断源的入口地址是:各个中断源的入口地址是:0003H、000BH、0013H、001BH、0023H。INT0 T0 INT1 T1 串行口串行口注意:注意:80518051在响应了在响应了INT0INT0、INT1INT1、T0T0、T1T1的中断之后会自动清除它们的中断标志位,但不会清除的中断之后会自动清除它们的中断标志位,但不会清除串口的中断标志位。串口的中断标志位。3、中断服务、中断服务 CPU响应中断后即转至中断服务程序的入口,执行中断服务程序。针对中断源的具体要求进行不同处理,不同的中断源其中断处理内容可能不同。中断服务(子)程序的最后一条指令是RETI,RETI指令使程序返回被中断的(主)程序继续执行。CPU执行该指令,一方面清除中断响应时所置位的优先级有效触发器;另一方面从堆栈栈顶弹出断点地址送入程序计数器PC,从而返回主程序。返回第第4 4章章 中断技术中断技术 4.2.3 MCS-51中断中断系统的应用系统的应用1、中断系统初始化、中断系统初始化 在使用MCS51单片机内部的中断系统时,需要对其初始化,89C51的中断系统的初始化包括:开中断、确定优先级、若是外中断,应确定触发方式。例例 设引脚设引脚P3.2接有一个开关,当开关按下并抬起时,产生一次中断,试对中接有一个开关,当开关按下并抬起时,产生一次中断,试对中断系统初始化。断系统初始化。MOV SP,#60H MOV IE,#81H SETB IT0 2、中断系统应用举例、中断系统应用举例例例1 用中断实现如下功能:将用中断实现如下功能:将30H60H单元的内容送微型打印机打印。单元的内容送微型打印机打印。例例2 用中断实现如下功能:用中断实现如下功能:2个开关个开关K1和和K2,1个数码管,当个数码管,当K1按下时数码管按下时数码管加加1,K2按下时数码管减按下时数码管减1。返回第第4 4章章 中断技术中断技术例例1 用中断实现如下功能:将用中断实现如下功能:将30H60H单元的内容送微型打印机打印。单元的内容送微型打印机打印。返回P1.0P1.1P1.2P1.3STBACKBUSY89C51D6D0D1D2D3D4D5P1.4P1.5P1.6P1.7微型打印机微型打印机D7P2.0P3.2 ORG 0000H LJMP MAIN ORG 0003H LJMP AINT0 MAIN:MOV SP,#60H SETB EA SETB EX0 SETB IT0 MOV R0,#30H MOV P1,R0 SETB P2.0 CLR P2.0 SJMP$AINT0:INC R0 CJNE R0,#61H,AINT00 MOV P1,R0 SETB P2.0 CLR P2.0AINT00:RETI第第4 4章章 中断技术中断技术例例2:用中断实现如下功能:用中断实现如下功能:2个开关个开关K1和和K2,1个数码管,当个数码管,当K1按下时数码管按下时数码管加加1,K2按下时数码管减按下时数码管减1。返回P1.0P1.1P1.2P1.389C51P1.4P1.5P1.6P1.7COMabcdefg共阴极共阴极LEDK1K2P3.2P3.3+5VAINT0:INC R7 CJNE R7,#10,AINT01 MOV R7,#0AINT01:RETIBINT1:DEC R7 CJNE R7,#0FFH,BINT11 MOV R7,#9 BINT11:RETITAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ORG 0000H LJMP MAIN ORG 0003H LJMP AINT0 ORG 0013H LJMP BINT1 MAIN:MOV SP,#60H MOV IE,#83H SETB IT0 SETB IT1 MOV R7,#0 UP:MOV A,R7 MOV DPTR,#TAB MOVC A,A+DPTR MOV P1,A SJMP UP