第05章 中断系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第五章中断系统•§5.1微机的输入/输出方式•§5.2中断的概念•§5.389S51中断系统结构及中断控制•§5.4中断处理过程•§5.5外部中断扩展方法•§5.6中断请求的撤除•§5.7中断程序举例•§5.8思考题与习题§5.1微机的输入/输出方式•无条件传送方式•查询传送方式•直接存储器存取(DMA)方式•中断传送方式返回中断传送方式流程图主程序中断服务程序继续执行主程序断点中断请求思考:中断传送过程与子程序调用有什么不同?中断传送方式CPU中止正在运行的程序,转向为外部设备服务的过程称为中断。当完成中断处理后,CPU再回到原来的“断点”继续原来的程序。中断请求由外部硬件产生,具有随机性、不可知性。§5.2中断的概念一、中断系统二、中断源三、中断请求四、中断响应过程五、中断服务六、中断返回七、中断方式的特点返回一、中断系统实现中断功能的部件称为中断系统,又称中断机构。二、中断源产生中断的请求源称为中断源。三、中断请求中断源向CPU提出的处理请求,称为中断请求或中断申请。四、中断响应过程CPU暂时中止自身的事物,转去处理事件的过程,称为CPU的中断响应过程。五、中断服务对事件的整个处理过程,称为中断服务(或中断处理)。六、中断返回中断处理完毕,返回到原来被中止的地方,称为中断返回。七、中断方式的特点1、中断方式消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率。2、将从现场采集的数据通过中断方式及时传送给CPU,经过处理后可立即作出反应,实现实时控制。§5.389S51中断系统结构及中断控制•§5.3.189S51中断系统结构•§5.3.289S51中断源•§5.3.3中断控制返回§5.3.189S51中断系统结构•一、中断系统结构•二、中断技术实现的功能返回一、中断系统结构89S51的中断系统的结构图二、中断技术实现的功能•1、分时操作:实现CPU与多个外设同时工作。•2、实时处理:实时控制时,CPU可以及时响应外设请求并加以处理。•3、故障处理:当出现故障如断电、存储器奇偶校验出错、运算溢出等CPU可及时转去执行故障处理程序,自行处理故障而不必停机。§5.3.289S51中断源•89S51中断系统的5个中断源返回1、INT0——外部中断0请求,低电平有效。通过P3.2引脚输入。2、INT1——外部中断1请求,低电平有效。通过P3.3引脚输入。3、T0——定时器/计数器0溢出中断请求。4、T1——定时器/计数器1溢出中断请求。5、TXD/RXD——串行口中断请求。当串行口完成一帧数据的发送或接收时,便请求中断。§5.3.3中断控制•一、中断请求标志•二、中断允许控制•三、中断优先级控制返回一、中断请求标志1、定时器控制寄存器TCON中的中断标志位2、串行口控制寄存器SCON中的中断标志位1、定时器控制寄存器TCON中的中断标志位TCON为定时器/计数器T0和T1的控制器,同时也锁存T0和T1的溢出中断标志及外部中断0和1的中断标志等。与中断有关的位如图所示。TF1TF0IE1IT1IE0IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H各控制位的含义1、TF1:定时器/计数器T1溢出中断请求标志位。当启动T1计数后,T1开始加1计数,计数器最高位产生溢出时,由硬件使TF1置1,并向CPU发出中断请求。当CPU响应中断时,硬件将自动对TF1清0。2、TF0:定时器/计数器T0溢出中断请求标志位。含义与TF1类同。3、IE1:外部中断1的中断请求标志。/INT1(P3.3)。当检测到外部中断引脚1上存在有效的中断请求信号时,由硬件使IE1置1。4、IE0:外部中断0的中断请求标志。/INT0(P3.2)。其含义与IE1类同。5、IT1:外部中断1的中断触发方式控制位。IT1=0时,外部中断1程控为电平触发方式。CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。若外部中断1请求为低电平,则使IE1置1;若为高电平,则使IE1清0。IT1=1时,外部中断1程控为边沿触发方式。CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断1请求引脚为高电平,接着的下一个机器周期采样到为低电平,则使IE1置1。直到CPU响应该中断时,才由硬件使IE1清0。6、IT0:外部中断0的中断触发方式控制位。其含义与IT1类同。2、串行口控制寄存器SCON中的中断标志位•SCON为串行口控制寄存器,其低2位锁存串行口的接收中断和发送中断标志RI和TI。•SCON中TI和RI的格式如图所示。TIRISCON(98H)9FH9EH9DH9CH9BH9AH99H98HSCON中控制位的含义1、TI:串行口发送中断请求标志。CPU将一个数据写入发送缓冲器SBUF时,就启动发送。每发送完一帧串行数据后,硬件置位TI。但CPU响应中断时,并不清除TI,必须在中断服务程序中由软件对TI清0。2、RI:串行口接收中断请求标志。在串行口允许接收时,每接收完一个串行帧,硬件置位RI。同样,CPU响应中断时不会清除RI,必须在中断服务程序中由软件对RI清0。二、中断允许控制1、中断允许寄存器IE的格式。2、中断允许寄存器IE中各位的含义。EAESET1EX1ET0EX0IE(A8H)AFHAEHADHACHABHAAHA9HA8H①EA—中断允许总控制位。EA=0,屏蔽所有的中断请求;EA=1,CPU开放中断。对各中断源的中断请求是否允许,还要取决于各中断源的中断允许控制位的状态。这就是所谓的两级控制。寄存器IE中各位的含义②ES—串行口中断允许位。ES=0,禁止串行口中断;ES=1,允许串行口中断。③ET1—定时器/计数器T1的溢出中断允许位。ET1=0,禁止T1中断;ET1=1,允许T1中断。④EX1—外部中断1的溢出中断允许位。EX1=0,禁止外部中断1中断;EX1=1,允许外部中断1中断。⑤ET0—定时器/计数器T0的溢出中断允许位。ET0=0,禁止T0中断;ET0=1,允许T0中断。⑥EX0—外部中断0的溢出中断允许位。EX0=0,禁止外部中断0中断;EX0=1,允许外部中断0中断。例1:假设允许片内定时器/计数器中断,禁止其他中断。试根据假设条件设置IE的相应值。解:(IE)=10001010B=8AH(a)用字节操作指令MOVIE,#8AH;(b)用位操作指令SETBET0;定时器/计数器0允许中断SETBET1;定时器/计数器1允许中断SETBEA;CPU开中断三、中断优先级控制1、89S51的中断优先级2、中断优先级寄存器IP3、中断优先级排列顺序4、中断优先级控制实现的功能1、89S51的中断优先级89S51有两个中断优先级。每个中断请求源均可编程为高优先级中断或低优先级中断。中断系统中有两个不可寻址的“优先级生效”触发器,分别指出CPU正在执行的高、低优先级的中断服务程序。当其为1时则分别屏蔽所有的中断请求。2、中断优先级寄存器IP中断优先级寄存器IP的格式PSPT1PX1PT0PX0IP(B8H)BCHBBHBAHB9HB8H①PS—串行口中断优先级控制位②PT1—定时器/计数器T1中断优先级控制位③PX1—外部中断1中断优先级控制位④PT0—定时器/计数器T0中断优先级控制位⑤PX0—外部中断0中断优先级控制位控制位为1,则相应的中断源规定为高级中断;反之,为0,则相应的中断源规定为低级中断。3、中断优先级排列顺序由于IP寄存器的设定,将5个中断源分为两个级别,可实现二级中断控制(如图)。中断的发生将遵循下面的3条基本原则:1、低级中断在响应执行中可被高级中断所中断,反之则不能。2、一个中断(不论是什么优先级)一旦得到响应,与它同级的中断则不能再中断它。3、当CPU同时收到几个同一级别的中断要求时,CPU响应哪个中断源取决于硬件的查询顺序(如表)。二级中断嵌套的中断过程示意图CPU在执行主程序低级中断请求CPU执行低级中断服务程序高级中断请求CPU执行高级中断服务程序返回中断优先级排列顺序同级内优先级排列顺序中断结构中断源同级内的中断优先级外部中断0中断高级定时器/计数器T0溢出中断外部中断1定时器/计数器T1溢出中断串行口中断低级如何改变中断源的优先级顺序从中断系统的结构图可以清楚地看出同一级别中5个中断源的查询顺序。很明显,要改变这种顺序只能通过IP的设置。例:将串行口的级别设为最高,即将IP中的PS置1。SETBPS或MOVIP,#10H;完成对IP设置。XXXPSPT1PX1PT0PX0IP寄存器例1:能否由高到低安排下列中断源的优先级结构?定时器0串行口中断外部中断0外部中断1定时器1解答:能。设定时器0、串行口中断为高级别中断;设外部中断0、外部中断1、定时器1为低级别中断。再由内部查询顺序即可得到。例2:设8031的片外中断为高优先级,片内中断为低优先级。设置IP相应值。解:(IP)=00000101B=05H(a)用字节操作指令MOVIP,#05H;(b)用位操作指令SETBPX0SETBPX1CLRPSCLRPT0CLRPT1§5.4中断处理过程返回中断处理过程可分为三个阶段:中断响应中断处理中断返回CPU在每一个机器周期S5P2期间,对所有的中断源都要按照其顺序检查一遍。到S6状态时,查找到所有被激活的中断申请并排好优先权。在下一个机器周期的S1状态,只要不受阻断,就开始响应高级中断。中断响应中断响应一、中断响应条件二、中断响应操作过程三、中断响应时间一、中断响应条件①有中断源发出中断请求。②中断总允许位EA=1,即CPU中断。③申请中断的中断源的中断允许位为1,即中断没有被屏蔽。④无同级或更高级中断正在被服务。⑤当前的指令周期已经结束。⑥若现行指令为RETI或是访问IE或IP指令时,该指令以及紧接着的另一条指令已执行完。二、中断响应操作过程CPU查询到某一中断源后,使相应的“优先级激活触发器”置位,用以阻断同级或低级中断。在硬件控制下,将当前程序计数器PC的内容—断点地址进栈,并将相应的中断矢量装入PC,使CPU转向对应中断服务程序,同时清除中断请求标志(TI、RI除外)。(上电启动地址)(INT0中断入口)(T0中断入口)(INT1中断入口)(T1中断入口)(串口中断入口)0000H0003H000BH0013H001BH0023H中断响应三、中断响应时间CPU不是在任何情况下都对中断请求予以响应,而不同的情况下对中断响应的时间是不同的。对于顺利的中断响应,其最短的响应时间为3个机器周期。对于受阻的中断响应,则响应时间会更长一些。若中断系统只有一个中断源,则响应时间为3~8个机器周期之间。中断响应中断处理编写中断服务程序时的注意问题:①在中断矢量地址单元处放一条无条件转移指令,使中断服务程序可灵活地安排在64KBROM的任何空间。②硬件过程只保护断点不保护现场(如PSW的内容)。在中断服务程序中,应注意用软件保护现场。③不能自动清除RI、TI以及外部输入申请信号/INT0和/INT1。④若要在执行当前中断程序时禁止更高优先级中断,可先用软件关中断,在中断返回前再开放中断。从中断服务程序的第一条指令开始到返回指令为止,这个过程称为中断处理或中断服务。中断返回•在中断服务程序中,最后一条指令必须为中断返回指令RETI。•CPU执行该指令时,一方面清除中断响应时所置位的“优先级生效”触发器,另一方面从当前栈顶弹出断点地址送入程序计数器PC,从而返回主程序。•注意在中断服务程序中,PUSH和POP指令必须成对使用,否则,不能正确返回断点。§5.5外部中断扩展方法•89S51单片机有两个外部中断请求输入端(INT0和INT1)。实际应用中,若外部中断源有两个以上,则需要扩展外部中断源。§5.5.1外部中断§5.5.2扩展外部中断源返回§5.5.1外部中断•在MCS-51引脚上有/INT0、/INT1两个外部的中断输入,作为外部事件的触发信号

1 / 65
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功