422-第4章 中断技术.ppt

上传人:本田雅阁 文档编号:3032551 上传时间:2019-06-28 格式:PPT 页数:17 大小:509.02KB
返回 下载 相关 举报
422-第4章 中断技术.ppt_第1页
第1页 / 共17页
422-第4章 中断技术.ppt_第2页
第2页 / 共17页
422-第4章 中断技术.ppt_第3页
第3页 / 共17页
422-第4章 中断技术.ppt_第4页
第4页 / 共17页
422-第4章 中断技术.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《422-第4章 中断技术.ppt》由会员分享,可在线阅读,更多相关《422-第4章 中断技术.ppt(17页珍藏版)》请在三一文库上搜索。

1、一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。 4.1 中断概述 4.2 MCS-51中断系统,第4章 中断技术,4.1 中断概述,返回,1、中断的定义: 中断是指如下过程:CPU与外设同时工作,CPU执行主程序,外设做准备工作,当外设准备好时向CPU发中断请求信号,若条件满足,则CPU终止主程序的执行,转去执行中断服务程序,在中断服务程序中CPU

2、与外设交换信息,待中断服务程序执行完后,CPU再返回刚才终止的主程序继续执行。 2、中断系统的定义: 中断系统是指为了实现中断传送过程在CPU内外设置的硬件和有关中断的指令。 3、中断源: 中断源的定义:中断源是指引起中断请求的来源。 中断源的分类: 软中断和 硬中断 4、中断处理的全过程 中断处理的全过程分成3个阶段:中断请求、中断响应和中断服务。 5、多重中断与中断优先级 当系统中有多个设备提出中断请求时,多个外设的中请信号要通过门电路送到CPU的中请输入端,使CPU能收到多个外设提出的中请。 CPU在收到多个外设的请求后,按中断处理原则处理中断。 确定优先级的方法解决优先级的问题一般可有

3、三种方法:软件查询法、简单硬件方法及专用硬件方法(采用可编程的中断控制器芯片,如Intel8259A)。,通过指令引起的中断。,可以发中断请求信号的外设或过程。如打印机、驱动器、故障源和A/D转换器等。,中断请求,1CPU都有中请输入线。 中请输入线有2类:非屏蔽中请输入线和可屏蔽中请输入线;有的CPU只有可屏蔽中请输入线,而有的CPU则2种都有。 2CPU的开、关中断。 CPU内有1个中断请求触发器IFF,当IFF=1时,称CPU开中断,此时CPU可以处理收到的可屏蔽中请;当IFF=0时,称CPU关中断,虽然 CPU收到了可屏蔽中请,但不处理(响应)它。 3CPU内有中断请求检测电路。 CP

4、U每执行一条指令,其内的中断请求检测电路都要检测中断请求输入端的状态: 先测NMI,若NMI有效,则CPU进入非屏蔽中响阶段。 若NMI无效,则检测INT的状态。 若INT有效且CPU开中断,则CPU进入可屏蔽中响阶段。 若INT有效但CPU关中断,则CPU执行下一条指令。 若INT无效,则CPU执行下一条指令。,对于非屏蔽中请输入线上的中请,CPU无条件的响应。,对于可屏蔽中请输入线上的中请,只有在CPU和中断源都开中断的情况下才能响应。,返回,中断响应,1中断响应定义 中断源向CPU发出中断请求,若其优先级别最高,CPU在满足一定的条件下,可以中断当前程序的运行,保护好被中断的主程序的断点

5、及现场信息。然后,根据中断源提供的信息,找到中断服务子程序的入口地址,转去执行新的程序段,这就是中断响应。 2中断响应条件 CPU响应中断是有条件的,如内部允许中断、中断未被屏蔽、当前指令执行完等。 3任何CPU在中断响应阶段一定做如下工作: 保护断点和给出中断服务程序入口地址(将中断服务程序的首地址送给PC,为CPU执行装段服务程序创造条件);有的CPU还会做自动关中断等操作 4给出中断服务程序入口地址的方法有2种: 固定入口式(中断服务程序的首地址固定,直接将此规定地址送给PC) 矢量式。,返回,中断服务,中断服务子程序是由用户根据自己的需要编制的,编制时要注意如下问题: 1保护现场: 由

