




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章 MCS-51单片机中断系统,教学目标5.1 中断概述5.2 MCS-51中断系统5.3 中断系统的应用本章小结思考题与习题,教学目标,通过本章教学,要求达到以下目标:1熟记MCS-51 5个中断源及其中断入口地址。2熟悉TCON、SCON、IE、IP的结构、控制 作用和设置方法。3理解MCS-51中断响应过程。4了解中断响应等待时间。5理解中断请求撤除情况和应对措施。6熟悉中断优先控制的方法。7掌握中断应用程序的编制方法。,5.1 中断概述,1、中断概念2、为什么要设中断3、中断源4、中断优先级5、中断嵌套6、中断处理过程,5.1 中断概述,由于内部或外部的某种原因, 而CPU必须暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序,这一过程叫做中断。,1. 中断概念,中断概念类比,看电视,中断处理,中断请求,实际生活,中断返回,电话铃响,接听电话,看电视,主程序,计算机,事件发生,事件处理,主程序,图5.1 中断概念示意图,图5.2 中断过程示意图,中断源,中断申请,7,“中断”响应之后所执行的相应的处理程序通常称之为中断服务或中断处理子程序,原来正常运行的程序称为主程序。 主程序被断开的位置(或地址)称为“断点”。引起中断的原因,或能发出中断申请的来源,称为“中断源”。中断源要求服务的请求称为“中断请求”(或中断申请)。,8,调用中断服务程序的过程类似于调用子程序,其区别在于调用子程序在程序中是事先安排好的,而何时调用中断服务程序事先却无法确定。 因为“中断”的发生是由外部因素决定的,程序中无法事先安排调用指令,因此,调用中断服务程序的过程是由硬件自动完成的。,2为什么要设中断,中断解决了快速主机与慢速I/O设备的数据传送速度匹配的问题,还具有如下优点: (1)分时操作: (2)实时响应: (3)可靠性高:,CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。,CPU可以分时为多个I/O设 备服务,提高了计算机的利用率;,CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;,10,中断源是指在计算机系统中向CPU发出中断请求的来源, 中断可以人为设定,也可以是为响应突发性随机事件而设置。通常有I/O设备、实时控制系统中的随机参数和信息故障源等。,3中断源,外部设备中断源控制对象中断源故障中断源定时脉冲中断源通讯中断源,4中断优先级,如果正在执行主程序时只有1个中断源请求中断,而这时CPU又是对中断开放的,此时中断立即响应。由于中断是随机产生的,中断源一般又不止1个,因此会出现:几个中断源同时请求中断;或者当某一个中断正在响应中(即正在执行该中断源的中断服务程序),又有其它的中断源请求中断,这时中断系统应如何处理呢?,在一般情况下,首先把各个中断源分成若干个优先级,然后再按如下原则进行处理:(1)不同级的中断源同时申请中断时先高后低;(2)同级的中断源同时申请中断时事先规定;(3)处理低级中断又收到高级中断请求时停低转高;(4)处理高级中断又收到低级中断请求时高不理低。,中断优先级越高, 则响应优先权就越高。当CPU正在执行中断服务程序时, 又有中断优先级更高的中断申请产生, 这时CPU就会暂停当前的中断服务转而处理高级中断申请, 待高级中断处理程序完毕再返回原中断程序断点处继续执行, 这一过程称为中断嵌套。,5 . 中断嵌套,14,6 中断处理过程,图5.2 中断过程示意图,中断源,中断申请,15,6 中断处理过程实现中断响应和中断返回 CPU中断响应过程如下: 首先,将断点处的PC值(即下一条应执行指令的地址)推入堆栈保留下来,这称为保护断点,由硬件自动执行。 然后,将有关的寄存器内容和标志位状态推入堆栈保留下来,这称为保护现场,由用户自己编程完成。 保护断点和现场后即可执行中断服务程序,执行完毕,CPU由中断服务程序返回主程序。,16,中断返回过程如下: 首先恢复原保留寄存器的内容和标志位的状态,这称为恢复现场,由用户编程完成。 然后,再加返回指令RETI,RETI指令的功能是恢复PC值,使CPU返回断点,这称为恢复断点。 恢复现场和断点后,CPU将继续执行原主程序,中断响应过程到此为止。,实现中断响应和中断返回,17,中断响应、返回过程流程图,保护现场,保护断点,恢复现场,恢复断点,执行,继续执行,中断源,中断申请,5.2 MCS-51中断系统的结构,5.2.1 中断源及中断系统构成,5.2.2 中断标志与中断控制,5.2.3 中断处理过程,5.2 MCS-51中断系统的结构,5.2.1 中断源及中断系统构成 1. 中断源:,5.2.1 中断源及中断系统构成,IE0,EX0,TF0,IE1,TF1,TI,ES,ET1,EX1,ET0,RI,IP,硬件查询,高级中断请求,低级中断请求,中断入口地址,中断源,INT0,INT1,中断入口地址,中断源,1,0,IE,PX0,PS,PT1,PX1,PT0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,EA,1,1,SCON,1,1,T0,T1,RX,TX,IT0,IT1,0,0,TCON,图5.3 MCS-51中断系统结构示意图,中断申请,中断控制,中断排队,5.2.2 中断标志与中断控制,1中断标志 定时器控制寄存器TCON 串行控制寄存器SCON,2中断控制 中断允许控制寄存器IE,5.2.2 中断标志与中断控制,1中断标志 (1) 定时器控制寄存器TCON SFR之一,锁存中断请求标志,字节地址88H,可位寻址。 其结构、位名称、位地址及其功能如表5.1所示。,表5.1 TCON的结构、位名称、位地址和功能,T1中断标志位,T1启停控制位,T0中断标志位,TCON.0,/INT1中断标志位,/INT0中断标志位,/INT1触发方式位,/INT0触发方式位,T0启停控制位,TCON.1,TCON.2,TCON.3,TCON.4,TCON.5,TCON.6,TCON.7,在每个机器周期的S5P2时检测(或接收)中断源发来的中断请求信号后使相应的中断标志位置1,然后便在下个机器周期检测这些中断标志位的状态,以决定是否响应中断。,表5.1 TCON的结构、位名称、位地址和功能,TCON.0,TCON.1,TCON.2,TCON.3,TCON.4,TCON.5,TCON.6,TCON.7,外部中断 0采用电平触发,0,外部中断 0采用边沿触发,1,1,1,外部中断1 采用边沿触发,0,外部中断1 采用电平触发,0 0 0 0,单片机复位时或无中断请求发生时,这些位均为0,外部中断1发出中断请求时,外部中断0发出中断请求时,1,1,1,T0发出中断请求时,T1发出中断请求时,单片机复位或T0停止计数,启动T0开始计数,单片机复位或T1停止计数,启动T1开始计数,0,0,1,1,(2)串行控制寄存器SCON,SFR之一,锁存中断请求标志,字节地址98H,可位寻址。 结构、位名称、位地址及其功能如表5.2所示。其中只有TI和RI两位用来表示串行口中断标志位。,表 5.2 SCON的结构、位名称、位地址和功能,SCON.0,串行发送中断标志位,串行接收中断标志位,SCON.1,SCON.2,SCON.3,SCON.4,SCON.5,SCON.6,SCON.7,1) TI:为串行口发送中断标志位,位地址为99H。在串行口发送完一组数据时,TI由硬件自动置位(TI=1),请求中断,当CPU响应中断进入中断服务程序后,TI状态不能被硬件自动清除,而必须在中断程序中由软件来清除。 2) RI:为串行口接收中断标志位,位地址为98H。在串行口接收完一组串行数据时,RI由硬件自动置位(RI=1),请求中断,当CPU响应中断进入中断服务程序后,也必须由软件来清除RI标志。,1) 中断允许控制寄存器IE,2. 中断控制,MCS-51没有专门的开中断和关中断指令,中断的开放和关闭是通过中断允许寄存器IE各位的状态进行两级控制的。所谓两级控制是指所有中断允许的总控制位和各中断源允许的单独控制位,每位状态靠软件来设定。中断允许控制寄存器IE各位的定义及其功能等如表5.3所示。,表 5.3 IE的结构、位名称、位地址和功能,中断总允许控制位,定时器T1的溢出中断允许控制位,外部中断1的中断允许控制位,定时器T0的溢出中断允许控制位,外部中断0的中断允许控制位,串行口中断允许控制位,定时器T2的溢出中断允许控制位,SFR之一,控制中断开关,字节地址A8H,可位寻址。,表 5.3 IE的结构、位名称、位地址和功能,禁止所有中断,开通外部中断/INT0禁止其他中断,0,0 0 0 0 0 0,开通总中断,1,所有中断仍被禁止,0 0 0 0 0 1,0 1 0 0 1 0,开通T0和串行口中断禁止其他中断,1 1 1 1 1 1,开通所有中断,(1) EA(IE.7):总允许控制位,位地址为AFH。EA状态可由软件设定,若EA=0,禁止MCS-51所有中断源的中断请求;若EA=1,则总控制被开放,但每个中断源是允许还是被禁止CPU响应,还受控于中断源的各自中断允许控制位的状态。 (2) ET2(IE.5):定时器T2溢出中断允许控制位,位地址是ADH。 (3) ES(IE.4):串行口中断允许控制位,位地址是ACH。,(4) ET1(IE.3):定时器T1的溢出中断允许控制位,位地址为ABH。 (5) EX1(IE.2):外部中断 的中断请求允许控制位,位地址是AAH。 (6) ET0(IE.1):定时器T0的溢出中断允许控制位,位地址是A9H。 (7) EX0(IE.0):外部中断 的中断请求允许控制位,位地址是A8H。,2)中断优先级控制寄存器IP,MCS-51的中断源优先级是由中断优先寄存器IP来进行控制的。其5个中断源划分为两个中断优先级:高优先级和低优先级。 相应位置“1”,定义为高级中断 相应位清“0”,定义为低级中断,表 5.4 IP的结构、位名称、位地址和功能,定时器T2中断优先级控制位,串行口中断优先级控制位,定时器T1中断优先级控制位,定时器T0中断优先级控制位,/INT0中断优先级控制位,/INT1中断优先级控制位,1 1 1 1 1 1,高级中断(同为1时亦称其为同级中断),低级中断(同为0时亦称其为同级中断),0 0 0 0 0 0,SFR之一,控制中断优先级,字节地址B8H,可位寻址。,优先级相同如何处理?,如果同样优先级的请求同时接收到,则内部对中断源的查询次序决定先接受哪一个请求,表5.5列出了同(一优先)级中断源的内部查询顺序。,表5.5 中断源的内部查询顺序,中断优先级原则:,(1)不同级的中断源同时申请中断时先高后低;(2)同级的中断源同时申请中断时事先规定;(3)处理低级中断又收到高级中断请求时停低转高;(4)处理高级中断又收到低级中断请求时高不理低。,例如:某软件中对寄存器IE、 IP设置如下: MOV IE, 8FH MOV IP, 06H,则此时该系统中: CPU中断允许; 允许外部中断0、外部中断1、定时器/计数器0、定时器/计数器1提出的中断申请; 允许中断源的中断优先次序为: 定时器/计数器0 外部中断1 外部中断0 定时器/计数器1。,IE,5.2.3 中断处理过程,中断处理过程大致可分为4步: 。 1. 中断请求 当中断源要求CPU为它服务时,必须发出一个中断请求信号。CPU将相应的中断请求标志位置“1”。为确保该中断得以实现,中断请求信号应保持到CPU响应该中断后才能取消。CPU会不断及时地查询这些中断请求标志位,一旦查询到某个中断请求标志置位,CPU就响应这个中断源的中断请求。,中断请求、,中断响应、,中断服务,和中断返回,2.中断响应-条件,同时满足以下4个条件时,才可能响应中断。 (1)有中断请求; (2) 对应中断允许位为1; (3) 开中断(即EA=1)。 (4) 当前一条指令执行完。,TCON,SCON,IE,IP,B8H,A8H,98H,88H,2.中断响应-条件,不响应中断的条件 (满足之一)(1) 正在执行同级或高优先级的中断服务程序; (2) 不是指令的最后一个机器周期; (该条指令没有执行完)(3) 执行RETI 或 读写 IE/IP指令期间不能响应, 或不是其后面一条指令的最后一个机器周期。(即如果是RETI或读写IP/IE指令后,需再执行一条指令后才能响应中断) ;(4) 软件封锁(EA0),2.中断响应-过程,单片机一旦响应中断请求, 就由硬件自动完成以下功能: (1)把当前程序计数器PC的内容(中断点地址)压入堆栈,以便在RETI后返回原程序执行; (2)关闭中断,以防止在响应中断期间受其它中断的干扰。 (3)清除相应的中断请求标志位(串行口中断请求标志RI和TI除外); (4)把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC, 从而转入相应的中断服务程序。,表5.6 MCS-51中断入口地址表,ORG 0013HLJMP WBZD1,一般在入口地址处放置一条跳转指令,转到相应的中断服务程序入口处。如对外部中断1的中断响应:,3. 中断响应时间,最短:3个机器周期,最长:8个机器周期,第一机器周期:查询中断标志状态;第二、三机器周期:保护断点及跳转。,若正在执行RETI等指令需1个机器周期。下一条指令最长需4个机器周期(如乘法指令)。响应中断需3个机器周期。,4. 中断请求的撤除,中断源发出中断请求后,相应的中断请求标志位自动置“1”,而CPU响应中断后,必须及时清除中断请求“1”标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。,边沿触发方式的外部中断/INT0和/INT1请求定时器T0与T1的中断请求,CPU在响应中断后,由硬件自动清除相应的中断请求标志TF0、TF1、IE0与IE1。,串行中断请求TI和RI,需由软件指令进行清除: CLR TI 或 CLR RI人工清除,对于,对于,电平触发方式的外部中断/INT0和/INT1请求,由软硬件相结合进行清除。,INSVR: ANL P1, #0FEH ;P1.0=0,Q=1 撤销中断ORL P1,#01H ;P1.0=1,为下次中断作准备CLR IE0 ;清除中断申请 ,对于,5 中断返回,注意:(1)不能用RET指令代替RETI指令。(2)中断服务程序中PUSH与POP须成对使用。,MCS-51响应中断后,自动执行中断服务程序。在中断服务程序中,只要遇到RETI指令(不论在什么位置),单片机就结束本次中断服务,返回原程序。因此,在中断服务程序的最后必须有一条RETI指令,用于中断返回。,5.3 中断系统的应用,(1)开中断和允许中断源中断;(2)确定各中断源的优先级;(3)若是外部中断,则应规定是电平触发还是边沿触发。,在中断服务程序编程时,首先要对中断系统进行初始化,也就是对几个特殊功能寄存器的有关控制位进行赋值。具体来说, 就是要完成下列工作:,例1:若规定外部中断0为电平触发方式,高优先级,试写出有关的初始化程序。,解:一般可采用位操作指令来实现: SETB PX0;外中断0定为高优先级 CLR IT0 ;电平触发 SETB EX0 ;允许外中断0中断 SETB EA ;开中断,TCON,SCON,IE,IP,B8H,A8H,98H,88H,例2:现有外部中断1提出申请, 且主程序中有R0、DPTR、累加器A需保护, 则编制程序应为:,ORG 0000H LJMP MAIN ORG 0013H ;外部中断1 LJMP INT11 ORG 0100H MAIN: ; 主程序开始 SJMP MAIN,ORG 1000HINT11: PUSH ACC ; 中断程序 PUSH DPH PUSH DPL PUSH 00H POP 00H POP DPL POP DPH POP ACC RETI END,编程中应注意:(1) 在0000H放一条跳转到主程序的跳转指令, 这是因为 MCS-51单片机复位后, PC的内容变为0000H, 程序从0000H开始执行, 紧接着 0003H是中断程序入口地址, 故在此中间只能插入一条转移指令; (2) 响应中断时, 先自动执行一条隐指令“LCALL 0013H”, 而 0013H至 001BH(定时器 1 溢出中断入口地址)之间可利用的存储单元不够, 故放一条无条件转移指令。(3) 在中断服务程序的末尾, 必须安排一条中断返回指令RETI, 使程序自动返回主程序。 (4) 程序结束END。,54,例3. P1.4P1.7接有四个发光二极管,P1.0P1.3接有四个开关,通过INT0向CPU申请中断,要求:初时发光二极管全黑,每中断一次,P1.0P1.3所接的开关状态反映到发光二极管上:,55,ORG 0000H AJMP MAIN ORG 0003H ;INT0中断入口 AJMP INTO0 ; 转中断服务程序 ORG 0030H ;主程序 MAIN: MOV P1,#0FH ; 灯灭全,低四位输入 SETB IT0 ; 边沿触发中断 SETB EX0 ;允许外中断0中断 SETB EA ;开中断开关 SJMP $ INTO0: MOV A,P1 ;输入开关状态 SWAP A ORL A,#0FH ;低4位置1 MOV P1,A ;输出到P1高4位 RETI END,P1,P3.0,Q,D,CLK,CLR,选通信号,+5V,INT0,数据,89C51,Vcc,例4 外部中断源应用示例,图5.5 外部中断源应用,ORG 0000HSTART:LJMP MAIN ;跳转到主程序 ORG 0003H LJMP INTO ;转中断服务程序 ORG 0030H ;主程序 MAIN: CLR IT0 ;设为电平触发方式 SETB EA ;CPU开放中断 SETB EX0 ;允许中断 MOV DPTR,#1000H ;设置数据区指针 ,主程序:,ORG 0200H INTO: PUSH PSW ;保护现场 PUSH ACC CLR P3.0 ;由P3.0输出0 NOP NOP SETB P3.0 ;由P3.0输出1,撤除 MOV A,P1 ;输入数据 MOVX DPTR,A ;存入数据存储器 INC DPTR ;修改指针,指向下一单元 POP ACC ;恢复现场 POP PSW RETI ;中断返回,中断服务程序:,例5 利用定时器作外部中断源。 MCS-51内部有两个定时器/计数器,当它们选择为计数器工作方式时,T0(P3.4)或T1(P3.5)引脚上发生的负跳变将使T0或T1计数器加1计数。因此,可将P3.4、P3.5作为外部中断请求输入线,将T0或T1计数初值设定为满量程(#0FFH)。当T0、T1引脚上的电平发生负跳变时,计数器加1计数溢出,引起中断,因而可当作外中断使用,以计数器T0为例,初始化程序如下:,MOV TMOD,#06H ;置T0为工作方式2MOV TL0 ,#0FFH ;置T0计数初值MOV TH0 ,#0FFHSETB EA ;开CPU中断SETB ET0 ;允许T0中断SETB TR0 ;启动T0计数 END,例6 扩展外部中断源:在变频调速器中都设有过流(OC)、过压(OV)、欠压(UV)、过热(OH)这四种故障保护,当任一故障发生时,都要立刻停机处理,避免故障范围扩大。这种情况必须采用中断方式,使单片机立刻响应中断处理。试设计其硬件电路和软件程序。,根据要求,四个故障相当四个中断源,可利用中断查询方法,将四个中断源归结为一个中断请求,同时四个故障信号引到P1口的四个输入端,然后在中断程序中查询P1口,确定是哪一个故障申请的中断。电路如图5.6所示。一旦发生故障,单片机必须响应中断,因此,该中断必须设置成最高级中断。在中断程序中可以显示故障信息。,图5.6 扩展4个外中断源电路,P1.3P1.2P1.1P1.0,MCS-51,主程序和中断服务程序如下: ORG0000 AJMPMAIN ;转主程序 ORG 0013H AJMP INT1 ;转中断服务程序 ORG 0100HMAIN: MOV SP,#30H ;置堆栈指针 MOV IP,#04H ;设 INT1为最高级, PX1位为1 CLR IT1 ;设 INT1为电平触发 SETB EA ;开中断 SETB EX1 ;开外部中断1LOOP:其他处理程序 AJMP LOOP,ORG 0200HINT1:PUSH PSW ;保护现场 PUSH ACC MOV A,P1 ;读入P1口低4位状态 ANL A,#0FH JNB ACC.0,X1 ;是OC中断吗?不是则转移 ACALL XY1 ;调OC处理子程序X1: JNB ACC.1,X2 ;是OV中断吗?不是则转移 ACALL XY2 ;调OV处理子程序X2: JNB ACC.2,X3 ;是UV中断吗?不是则转移 ACALL XY3 ;调UV处理子程序 X3: JNB ACC.3,X4 ;是OH中断吗?不是则转移 ACALL XY4 ;调OH处理子程序X4: POP ACC ;恢复现场 POP PSW RETIXY1: OC处理子程序(略) RET END,本章小结,(1)中断与中断系统:CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设 或事件的服务程序,等处理完毕后再返回执行原来中止的程序,这一过程叫做中断。中断是一种资源共享技术,单片机使用中断技术主要是为了进行实时控制,以便对随机发生的事件作出快速反应和及时处理;为完成中断任务的相关硬件电路和软件程序合称为中断系统。,(2)中断源及其入口地址:MCS-51单片机有5个中断源:分别为:INT0、T0、INT1、T1及串行口中断(包括串行接收中断RI和串行发送中断TI)。5个中断源的中断入口地址分别为0003H、000BH、0013H、001BH、0023H。 (3)中断控制及寄存器:控制89C51中断的有3个方面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 形体礼仪课程课件
- 幼儿感官探索课件
- 二零二五年度跨境电商进出口合同清单
- 二零二五年度防火门产品安全标准制定合同
- 二零二五年度工衣采购与职业培训合作合同
- 二零二五年度建筑材料运输合同标准范本
- 二零二五版智慧城市照明系统升级补充合同范本大全
- 高三试卷:重庆南开中学高2025届高三第三次质量检测数学
- 高三试卷:辽宁省点石联考(辽宁县级协作体)2024-2025学年度上学期2025届高三年级期中考试数学试卷
- 高三试卷:江西省赣州市十八县(市、区)二十四校2025届11月期中联考数学试卷高三11月联考数学
- 70周岁换证三力测试题,老人反应能力驾考模拟测试题
- 美容注射操作规范培训课件
- 新进人员院感培训
- 2024年外包合同模板(通用)(附件版)
- 妇科质控中心半年工作总结
- 手术并发症报告表
- 沥青路面工程监理实施细则
- 美国RAZ分级读物目录整理
- 高一开学第一课-好玩的数学(纯课件版)
- 数学分析(1)期末考试试卷(B卷)
- 传染病标本的采集、保存、运送管理规范
评论
0/150
提交评论