《中断系统与定时计数器.ppt》由会员分享,可在线阅读,更多相关《中断系统与定时计数器.ppt(127页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第第 5 5 章章 中中 断断 系系 统统 与定时与定时/计数器计数器5.1单片机中断系统单片机中断系统5.3定时器定时器/计数器计数器5.2外部中断源的扩展外部中断源的扩展第第5章章中断系统与定时、计数器中断系统与定时、计数器5.4综合应用举例综合应用举例8XC51单片机单片机中中断断系系统统5.1.1 5.1.1 中断技术中断技术5.1.2 5.1.2 中断系统与控制中断系统与控制5.1.3 5.1.3 中断响应过程中断响应过程5.1.4 5.1.4 中断请求的撤消中断请求的撤消5.1单片机中断系统单片机中断系统中断系统是计算机的重要特色之一。中断系统是计算机的重要特色之一。5.1 5.
2、1 中中 断断 技技 术术日日常常事事务务程程序序中中断断服服务务程程序序一、中一、中 断断 概概 念:念:某人看书某人看书 执行主程序执行主程序 中断过程中断过程电话铃响电话铃响 中断信号中断信号INTxINTx=0=0 中断请求中断请求暂停看书暂停看书 暂停执行主程序暂停执行主程序 中断响应中断响应书中作记号书中作记号 当前当前PC值值入栈入栈 保护断点保护断点电话谈话电话谈话 执行执行中断中断程序程序 中断服务中断服务继续看书继续看书 返回主程序返回主程序 中断返回中断返回5.1.15.1.1中断概述中断概述一、中断和中断系统一、中断和中断系统 CPUCPU正在处理某件事的时正在处理某件
3、事的时候,外部发生了另一事件,候,外部发生了另一事件,请求请求CPUCPU迅速处理,迅速处理,CPUCPU暂时暂时停止当时的工作停止当时的工作,转入处理,转入处理所发生的事件,处理结束后,所发生的事件,处理结束后,再回到原来的地方,继续原再回到原来的地方,继续原来的工作,这样的过程称为来的工作,这样的过程称为中断,如图中断,如图5-15-1所示。所示。RETI主主程程序序中中断断服服务务中中断断请请求求图图5-1中断过程示意图中断过程示意图中断系统中断系统实现中断功能的部件实现中断功能的部件中断源中断源产生中断请求的根源产生中断请求的根源二、中断优先级二、中断优先级 一一般般计计算算机机系系统
4、统允允许许有有多多个个中中断断源源。当当几几个个中中断断源源同同时时向向CPUCPU请请求求中中断断,要要求求服服务务时时,就就存存在在CPUCPU优优先先响响应应哪哪一一个个中中断断请请求求的的问问题题。为为此此系系统统根根据据中中断断源源的的轻轻重重缓缓急急进进行行排排队队,规规定定每每个个中中断断源源都都有有一一个个中中断断优优先级别,优先处理最紧急事件的中断请求。先级别,优先处理最紧急事件的中断请求。三、中断嵌套三、中断嵌套 中断嵌套中断嵌套是指是指CPUCPU正正在处理一个中断源请求的在处理一个中断源请求的时候,又发生了另一个优时候,又发生了另一个优先级比它高的中断源请求,先级比它高
5、的中断源请求,使使CPUCPU能够暂时中止执行能够暂时中止执行原来的处理程序,转而去原来的处理程序,转而去处理优先级更高的中断请处理优先级更高的中断请求,处理结束后,再继续求,处理结束后,再继续执行原来的低级中断处理执行原来的低级中断处理程序的过程。程序的过程。图图5-2二级中断嵌套过程示意图二级中断嵌套过程示意图主主程程序序低低级级中中断断高高级级中中断断四、中断过程四、中断过程对对于于不不同同的的计计算算机机,中中断断过过程程可可能能不不尽尽相相同同,但但是是一一般般应应包包括括中中断断请请求求、中中断断响响应应、中中断断处处理理和中断返回和中断返回等四个步骤。等四个步骤。1.1.中断请求
6、中断请求 中中断断过过程程是是由由中中断断源源向向CPUCPU发发出出中中断断请请求求而而开开始始的的。有有效效中中断断请请求求信信号号应应该该一一直直保保持持到到CPUCPU作出响应为止。作出响应为止。2.2.中断响应中断响应CPUCPU检测到中断请求信号后,在满足一定条件检测到中断请求信号后,在满足一定条件的情况下进行响应。其的情况下进行响应。其主要条件是主要条件是:中断标志是:中断标志是否开放,是否高级中断,是否执行完一条指令等否开放,是否高级中断,是否执行完一条指令等。3.3.中断处理中断处理中中断断处处理理或或称称为为中中断断服服务务,就就是是执执行行中中断断源源所所要要求求的的中中
7、断断服服务务程程序序。在在中中断断服服务务程程序序中中需要完成的主要工作是:需要完成的主要工作是:保护现场保护现场根据需要把断点处有关存储器根据需要把断点处有关存储器的内容压入堆栈,以保护主程序运行的结果。的内容压入堆栈,以保护主程序运行的结果。开开/关中断标志关中断标志根据根据CPUCPU响应中断后开响应中断后开/关中断情况,适当处理中断标志,以确保保护关中断情况,适当处理中断标志,以确保保护/恢复现场的正确进行,确保所需中断嵌套的恢复现场的正确进行,确保所需中断嵌套的实现。实现。中断处理中断处理根据中断源的要求,完成相根据中断源的要求,完成相应的任务,这是中断服务的核心。应的任务,这是中断
8、服务的核心。恢恢复复现现场场在在完完成成中中断断服服务务之之后后,返返回回被被中中断断的的主主程程序序之之前前,恢恢复复堆堆栈栈中中保保护护的的各各有有关关寄寄存存器的内容。器的内容。4.4.中断返回中断返回 在在中中断断服服务务程程序序后后,用用一一条条中中断断返返回回指指令令(RETIRETI),),保证返回主程序继续执行被中断的程序。保证返回主程序继续执行被中断的程序。5.1.2 MCS-515.1.2 MCS-51中断系统与控制中断系统与控制 MCSMCS 5151的的5151子子系系列列(80318031、80518051、87518751等等)有有5 5个个中中断断源源,它它们们有
9、有两两个个优优先先级级,通通过过4 4个个中中断断控控制制器器(IEIE、IPIP、TCONTCON、SCONSCON)进进行行中中断断管管理理,其其结结构构原理如图原理如图5-35-3所示。所示。一、中断系统一、中断系统参见书参见书P84 P84 图图5.15.1PT1ITN1 INT0 T0T1IE1PX010 ET0PS10 ESEA ET1 EX1 EX0 RI IE IP中断源高高级级中中断断请请求求低低级级中中断断请请求求 TXRX TISCON中断标志中断标志 源允许源允许总允许总允许优先级优先级硬件查询硬件查询TF1IE0TF0 TCON图图5-3中断系统结构中断系统结构10中
10、断源PT010PX110.实现实现CPU与外设的速度配合与外设的速度配合;.实现实时控制实现实时控制-即被控对象可以即被控对象可以随随 时向时向CPU发出请求发出请求:要求及时处理要求及时处理,以确保被控对象保持在最佳状态以确保被控对象保持在最佳状态;.实现故障的及时发现实现故障的及时发现(如断电如断电.运运算出错等算出错等)处理处理;.实现人机对话实现人机对话(如人可以通过键盘如人可以通过键盘.按钮等对按钮等对CPU进行干预进行干预.控制控制).二、二、MCS-51MCS-51中断的实际应用中断的实际应用 主要有四个方面主要有四个方面:三、中断源:三、中断源:能发出中断请求信号的各种事件。能
11、发出中断请求信号的各种事件。如如I/O设备、定时时钟、系统故障、软件设定等。设备、定时时钟、系统故障、软件设定等。有有3类共类共5个中断:个中断:1、外中断、外中断2个:个:INT0、INT1 由引脚由引脚INT0(P3.2)和)和INT1(P3.3)引入。)引入。2、定时中断、定时中断2个:个:T0、T1 无引入端,请求在芯片内部发生。以记数溢出信号无引入端,请求在芯片内部发生。以记数溢出信号作为中断作为中断 请求去置位一个溢出标志位。请求去置位一个溢出标志位。3、串行中断、串行中断1个:个:RI/TI 无引入端,请求在芯片内部发生。接收或发送完一无引入端,请求在芯片内部发生。接收或发送完一
12、帧串行数据时,就产生一个中断请求。帧串行数据时,就产生一个中断请求。四、中断优先级控制原则和控制逻辑四、中断优先级控制原则和控制逻辑:中断优先级是为中断嵌套服务的。中断优先级是为中断嵌套服务的。如图,如图,MCS51MCS51具有具有2 2级优先级。级优先级。1 1、优先级控制原则:、优先级控制原则:(1 1)低优先级中断不能打断高优先级的中断服务;)低优先级中断不能打断高优先级的中断服务;但高优先级中断请求信号可以打断低优先级但高优先级中断请求信号可以打断低优先级 的中断服务,从而实现中断嵌套。的中断服务,从而实现中断嵌套。(2 2)如果一个中断请求已被响应,则同级的其它)如果一个中断请求已
13、被响应,则同级的其它 中断服务将被禁止。即同级中断不能嵌套。中断服务将被禁止。即同级中断不能嵌套。(3 3)如同级的多个中断请求同时出现,则按)如同级的多个中断请求同时出现,则按CPUCPU 查询次序确定哪个中断请求被响应。查询次序确定哪个中断请求被响应。查询次序为:查询次序为:INTINT0 0T T0 0INTINT1 1T T1 1RI/TIRI/TI。2 2、控制逻辑:控制逻辑:(1 1)利用中断优先级控制寄存器;)利用中断优先级控制寄存器;(2 2)2 2个优先级状态触发器:状态个优先级状态触发器:状态“0”0”或或“1”1”。主主程序程序中断服中断服务程序务程序1中断服务中断服务程
14、序程序2 *中断源与其中断服务程序入口地址之间的关系中断源与其中断服务程序入口地址之间的关系是固定的,见表是固定的,见表5 5 1 1。表表5 5 1 8XC511 8XC51中断服务程序入口地址表中断服务程序入口地址表 0003H 定时器定时器T0 000BH 0013H 定时器定时器T1 001BH 串行口中断串行口中断 0023H中中断断源源中断服务程序入口中断服务程序入口INT1INT0 表表5 5 1 1中的中的5 5个中断服务个中断服务程序入口地址之间,各有程序入口地址之间,各有8 8个单元的空间,一般情况个单元的空间,一般情况下难以容纳一个完整的中下难以容纳一个完整的中断服务程序
15、。通常,断服务程序。通常,总是总是在中断入口处安排一条无在中断入口处安排一条无条件转移指令条件转移指令,使程序转,使程序转向实际存放中断服务程序向实际存放中断服务程序的存储器区域。例如:若的存储器区域。例如:若INTINT0 0中断服务程序始址在中断服务程序始址在1000H1000H单元,则如下指令执单元,则如下指令执行后便可转入行后便可转入1000H1000H处执行处执行中断服务程序中断服务程序:ORG0003HLJMP1000H五、中断系统的初始化五、中断系统的初始化 中断系统初始化中断系统初始化就是用户对管理中断系统就是用户对管理中断系统的特殊功能寄存器中的各控制位进行赋值。的特殊功能寄
16、存器中的各控制位进行赋值。中断系统初始化步骤如下中断系统初始化步骤如下:(1)(1)开相应中断源的中断开相应中断源的中断;(2)(2)设定所有中断源的中断优先级设定所有中断源的中断优先级;(3)(3)若为外部中断若为外部中断,则应规定低电平还是负边沿则应规定低电平还是负边沿的中断触发方式。的中断触发方式。例:请写出例:请写出INTINT0 0为低电平触发的中断系统为低电平触发的中断系统初始化程序。初始化程序。解:解:采用位操作指令(常用)采用位操作指令(常用)SETB EASETB EASETB EXSETB EX0 0 ;开;开INTINT0 0中断中断SETB PXSETB PX0 0 ;
17、令;令INTINT0 0为高优先级为高优先级CLR ITCLR IT0 0 ;令;令INTINT0 0为电平触发为电平触发 采用字节型指令采用字节型指令 MOV IEMOV IE,#81H#81H ;开;开INTINT0 0中断中断ORL IPORL IP,#01H#01H ;令;令INTINT0 0为高优先级为高优先级ANL TCONANL TCON,#0FEH#0FEH;令;令INTINT0 0为电平触发为电平触发二、中断控制二、中断控制(参见书参见书P8486)MCS-51MCS-51单单片片机机设设置置了了4 4个个专专用用寄寄存存器器用用于于中中断控制断控制 ,用户通过设置其状态来管
18、理中断系统。,用户通过设置其状态来管理中断系统。1.1.定时器控制寄存器(定时器控制寄存器(TCONTCON)(参见书参见书P84)P84)TCONTCON的格式如下:的格式如下:TCOND7D6D5D4D3D2D1D0(88H)TF1 TR1TF0TR0 IE1 IT1 IE0 IT0 如前所述,寄存器中如前所述,寄存器中TRTR1 1(TRTR0 0)用于定时器用于定时器/计数器的启动控制,其余计数器的启动控制,其余6 6位用于中断控制,位用于中断控制,其作用如下:其作用如下:ITIT0 0为外部中断为外部中断0 0请求信号方式控制位。请求信号方式控制位。ITIT0 0=1=1,脉冲方式(
19、负跳变有效);脉冲方式(负跳变有效);ITIT0 0=0=0,电平方式(低电平有效)。电平方式(低电平有效)。IEIE0 0为外部中断为外部中断0 0请求标志位,当请求标志位,当CPUCPU检测到检测到INTINT0 0 (P P3.23.2)端有中断请求信号时,由硬件置位,使端有中断请求信号时,由硬件置位,使IEIE0 0 =1=1请求中断,中断响应后转向中断服务程序时,请求中断,中断响应后转向中断服务程序时,由由硬件自动清零硬件自动清零。ITIT1 1为外部中断为外部中断1 1请求信号方式控制位,其作请求信号方式控制位,其作用同用同ITIT0 0。IEIE1 1为外部中断为外部中断1 1请
20、求标志位,其作用同请求标志位,其作用同IE0IE0。TFTF0 0(TFTF1 1)为定时器为定时器/计数器溢出标志位,此标计数器溢出标志位,此标志作用将在定时器志作用将在定时器/计数器一节说明。计数器一节说明。2.2.串行口控制寄存器(串行口控制寄存器(SCONSCON)(参见书参见书P85)P85)SCONSCON格式如下格式如下:SCOND7D6D5D4D3D2D1D0(98H)TIRI串行口控制寄存器格式及各位功能将在串行接口串行口控制寄存器格式及各位功能将在串行接口一节介绍,其中高一节介绍,其中高6 6位用于串行口控制,低位用于串行口控制,低2 2位位(RIRI、TITI)用于中断控
21、制,其作用如下:用于中断控制,其作用如下:TITI为串行口发送中断请求标志位,发送完一帧为串行口发送中断请求标志位,发送完一帧串行数据后串行数据后,由由硬件置硬件置1 1,其,其清零须由软件完清零须由软件完成成。CLR TICLR TI RIRI为为串串行行口口接接收收中中断断请请求求标标志志位位,接接完完一一帧帧串串行行数数据据后后,由由硬硬件件置置1 1,其其清清零零须须由由软软件件完完成成。CLR RICLR RI 在在MCS-51MCS-51单片机串行口中,单片机串行口中,TITI和和RIRI的逻辑的逻辑“或或”作为一个内部中断源,二者之一置位都可以产作为一个内部中断源,二者之一置位都
22、可以产生串行口中断请求,然后在中断服务程序中测试生串行口中断请求,然后在中断服务程序中测试这两个标志位,以决定是发送中断还是接收中断。这两个标志位,以决定是发送中断还是接收中断。3.3.中断允许控制寄存器(中断允许控制寄存器(IEIE)(参见书参见书P85)P85)中断允许寄存器格式如下:中断允许寄存器格式如下:IED7D6D5D4D3D2D1D0(A8H)EA/ESET1EX1ET0EX0 ESES为为串行口中断允许位串行口中断允许位,ES=1ES=1时,允许串行口时,允许串行口中断;中断;ES=0ES=0时,禁止串行口中断。时,禁止串行口中断。寄存器中用于控制中断的共寄存器中用于控制中断的
23、共6 6位,实现中断的管理位,实现中断的管理(该位该位1/0 1/0 允许允许/禁止禁止),其作用如下:),其作用如下:EXEX1 1为为外外部部中中断断1 1允允许许控控制制位位,EXEX1 1=1=1允允许许外外部部中中断断1 1中断,中断,EXEX1 1=0=0,禁止外部中断禁止外部中断1 1中断。中断。ETET1 1为为定定时时器器/计计数数器器1 1(T T1 1)中中断断允允许许控控制制位位,ETET1 1=1=1时,允许时,允许T1T1中断;中断;ETET1 1=0=0时,禁止时,禁止T T1 1中断。中断。ET0ET0为为定时器定时器/计数器计数器0 0(T0T0)中断允许控制
24、位中断允许控制位,其控制功能同其控制功能同ET1ET1。EX0EX0为为外部中断外部中断0 0允许控制位允许控制位,其控制功能同,其控制功能同EX1EX1。EAEA为为中断允许中断允许总控制位(总闸)总控制位(总闸)MCSMCS 5151单单片片机机中中断断系系统统的的管管理理是是由由中中断断允允许许总总控控制制位位EAEA和和各各中中断断源源的的中中断断控控制制位位联联合合作作用用实现的实现的,缺一不可。缺一不可。4.4.中断优先级控制寄存器(中断优先级控制寄存器(IPIP)(参见书参见书P86)P86)中断优先级控制寄存器的格式如下:中断优先级控制寄存器的格式如下:IPD7D6D5D4D3
25、D2D1D0(B8H)/PSPT1PX1PT0PX0MCS-51单单片片机机规规定定了了两两级级中中断断优优先先级级:高高级级中中断断和和低低级级中中断断,用用中中断断优优先先级级寄寄存存器器(IP)的的5位状态管理位状态管理5个中断源的优先级别。个中断源的优先级别。相相应应位位是是“0”的的中中断断源源为为低低级级中中断断,相相应应位是位是“1”的中断源为高级中断。的中断源为高级中断。各状态位的作用如下:各状态位的作用如下:PSPS为为串串行行口口中中断断优优先先控控制制位位,PS PS=1 1,串串行行口口为为高高优优先先级级中中断断;PS PS=0 0,串串行行口口为为低低优优先先级中断
26、。级中断。PTPT1 1为定时器为定时器/计数器计数器1 1(T T1 1)中断优先控制位,中断优先控制位,PTPT1 1=1=1,T T1 1为高优先级中断,为高优先级中断,PTPT1 1=0=0,T T1 1为低为低优先级中断。优先级中断。PTPT0 0为定时器为定时器/计数器优先控制位,计数器优先控制位,PTPT0 0=1=1,T T0 0为高优先级中断;为高优先级中断;PTPT0 0=0=0,T T0 0为低优先级中断。为低优先级中断。PXPX0 0为外部中断为外部中断0 0中断优先控制位:中断优先控制位:PXPX0 0=1=1,外部中断外部中断0 0为高优先级中断;为高优先级中断;P
27、XPX0 0=0=0,外部中断,外部中断0 0为低优先级中断为低优先级中断 PX0PX0为外部中断为外部中断0 0中断优先控制位,中断优先控制位,PX0=1PX0=1,外部中断外部中断0 0为高优先级中断;为高优先级中断;PX0=0PX0=0,外部中断外部中断0 0为低优先级中断。为低优先级中断。MCSMCS 5151单片机优先级的控制原则是:单片机优先级的控制原则是:为了实现中断嵌套,高优先级中断请求可以为了实现中断嵌套,高优先级中断请求可以中断低优先级的中断服务;反之则不允许。中断低优先级的中断服务;反之则不允许。同等优先级中断源之间不能中断对方的中断同等优先级中断源之间不能中断对方的中断
28、服务过程。服务过程。多多个个同同级级中中断断源源同同时时产产生生中中断断请请求求时时,则则按按查查询询顺顺序序确确定定哪哪个个中中断断请请求求先先被被响响应应。MCSMCS 5151单单片片机机规规定定的的查查询询顺顺序序是是:外外部部中中断断0 0、定定时时器器/计计数数器器0 0、外部中断、外部中断1 1、定时器、定时器/计数器计数器1 1和串行口中断。和串行口中断。一、中断响应条件:一、中断响应条件:1有中断请求信号;有中断请求信号;2.系统处于开中断状态。系统处于开中断状态。二、中断响应过程:二、中断响应过程:1关中断:屏蔽其它中断请求信号。关中断:屏蔽其它中断请求信号。2保护断点:将
29、断点地址压入堆栈保存,即当前保护断点:将断点地址压入堆栈保存,即当前PCPC值入栈。值入栈。3寻找中断源:中断程序入口地址寻找中断源:中断程序入口地址 PCPC,转入中断服务。转入中断服务。4保护现场:将中断服务程序使用的所有寄存器内容入栈。保护现场:将中断服务程序使用的所有寄存器内容入栈。5中断处理:执行中断源所要求的程序段。中断处理:执行中断源所要求的程序段。链接中断处理链接中断处理6恢复现场:恢复被使用寄存器的原有内容。恢复现场:恢复被使用寄存器的原有内容。7开中断:允许接受其它中断请求信号。开中断:允许接受其它中断请求信号。8中断返回:执行中断返回:执行RETI指令,堆栈断点地址指令,
30、堆栈断点地址 PC,程序跳转回断点处执行。程序跳转回断点处执行。RETI=RET指令指令+通知通知CPU中断服务已结束(复位触发器)中断服务已结束(复位触发器)5.1.3 5.1.3 中断响应过程中断响应过程执行一条指令执行一条指令取下一条指令取下一条指令中断请求?中断请求?NY关中断关中断开中断开中断保护现场保护现场中断服务中断服务关中断关中断开中断开中断恢复现场恢复现场返回返回 图图1中断响应过程:中断响应过程:P871、中断采样、中断采样仅仅对外中断对外中断(INT0、INT1)请求信号;请求信号;2、中断查询:、中断查询:单片机在每一个机器周期的最后一个状态单片机在每一个机器周期的最后
31、一个状态S6,按优先级顺序对中断请求标志位进行查询,即按优先级顺序对中断请求标志位进行查询,即先查询高级中断后再查询先查询高级中断后再查询低级中断,同级中断按低级中断,同级中断按“INTINT0 0T T0 0INTINT1 1T T1 1RI/TI”RI/TI”的的顺序查询顺序查询。如。如果查询到有标志位为果查询到有标志位为“1”1”,则表明有中断请求发生,接着就从相邻的,则表明有中断请求发生,接着就从相邻的下一个机器周期的下一个机器周期的S1状态开始进行中断响应。状态开始进行中断响应。由于中断请求是随机发生的,由于中断请求是随机发生的,CPUCPU无法预先得知,因此在程序执行过无法预先得知
32、,因此在程序执行过程中,中断查询要在指令执行的每个机器周期中不停地重复进行。程中,中断查询要在指令执行的每个机器周期中不停地重复进行。3、中断响应:中断响应:当查询到有效的中断请求时,就进行中断响应。其主要内容当查询到有效的中断请求时,就进行中断响应。其主要内容是由硬件自动生成一条长调用指令是由硬件自动生成一条长调用指令LCALLLCALL。其格式为:其格式为:LCALL addr16LCALL addr16,addr16addr16即是由系统设定的即是由系统设定的5 5个中断程序的入口地址。个中断程序的入口地址。各中断源中断服务各中断源中断服务程序的程序的入口地址入口地址。如右表:如右表:三
33、、三、中断响应阻断:中断响应阻断:1.CPU正处在为一个同级或高级的中断服务中。正处在为一个同级或高级的中断服务中。即即当有同级或高级中断服务。当有同级或高级中断服务。2查询中断请求的机器周期不是当前指令的最后查询中断请求的机器周期不是当前指令的最后一个机器周期。即一个机器周期。即当当CPUCPU未执行完一条指令。未执行完一条指令。3当前当前执行返回指令执行返回指令RET/RETIRET/RETI或访问或访问IEIE、IPIP的指的指令后,不能立即响应中断,还应再执行一条指令,然令后,不能立即响应中断,还应再执行一条指令,然后才能响应中断后才能响应中断。程序程序单步执行单步执行就是利用此原理,
34、借助单片机的外就是利用此原理,借助单片机的外部中断功能来实现的(后面讲)。部中断功能来实现的(后面讲)。四、中断响应时间四、中断响应时间 在在实实时时控控制制系系统统中中,为为了了满满足足控控制制速速度度要要求求,常常要要弄弄清清CPUCPU响响应应中中断断所所需需的的时时间间。中中断断响响应应时时间间是是指指从从查查询询中中断断请请求求标标志志位位到到转转向向中中断断服服务务程程序序入入口口地地址址所所需需的的机机器器周周期期数数,一一般般是是3-83-8个机器周期个机器周期。响应中断最短时间是:响应中断最短时间是:CPUCPU查询中断标志的周期正好是执行一条指令查询中断标志的周期正好是执行
35、一条指令的最后一个机器周期(占用一个机器周期的最后一个机器周期(占用一个机器周期),),此后此后,不需等待即可响应中断,硬件自动生成并执行不需等待即可响应中断,硬件自动生成并执行LCALLLCALL指令(需要指令(需要2 2个机器周期),所以总共需要个机器周期),所以总共需要3 3个机器周期个机器周期。响应中断最长时间是:响应中断最长时间是:CPUCPU查查询询中中断断标标志志时时,正正好好是是开开始始执执行行RETIRETI或或访访问问IEIE、IPIP的的指指令令,此此时时,需需要要把把当当前前指指令令执执行行完完再再继继续续执执行行一一条条指指令令后后,才才能能响响应应中中断断。执执行行
36、前前者者最最长长需需2 2个个机机器器周周期期,而而执执行行后后者者最最长长需需4 4个个机机器器周周期期(如如乘乘、除除指指令令),再再加加上上执执行行长长调调用用指指令令LCALLLCALL所需所需2 2个机器周期个机器周期,总共需要总共需要8 8个机器周期个机器周期。通常,中断响应时间可以不予考虑,但在某些通常,中断响应时间可以不予考虑,但在某些需要精确定时的场合,应作出调整,以保证精确的需要精确定时的场合,应作出调整,以保证精确的定时。定时。中断响应后,中断响应后,TCON或或SCON中的中断请求标志中的中断请求标志应及时清除。否则就意味着中断请求仍然存在。应及时清除。否则就意味着中断
37、请求仍然存在。1、定时中断硬件自动撤除定时:、定时中断硬件自动撤除定时:中断响应后,硬件自动把标志位中断响应后,硬件自动把标志位(TF0/TF1)清清0,因此定,因此定时中断的中断请求是时中断的中断请求是硬件自动撤除硬件自动撤除的。不需要用户干预。的。不需要用户干预。2、脉冲方式外部中断请求的撤消:硬件自动撤除、脉冲方式外部中断请求的撤消:硬件自动撤除 外部中断的撤消包括两项内容:外部中断的撤消包括两项内容:(1)中断标志位的置)中断标志位的置“0”:中断响应后由硬件电路自动完成;:中断响应后由硬件电路自动完成;(2)外中断请求信号的撤消:随脉冲信号过后消失随即自动)外中断请求信号的撤消:随脉
38、冲信号过后消失随即自动 撤消。撤消。5.1.4 5.1.4 中断请求的撤除中断请求的撤除 (参见书参见书P87)P87)3、电平方式外部中断请求的撤消:、电平方式外部中断请求的撤消:自动与强制撤除自动与强制撤除 通过通过硬件硬件自动地使标志位自动地使标志位(IE0或或IE1)清清0 0。电平请求方式。电平请求方式光靠清除中断标志,并不能彻底解决中断请求的撤除问题。光靠清除中断标志,并不能彻底解决中断请求的撤除问题。需在中断响应后把中断请求需在中断响应后把中断请求输入端从低电平强制改为高电平输入端从低电平强制改为高电平。D触发器的直接置位端触发器的直接置位端SD(得到负脉冲):(得到负脉冲):O
39、RL P1,#01H ;P1.0输出高电平输出高电平ANL P1,#0FEH ;P1.0 输出低电平输出低电平软硬件相结合完成:硬件软硬件相结合完成:硬件软硬件相结合完成:硬件软硬件相结合完成:硬件自动清标志位自动清标志位自动清标志位自动清标志位(IE0IE0IE0IE0或或或或IE1IE1IE1IE1清清清清0)0);软件软件软件软件撤消中断请求信号撤消中断请求信号撤消中断请求信号撤消中断请求信号 (由低电平改为高电平由低电平改为高电平由低电平改为高电平由低电平改为高电平)。DR外外中中断断信信号号外外中中断断信信号号图图软件:软件:4、串行中断请求的撤除:、串行中断请求的撤除:由软件方法完
40、成。由软件方法完成。串行中断的标志位是串行中断的标志位是TI和和RI,但对这两个中断但对这两个中断标志标志不进行自动清不进行自动清0。因为在中断响应后还需测试。因为在中断响应后还需测试这两个标志位的状态,以这两个标志位的状态,以判定是接收操作还是发送判定是接收操作还是发送操作操作,然后才能清除。所以串行中断请求的撤除必,然后才能清除。所以串行中断请求的撤除必须使用须使用软件方法软件方法,在中断服务程序中进行。需由用,在中断服务程序中进行。需由用户户 软件完成。软件完成。CLR TI CLR TI ;撤除发送中断;撤除发送中断CLR RI CLR RI ;撤除接收中断;撤除接收中断一、多中断源系
41、统:一、多中断源系统:当外部中断源多于中断输入引脚时:当外部中断源多于中断输入引脚时:可采取以下措施:可采取以下措施:1 1、用定时器计数输入信号端、用定时器计数输入信号端T T0 0、T T1 1作作外部中断入口引脚(外部中断入口引脚(*后面细讲);后面细讲);2 2、查询式扩展外部中断源等。查询式扩展外部中断源等。5-2外部中断源的扩展外部中断源的扩展查询式扩展外部中断源查询式扩展外部中断源当外部中断源较多时,可以采用查询的方式扩展当外部中断源较多时,可以采用查询的方式扩展中断源。中断源。把多个中断源通过硬件(如或非门)引入外把多个中断源通过硬件(如或非门)引入外中断源输入端(中断源输入端
42、(INT0或或INT1),),同时又连到某同时又连到某I/O口。口。这样,每个中断源都可能引起中断,并在中断服务程这样,每个中断源都可能引起中断,并在中断服务程序中通过软件查询便可确定哪一个是正在申请的中断序中通过软件查询便可确定哪一个是正在申请的中断源,其查询的次序则由中断源优先级决定,这样可实源,其查询的次序则由中断源优先级决定,这样可实现多个外部中断源的扩展。现多个外部中断源的扩展。RLEDR故障信号故障信号输入端输入端8XC51 1INT0 P1.0P1.1 P1.2P1.3P14P1.5P1.6P1.7RR图图59查询式外部中断扩展及故障显示查询式外部中断扩展及故障显示 当系统的各部
43、分工作正常时,当系统的各部分工作正常时,4 4个故障源输入个故障源输入端全为低电平,显示灯全熄灭。只有端全为低电平,显示灯全熄灭。只有当某部分出现当某部分出现故障时,对应的输入线由低电平变为高电平故障时,对应的输入线由低电平变为高电平,从而,从而引起引起8XC518XC51中断,在中断服务程序中通过查询即可中断,在中断服务程序中通过查询即可判定故障源,并由相应的判定故障源,并由相应的LEDLED灯光显示。灯光显示。对应的参考程序清单如下:对应的参考程序清单如下:ORG0000HAJMPMAINORG0003HAJMPPINT;转中断服务程序;转中断服务程序ORG100HMAIN:ANLP1,#
44、55H;使;使P1口输入不变,输出全口输入不变,输出全0SETBIT0;置外部中断置外部中断0为边沿触发方式为边沿触发方式SETBEX0;外部中断;外部中断0开中断开中断SETBEA;CPU开中断开中断LOOP:MOVA,P1;取;取P1口输入状态口输入状态ANLA,#55HJNZLOOP;有外部中断请求去有外部中断请求去LOOPANLP1,#55H;无无外外部部中中断断请请求求输输出出清清0;(灯全灭);(灯全灭)SJMPLOOP;去;去LOOP等待中断等待中断参考中断服务程序如下:参考中断服务程序如下:PINT:JNBP1.0,L1;查询中断源,查询中断源,P1.0为为0转转L1SETBP
45、1.1;P1.0为为1,P1.1送出送出“1”使对应的灯亮使对应的灯亮SJMPL2;查询中断源,查询中断源,P1.2L1:CLRP1.1;清;清P1.1,使对应灯灭使对应灯灭L2:JNBP1.2,L3;P1.2为为0转查下一个中断源转查下一个中断源 SETBP1.3;P1.2为为1,P1.3送出送出1使对应灯亮使对应灯亮SJMPL4L3:CLRP1.3L4:JNBP1.4,L5SETBP1.5SJMPL6L5:CLRP1.5L6:JNBP1.6,L7SETBP1.7SJMPL8L7:CLRP1.7L8:RETI;返回主程序返回主程序处理外部中断举例:处理外部中断举例:例例1 1:要求每次按动按
46、键,使外接发光二极管:要求每次按动按键,使外接发光二极管LEDLED改变一次亮灭改变一次亮灭状态。状态。解:解:INT0INT0输入按键信号,输入按键信号,P P1.01.0输出改变输出改变LEDLED状态。状态。1 1、跳变触发:每次跳变引起一次中断请求。、跳变触发:每次跳变引起一次中断请求。ORG0000H ;复位入口复位入口AJMP MAINORG0003H ;中断入口中断入口AJMP PINT0ORG0100H ;主程序;主程序MAINMAIN:MOV SP,#40H ;设栈底设栈底SETB EA ;开总允许开关开总允许开关SETB EX0 ;开;开INT0中断中断SETB IT0 ;
47、负跳变触发中断负跳变触发中断 H H:SJMP H ;执行其它任务执行其它任务 ORG0200H ;中断服务程序;中断服务程序PINT0:PINT0:CPL P1.0 ;改变改变LEDRETI ;返回主程序返回主程序单片机单片机INT0P1.01+5V(1 1)软件等待按键释放(撤消低电平);)软件等待按键释放(撤消低电平);(2 2)硬件清除中断信号(标志位)。)硬件清除中断信号(标志位)。ORG 0000H ;复位入口复位入口 AJMP MAINORG0003H;中断入口中断入口 AJMP PINT0ORG0100H;主程序主程序MAINMAIN:MOV SP,#40H ;设栈底设栈底SE
48、TB EA ;开总允许开关开总允许开关SETB EX0 ;开;开INT0中断中断CLRIT0 ;低电平触发中断低电平触发中断H H:SJMP H ;执行其它任务执行其它任务ORG0200H ;中断服务程序;中断服务程序PINT0PINT0:CPL P1.0 ;改变改变LEDWAITWAIT:JNBP3.2,WAIT ;等按键释放等按键释放(P3.2P3.2即即INT0INT0)RETI ;返回主程序返回主程序单片机单片机INT0P1.01+5V2 2、电平触发:可避免一次按键引起多次中断响应。电平触发:可避免一次按键引起多次中断响应。综合举例:设计一电路,编程,记录显示中断次数(最多次)综合举
49、例:设计一电路,编程,记录显示中断次数(最多次)解:分析:用一只即可解:分析:用一只即可 (最多次),用硬件消抖(最多次),用硬件消抖 (加一只(加一只 触发器);电路如图。触发器);电路如图。每来回拨动一次开关,产生一次中断每来回拨动一次开关,产生一次中断 选边沿触发方式,使用选边沿触发方式,使用::;边沿触发中断;边沿触发中断;允许中断;允许中断 ;开(总)中断开关;开(总)中断开关,;计数初值为;计数初值为,;显示;显示“”图 ,;,;指向指向“字形码字形码”表表:;等待中断等待中断:;:;中断次数中断次数,;,;查字形码表查字形码表,;,;(在中断子程)显示(在中断子程)显示,;,;次
50、中断未到转次中断未到转;次中断到,关中断次中断到,关中断:;:;返回主程序处返回主程序处:,:,如将上例中断次数返回主程序显示如将上例中断次数返回主程序显示,:,:,;,;未满次循环显示未满次循环显示,;,;延时延时,;关中断关中断:,;关中断关中断;弹出硬件自动保护的断点弹出硬件自动保护的断点;开中断开中断,;,;修改中断返回点,将要求的返回点修改中断返回点,将要求的返回点 压入堆栈压入堆栈;关中断关中断;开中断开中断:易见,当时易见,当时如返回到如返回到“”处,执行处,执行“,”,显示,显示“”;如返回到如返回到“”处,不执行处,不执行“,”,不显示,不显示“”,而是延时后熄灭而是延时后熄