6、一系列的PUSH指令完成。目的是为了保护那些与主程序中有冲突的寄存器,(如A,PSW,工作寄存器等),如果中断服务子程序中所使用的寄存器与主程序中所使用的寄存器等没有冲突的话,这一步骤可以省略。 2开/关中断: 由SETB或CLR指令实现。目的是为了能控制中断。 3中断服务: 与中断源实现信息交换。 4恢复现场: 由一系列的POP指令完成。是与保护现场对应的,但要注意数据恢复的次序,以免混乱。 5返回: 使用中断返回指令RETI。不能使用一般的子程序返回指令RET,因为RETI指令除了能恢复断点地址外,还能恢复中断响应时的标志寄存器的值,而这后一个动作是RET指令不能完成的。,返回,中断服务子

7、程序结构图,中断服务子程序结构图,返回,保护现场,开中断,与外设交换信息,恢复现场,中断返回,中断处理原则,返回,1当多个中断源同时提出中请时,CPU按优先级的高低有高到低依次为外设服务。 2当CPU正为某外设服务又有新外设提出中请时, 若新外设级别高则CPU终止为原外设服务转去为新外设服务,为新外设服务完后,再为原外设服务。 若新外设级别低或与原外设同级,则CPU继续为原外设服务,为原外设服务完后,再为新外设服务。,4.2 MCS-51中断系统,4.2.1 MCS-51中断系统结构 4.2.2 MCS-51中断处理过程 4.2.3 MCS-51中断系统应用,返回,4.2.1 MCS-51中断

8、系统结构,MCS51系列单片机上集成有中断系统,从使用者的角度出发,MCS51的中断系统就是一些SFR,如IE、IP、TCON、SCON。,返回,INT0,定时器1,串行口,外设,外设,0,INT1,0,IE0,IE1,TF0,TF1,定时器0,TCON,RI,TI,SCON,EX0,EX1,ET0,ET1,ES,IE,EA,PX0,0,1,PX1,0,1,PT0,0,1,PT1,0,1,PS,0,1,IP,0003H,000BH,0013H,001BH,0023H,0003H,000BH,0013H,001BH,0023H,PC,高,低,中断源,MCS-51中断源,MCS51单片机有5个中断

9、源。5个中断源分为2种:2个外中断(由P3.2和P3.3引入)和3个内中断(T0、T1和串口)。每个中断源对应一个中断标志位,当某个中断源有中请时,相应的中断标志位置1,各个中断源的中断标志位在TCON和SCON中。,返回,INT0,定时器1,串行口,外设,外设,0,INT1,0,IE0,IE1,TF0,TF1,定时器0,TCON,RI,TI,SCON,EX0,EX1,ET0,ET1,ES,IE,EA,PX0,0,1,PX1,0,1,PT0,0,1,PT1,0,1,PS,0,1,IP,0003H,000BH,0013H,001BH,0023H,0003H,000BH,0013H,001BH,0

10、023H,PC,高,低,中断源,中断标志与TCON和SCON,1、MCS51单片机内部的中断检测电路检测到有中请后,将检测结果存于TCON、SCON中;每个中断源对应一个中断标志位,当某个中断源有中请时,相应的中断标志位置1,各个中断源的中断标志位在TCON和SCON中。 TCON:88H 可以按字节操作,也可以按位操作。 TCON:98H 可以按字节操作,也可以按位操作。 2、在每条指令结束时,CPU检测各个中断标志位,若中断标志位置1,则认为有中断请求。 3、外中断有2种触发方式:低电平和下降沿,由TCON中的TI0和 TI1决定。 当IT0=1,INT0为脉冲方式,后沿负跳变有效;当IT

11、0=0,低电平有效。此位,可由软件置1或清0。 当IT1=1,INT1为脉冲方式,后沿负跳变有效;当IT1=0,低电平有效。此位可由软件置1或清0。,返回,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,TI,RI,中断开放与中断允许控制寄存器 IE,MCS-51单片机的5个中断源都是可屏蔽中断,也就是说用户可以通过软件方法来控制是否允许CPU去响应中断。CPU对中断源的中断开放(也称中断允许)或中断屏蔽(也称中断禁止)的控制是通过中断允许控制寄存器IE来实现的。 IE:A8H 可以按字节操作,也可以按位操作。 EA: 当EA=0时, 称CPU关中断。当EA=1时,称CPU开中

