第5章 AT89C51单片机中断系统

上传人:小*** 文档编号:243010022 上传时间:2024-09-13 格式:PPT 页数:54 大小:1.04MB
返回 下载 相关 举报
第5章 AT89C51单片机中断系统_第1页
第1页 / 共54页
第5章 AT89C51单片机中断系统_第2页
第2页 / 共54页
第5章 AT89C51单片机中断系统_第3页
第3页 / 共54页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机原理及应用,主目录,上一页,下一页,结 束,第,5,章,AT89C51,单片机中断系统,教学目标,5,.1,中断概述,5,.2,AT89C51,中断系统,5,.3,中断系统的应用,本章小结,思考题与习题,教学目标,通过本章教学,要求达到以下目标:,1,熟记,AT89C51 5,个中断源及其中断入口地址。,2,熟悉,TCON,、,SCON,、,IE,、,IP,的结构、控制,作用和设置方法。,3,理解,AT89C51,中断响应过程。,4,了解中断响应等待时间。,5,理解中断请求撤除情况和应对措施。,6,熟悉中断优先控制的方法。,7,掌握中断应用程序的编制方法。,5,.1,中断,概述,1.,中断概念,CPU,暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序,这一过程叫做中断。,中断概念类比,看电视,中断处理,中断请求,实际生活,中断返回,电话铃响,接听电话,看电视,主程序,计算机,事件发生,事件处理,主程序,图,5.1,中断概念示意图,图,5.2,中断过程示意图,2,为什么要设中断,中断解决了快速主机与慢速,I/O,设备的数据传送,还具有如下优点:,(,1,)分时操作。,CPU,可以分时为多个,I/O,设,备服务,提高了计算机的利用率;,(,2,)实时响应。,CPU,能够及时处理应用系,统的随机事件,系统的实时性大大增强;,(,3,)可靠性高。,CPU,具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。,3,中断源及其优先级,中断源,是指能发出中断请求,引起中断的装置或事件。,一个单片机系统通常有多个中断源,而单片机,CPU,在某一时刻只能响应一个中断源的中断请求,当多个中断源同时向,CPU,发出中断请求时,则必须按照“优先级别”进行排队,,CPU,首先选定其中中断级别最高的中断源为其服务,然后按由高到低的排队顺序逐一服务,完毕后返回断点地址,继续执行主程序。这就是“中断优先级”的概念。,4.,中断源的管理,单片机系统中有一个专门用来管理中断源的机构,它就是,中断控制寄存器,,我们可以通过对其编程来设置中断源的优先级别以及是否允许某个中断源的中断请求等。,5.2 AT89C51,中断系统的结构,5.2.1,中断源及中断系统构成,1.,中断源:,(1) INT0,:外部中断,0,;,(2) INT1,:外部中断,1,;,(3) T0,:定时,/,计数器,0,溢出中断;,(4) T1,:定时,/,计数器,1,溢出中断;,(5),串行中断(包括串行接收中断,RI,和,串行发送中断,TI,)。,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 AT89C51,中断系统结构示意图,5.2.2,中断标志与中断控制,1,中断标志,(1),定时器控制寄存器,TCON,TCON,为,8,位特殊功能寄存器,其结构、,位名称、位地址及其功能如表,5.1,所示。,表,5.1 TCON,的结构、位名称、位地址和功能,位编码,位名称,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,位地址,8FH,8EH,8DH,8CH,8BH,8AH,89H,88H,功 能,T1,中断标志位,T1,启停控制位,T0,中断标志位,TCON.0,/INT1,中断,标志位,/INT0,中断,标志位,/INT1,触发方式位,/INT0,触发方式位,T0,启停控制位,TCON.1,TCON.2,TCON.3,TCON.4,TCON.5,TCON.6,TCON.7,表,5.1 TCON,的结构、位名称、位地址和功能,位编码,位名称,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,位地址,8FH,8EH,8DH,8CH,8BH,8AH,89H,88H,状 态,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,的中断标志,串行控制寄存器,SCON,的结构、位名称、位地址及其功能如表,5.2,所示。其中只有,TI,和,RI,两位用来表示串行口中断标志位。,表,5.2 SCON,的结构、位名称、位地址和功能,位编码,位名称,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,位地址,9FH,9EH,9DH,9CH,9BH,9AH,99H,98H,功 能,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.,中断控制,AT89C51,设有专门的开中断和关中断指令,中断的开放和关闭是通过中断允许寄存器,IE,各位的状态进行两级控制的。所谓两级控制是指所有中断允许的总控制位和各中断源允许的单独控制位,每位状态靠软件来设定。中断允许控制寄存器,IE,各位的定义及其功能等如表,5.3,所示。,表,5.3 IE,的结构、位名称、位地址和功能,位编码,IE.7,IE.6,IE.5,IE.4,IE.3,IE.2,IE.1,IE.0,位名称,EA,ET2,ES,ET1,EX1,ET0,EX0,位地址,AFH,ADH,ACH,ABH,AAH,A9H,A8H,功 能,中断总允许,控制位,定时器,T1,的溢出,中断允许控制位,外部中断,1,的,中断允许控制位,定时器,T0,的溢出,中断允许控制位,外部中断,0,的,中断允许控制位,串行口中断,允许控制位,定时器,T2,的溢出,中断允许控制位,表,5.3 IE,的结构、位名称、位地址和功能,位编码,IE.7,IE.6,IE.5,IE.4,IE.3,IE.2,IE.1,IE.0,位名称,EA,ET2,ES,ET1,EX1,ET0,EX0,位地址,AFH,ADH,ACH,ABH,AAH,A9H,A8H,功 能,禁止所有,中断,开通外部中断,/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,,,禁止,AT89C51,所有中断源的中断请求;若,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,AT89C51,的中断源优先级是由中断优先寄存器,IP,来进行控制的。其,5,个中断源划分为,两个中断优先级:高优先级和低优先级。每一个中断源都可以通过,IP,寄存器中的相应位设置成高,(,优先,),级中断或低,(,优先,),级中断。相应位置,“,1”,,,定义为,高级中断,,相应位清,“,0”,,,定义为,低级中断,,因此,,CPU,对所有中断请求只能实现两级中断嵌套。,IP,寄存器的结构、位名称和位地址如表,5.4,所示。,表,5.4 IP,的结构、位名称、位地址和功能,位编码,IP.7,IP.6,IP.5,IP.4,IP.3,IP.2,IP.1,IP.0,位名称,PT2,PS,PT1,PX1,PT0,PX0,位地址,BDH,BCH,BBH,BAH,B9H,B8H,功 能,保留位,保留位,定时器,T2,中断,优先级控制位,串行口中断,优先级控制位,定时器,T1,中断,优先级控制位,定时器,T0,中断,优先级控制位,/INT0,中断,优先级控制位,/INT1,中断,优先级控制位,1 1 1 1 1 1,高级中断(同为,1,时亦称其为同级中断),低级中断(同为,0,时亦称其为同级中断),0 0 0 0 0 0,如果同样优先级的请求同时接收到,则内部对中断源的查询次序决定先接受哪一个请求,表,5.5,列出了同,(,一优先,),级中断源的内部查询顺序。,中断源,中断标志,优先查询顺序,外部中断,0,定时器,T0,中断,外部中断,1,定时器,T1,中断,串行口中断,IE0,TF0,IE1,TF1,RI+TI,高,低,表,5.5,中断源的内部查询顺序,中断优先级三条原则:,(,1,)同,时收到,几个中断时,,响应,优先级,别,最高的;,(,2,)中断过程,不能被同级、低优先级所,中断;,(,3,)低优先级,中断服务,,能被高优先级,中断。,5.2.3,中断处理过程,中断处理过程大致可分为,4,步:,。,1.,中断请求,当中断源要求,CPU,为它服务时,必须发出一个中断请求信号。,CPU,将相应的中断请求标志位置“,1”,。为确保该中断得以实现,中断请求信号应保持到,CPU,响应该中断后才能取消。,CPU,会不断及时地查询这些中断请求标志位,一旦查询到某个中断请求标志置位,,CPU,就响应这个中断源的中断请求。,中断请求、,中断响应、,中断服务,和中断返回,2.,中断响应,同时满足以下,4,个条件时,才可能响应中断。,(,1,)有中断请求;,(,2,) 对应中断允许位为,1,;,(,3,) 开中断(即,EA=1,)。,(,4,),正在执行的指令不是,RETI,或者是访问,IE,、,IP,的指令,否则必须再执行另外一条指令后才,能响应。,AT89C51,响应某一中断请求后要进行如下操作:,(,1,) 完成当前指令的操作。,(,2,) 保护断点地址,将,PC,内容压入堆栈。,(,3,)屏蔽同级的中断请求。,(,4,)将中断源入口地址,(,固定的,),送入,PC,寄存器,自动转入相应中断程序入口地址。中断源口地址如表,5.6,所示。,表,5.6 AT89C51,中断入口地址表,中断源,中断程序入口地址,INT0,0003H,定时器,T0,000BH,INT1,0013H,定时器,T1,001BH,串行口中断,0023H,3.,中断响应时间,中断响应(从标志置,1,到进入相应的中断服务),至少要,3,个,完整的机器周期。如图,5.4,所示。,图,5.4,中断响应时间示意图,4.,中断请求的撤除,中断源发出中断请求后,相应的中断请求标志位置“,1”,,而,CPU,响应中断后,必须及时清除中断请求“,1”,标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。有关中断请求标志撤除有如下,4,种,情况:,(1),定时,/,计数器,T0,、,T1,中断,,CPU,响应中断时就用硬件自动清除了相应的中断请求标志,TF0,、,TF1,。,(2),对采用边沿触发方式的外部中断,,CPU,响应中断时,,硬件也会自动清除相应的中断请求标志,IE0,或,IE1,。,(3),对采用,电平触发方式,的外部中断,,CPU,响应中断,时,虽也用硬件自动清除相应的中断请求标志,IE0,或,IE1,,但,相应引脚,(P3.2,或,P3.3),的低电平信号若继续保持下去中断请,求标志,IE0,或,IE1,就无法清零,也会发生上述重复响应中断的,情况。,(4),对串行口中断,(,包括串发,TI,、串收,RI),,,CPU,响应中,断后并不能自动清除相应的中断请求标志,TI,或,RI,,因此在响,应串行口中断请求后,必须由用户在中断服务程序的相应位,置通过指令将其清除,(,复位,),。,5.2.4,中断返回,注意:,(,1,)不能用,RET,指令代替,RETI,指令。,(,2,)中断服务程序中,PUSH,与,POP,须成对使用。,AT89C51,响应中断后,自动执行中断服务程序。在中断服务程序中,只要遇到,RETI,指令,(,不论在什么位置,),,单片机就结束本次中断服务,返回原程序。因此,在中断服务程序的最后必须有一条,RETI,指令,用于中断返回。,5,.3,中断,系统的应用,5.3.1,中断初始化设置,1.,设置堆栈指针,SP,设置适宜的堆栈深度。,(1),深度要求不高且工作寄存器组,1,3,不用时,,可维持复位时状态:,SP=07H,,深度为,24B(20H,2FH,为位寻址区,),。,(2),要求有一定深度时,可设,SP=60H,或,50H,,,这时深度分别为,32B,和,48B,。,2.,定义中断优先级,根据中断源的轻重缓急,划分高优先级和低优先级。,3.,定义外部中断触发方式,一般情况下,应定义,边沿触发方式,为宜。若外部中断必须采用电平触发方式时,应在硬件电路上和中断服务程序中采取撤除中断请求信号的措施。,4.,开放中断,由于,AT89C51,采用了二级中断控制方式,因此开放中断必须同时开放二级中断控制,即同时置位,EA,和需要开放中断的中断允许控制位。,5.3.2,中断服务主程序,(1),在中断服务入口地址设置一条跳转指令,,以便转移到中断服务程序的实际入口处。,(2),数据需要保护现场。通常是保护,Acc,、,PSW,和,DPTR,等等特殊功能寄存器中的内容。,(3),中断源请求中断服务要求的操作,这是,中断服务程序的主体。,(4),若是外部中断电平触发方式,应有中断,标志撤除操作。若是串行收发中断,应,有对,RI,、,TI,清,0,指令。,(5),恢复现场。与保护现场相对应,注意按,“先进后出、后进先出”的原则操作。,(6),中断返回,最后一条指令必须是,RETI,。,P1,P3.0,Q,D,CLK,CLR,选通信号,+5V,INT0,数据,89C51,Vcc,例,5.1,单外部中断源应用示例,5.3.3,中断系统应用举例,图,5.5,外部中断源应用,ORG 0000H,START,:,LJMP MAIN,;跳转到主程序,ORG 0003H,LJMP INTO,;转中断服务程序,ORG 0030H,;主程序,MAIN,:,CLR IT0,;设为电平触发方式,SETB EA,;,CPU,开放中断,SETB EX0,;允许中断,MOV DPTR,,,#1000H,;设置数据区指针, ,主程序:,ORG 0200H,INT0,:,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.2,利用定时器作外部中断源。,AT89C51,内部有两个定时器,/,计数器,当它们选择为计数器工作方式时,,T0(P3.4),或,T1(P3.5),引脚上发生的负跳变将使,T0,或,T1,计数器加,1,计数。因此,可将,P3.4,、,P3.5,作为外部中断请求输入线,将,T0,或,T1,计数初值设定为满量程,(#0FFH),。当,T0,、,T1,引脚上的电平发生负跳变时,计数器加,1,计数溢出,引起中断,因而可当作外中断使用,以计数器,T0,为例,初始化程序如下:,MOV TMOD,,,#06H,;,置,T0,为工作方式,2,MOV TL0,,,#0FFH,;,置,T0,计数初值,MOV TH0,,,#0FFH,SETB EA,;,开,CPU,中断,SETB ET0,;允许,T0,中断,SETB TR0,;启动,T0,计数,END,例,5.3,扩展外部中断源:在变频调速器中都设有过流,(OC),、,过压,(OV),、,欠压,(UV),、,过热,(OH),这四种故障保护,当任一故障发生时,都要立刻停机处理,避免故障范围扩大。这种情况必须采用中断方式,使单片机立刻响应中断处理。试设计其硬件电路和软件程序。,根据要求,四个故障相当四个中断源,可利用中断查询方法,将四个中断源归结为一个中断请求,同时四个故障信号引到,P1,口的四个输入端,然后在中断程序中查询,P1,口,确定是哪一个故障申请的中断。电路如图,5.6,所示。一旦发生故障,单片机必须响应中断,因此,该中断必须设置成最高级中断。在中断程序中可以显示故障信息。,1,1,1,1,1,INT0,INT1,OH,UV,OV,OC,+5V,图,5.6,扩展,4,个外中断源电路,P1.3,P1.2,P1.1,P1.0,AT89C51,主程序和中断服务程序如下:,ORG0000,AJMPZCX1,;转主程序,NOP,ORG 0013H,AJMP INT1,;转中断服务程序,NOP,ORG 0100H,ZCX1,:,MOV SP,,,#30H,;置堆栈指针,MOV IP,,,#04H,;设,INT1,为最高级,CLR IT1,;设,INT1,为电平触发,SETB EA,;开中断,SETB EX1,ZCX2,:其他处理程序,AJMP ZCX2,ORG 0200H,INT1,:,PUSH PSW,;保护现场,PUSH ACC,MOV A,,,P1,;读入,P1,口低,4,位状态,ANL A,,,#0FH,JNB ACC0,,,X1,;,是,OC,中断吗?不是则转移,ACALL XY1,;,调,OC,处理子程序,X1,:,JNB ACC1,,,X2,;,是,OV,中断吗?不是则转移,ACALL XY2,;,调,OV,处理子程序,X2,:,JNB ACC2,,,X3,;,是,UV,中断吗?不是则转移,ACALL XY3,;调,UV,处理子程序,X3: JNB ACC3,,,X4,;是,OH,中断吗?不是则转移,ACALL XY4,;调,OH,处理子程序,X4: POP ACC,;恢复现场,POP PSW,RETI,XY1,:,OC,处理子程序,(,略,),RET,本章小结,(1),中断与中断系统:,CPU,暂时中止其正在执行的程序,转去执行请求中断的那个外设 或事件的服务程序,等处理完毕后再返回执行原来中止的程序,这一过程叫做中断。中断是一种资源共享技术,单片机使用中断技术主要是为了进行实时控制,以便对随机发生的事件作出快速反应和及时处理;为完成中断任务的相关硬件电路和软件程序合称为中断系统。,(2),中断源及其入口地址:,AT89C51,单片机有,5,个中断源:分别为:,INT0,、,T0,、,INT1,、,T1,及串行,口中断,(,包括串行接收中断,RI,和串行发送中断,TI),。,5,个中断源的中断入口地址分别为,0003H,、,000BH,、,0013H,、,001BH,、,0023H,。,(3),中断控制及寄存器:控制,89C51,中断的有,3,个方面、,4,个特殊功能寄存器:, 中断请求:定时和外部中断控制寄存器,TCON,、串行控制寄存器,SCON,;, 中断允许控制寄存器,IE,;, 中断优先级控制寄存器,IP,。,(4),中断处理过程:大致可分为中断请求、中断,响应、中断服务和中断返回,4,个步骤。,(5),中断响应等待时间:一般是,3,4,个机器周,期,最长为,8,个机器周期。,(6),中断触发方式:通常有边沿触发和电平触,发两种。,(7) AT89C51,的,5,个中断源可设置为两个中断优,先级:高优先级和低优先级。,(8),编制中断应用程序主要包括中断初始化和中,断服务程序。, 中断初始化内容包括:设置堆栈指针,SP,、定,义中断优先级、定义外部中断触发方式、开放中断,和中断发生前主程序应完成的操作内容。, 中断服务程序中的操作内容和功能是中断源,请求中断的目的,是,CPU,完成中断处理操作的核心,和主体。由于,89C51,相邻两个中断入口地址间只有,8,字节的空间,因此真正的中断服务程序必须跳转到,其他合适的地址空间。,(9),中断服务程序中,若涉及到一些功能寄存器,中断前的数据需要保存,则需要采取保护现场和恢,复现场的措施。,(10),中断服务程序最后一条指令必须是,RETI,。,思考题与习题,5.1,什么叫中断?单片机采用中断有什么好处?,5.2,什么叫中断源?,AT89C51,有哪几个中断源?写出其固定入口地址。,5.3,什么叫中断嵌套?中断嵌套遵循的原则是什么?,AT89C51,单片机本身能实现几级嵌套?,5.4 AT89C51,中与中断有关的特殊功能寄存器有几个?它们各自的功能是什么?,5.5 AT89C51,单片机外中断的触发方式有几种?它们有什么区别?电平触发时,如何防止,CPU,重复响应同一外中断?,5.6,什么是中断优先级?,AT89C51,能设置几个优先级?同一级别的中断源同时发出中断请求,,CPU,先响应哪一个?怎样确定?,5.7,一个中断请求被响应必须满足什么条件?,5.8 AT89C51,响应某一中断请求后要进行哪些操作?,5.9,若系统只有一个中断源,则中断响应须等待的最短时间和最长时间各是多少?等待时间长的原因都有哪些?,5.10,概述一个中断响应的全部过程。,5.11,现想用两个外中断源 和 实现中断嵌套控制, 为高级中断,边沿触发方式; 为低级中断,电平触发方式,试编写其初始化程序。,5.12,现有四台外围设备,X1,X4,需向,AT89C51,申请中断,而,AT89C51,只有,INT0,和,P1,口可供使用,试设计相应的电路并编写程序。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!