12、断。 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和各个中断源都关中断。 注意:单片机在响应中断后不会自动关中断,因此,如果在转入中断服务处理程序后,如果想禁止更高级的中断源的中断申请,可以用软件方式关闭中断。 例如

13、:假定要开放外中断1和T1的溢出中断,屏蔽其他中断,则对应的中断允许控制寄存器内容应为10001100B,即中断允许控制字为8CH。 使用字节操作指令,可用一条指令MOV IE,8CH完成。 使用位操作指令,则需三条指令SETB EX1;SETB ET1;SETB EA实现。,EX0,ET0,EX1,ET1,ES,EA,返回,中断优先级与中断优先级寄存器 IP,MCS-51单片机的中断系统对优先级的控制比较简单,只规定了两个中断优先级,对于每一个中断源均可编程为高优先级中断或低优先级中断,各中断源的优先级由中断优先级控制寄存器IP设定。 IP:B8H 可以按字节操作,也可以按位操作。 PX0:

14、当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串口 (中

15、断优先级从高到低) 2、对于外中断来说,可以用软件查询法和硬件排队电路法确定优先级。 3、通过对IP寄存器的编程,可以把五个中断源分别定义在两个优先级中,软件可以随时对IP的各位清0或置1。 例如 某软件中对寄存器IE、IP设置如下:MOV IE,10001111B MOV IP,00000110B 此时该系统中: CPU中断允许;允许外部中断0、外部中断1、定时/计数器0、定时/计数器1发出的中断申请。 允许中断源的中断优先次序为:定时/计数器0外部中断1外部中断0定时/计数器1。,PX0,PT0,PX1,PT1,PS,返回,4.2.2 MCS-51中断处理全过程,1、中断请求 MCS51单

16、片机内部的中断检测电路随时检测各个中断源,检测到有每个中断源有中请后,将相应的中断标志位置1。 CPU在每条指令结束时,检测各个中断标志位,若中断标志位置1,则认为有中断请求。 CPU读取IE和IP的内容,若中断允许且满足如下条件,则在下一个机器周期进入中断响应阶段。 没有同级或更高级的中断正在执行(否则必须等CPU为它们服务完之后,才能响应新中断请求。) 执行完的指令不是RETI或访问IE和IP的指令(否则必须另外执行一条指令后才能响应。) 2、中断响应 在中断响应阶段单片机做2件工作: 断点地址压栈。 根据不同的中断源,将不同的固定地址送PC,从而转到不同的地方执行程序。 各个中断源的入口

17、地址是:0003H、000BH、0013H、001BH、0023H。 INT0 T0 INT1 T1 串行口 注意:8051在响应了INT0、INT1、T0、T1的中断之后会自动清除它们的中断标志位,但不会清除串口的中断标志位。 3、中断服务 CPU响应中断后即转至中断服务程序的入口,执行中断服务程序。针对中断源的具体要求进行不同处理,不同的中断源其中断处理内容可能不同。中断服务(子)程序的最后一条指令是RETI,RETI指令使程序返回被中断的(主)程序继续执行。 CPU执行该指令,一方面清除中断响应时所置位的优先级有效触发器;另一方面从堆栈栈顶弹出断点地址送入程序计数器PC,从而返回主程序。

18、,返回,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。,返回,例1 用中断实现如下功能:

19、将30H60H单元的内容送微型打印机打印。,返回,P1.0,P1.1,P1.2,P1.3,STB,ACK,BUSY,89C51,D6,D0,D1,D2,D3,D4,D5,P1.4,P1.5,P1.6,P1.7,微型打印机,D7,P2.0,P3.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

20、SETB P2.0 CLR P2.0 AINT00: RETI,例2:用中断实现如下功能: 2个开关K1和K2,1个数码管,当K1按下时数码管 加1,K2按下时数码管减1。,返回,P1.0,P1.1,P1.2,P1.3,89C51,P1.4,P1.5,P1.6,P1.7,COM,a,b,c,d,e,f,g,共阴极LED,K1,K2,P3.2,P3.3,+5V,BINT1: DEC R7 CJNE R7,#0FFH,BINT11 MOV R7,#9 BINT11:RETI,TAB: 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,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1