版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章AT89C51单片机中断系统教学目标5.1中断概述5.2AT89C51中断系统5.3中断系统的应用本章小结思考题与习题
第5章AT89C51单片机中断系统教学目标1教学目标
通过本章教学,要求达到以下目标:1.熟记AT89C515个中断源及其中断入口地址。2.熟悉TCON、SCON、IE、IP的结构、控制作用和设置方法。3.理解AT89C51中断响应过程。4.了解中断响应等待时间。5.理解中断请求撤除情况和应对措施。6.熟悉中断优先控制的方法。7.掌握中断应用程序的编制方法。教学目标通过本章教学,要求达到以下目标:25.1中断概述1.中断概念CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序,这一过程叫做中断。5.1中断概述1.中断概念3
中断概念类比
看电视中断处理中断请求实际生活中断返回电话铃响接听电话看电视主程序计算机事件发生事件处理主程序图5.1中断概念示意图中断概念类比看电视中断处理中断请求实际生活中断返4图5.2中断过程示意图图5.2中断过程示意图52.为什么要设中断
中断解决了快速主机与慢速I/O设备的数据传送,还具有如下优点:
(1)分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;
(2)实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;
(3)可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。2.为什么要设中断中断解决了快速主机与6
3.中断源及其优先级
中断源是指能发出中断请求,引起中断的装置或事件。一个单片机系统通常有多个中断源,而单片机CPU在某一时刻只能响应一个中断源的中断请求,当多个中断源同时向CPU发出中断请求时,则必须按照“优先级别”进行排队,CPU首先选定其中中断级别最高的中断源为其服务,然后按由高到低的排队顺序逐一服务,完毕后返回断点地址,继续执行主程序。这就是“中断优先级”的概念。3.中断源及其优先级中断源7
4.中断源的管理
单片机系统中有一个专门用来管理中断源的机构,它就是中断控制寄存器,我们可以通过对其编程来设置中断源的优先级别以及是否允许某个中断源的中断请求等。4.中断源的管理单85.2AT89C51中断系统的结构
5.2.1中断源及中断系统构成1.中断源:
(1)INT0:外部中断0;(2)INT1:外部中断1;(3)T0:定时/计数器0溢出中断;(4)T1:定时/计数器1溢出中断;(5)串行中断(包括串行接收中断RI和串行发送中断TI)。5.2AT89C51中断系统的结构5.95.2.1中断源及中断系统构成IE0EX0TF0IE1TF1TIESET1EX1ET0RIIP硬件查询高级中断请求低级中断请求中断入口地址中断源INT0INT1中断入口地址中断源10IEPX0PSPT1PX1PT0111111111100000EA1≥1SCON11T0T1RXTXIT0IT100TCON图5.3AT89C51中断系统结构示意图5.2.1中断源及中断系统构成IE0EX0TF0IE1T10
5.2.2中断标志与中断控制
1.中断标志
(1)定时器控制寄存器TCONTCON为8位特殊功能寄存器,其结构、位名称、位地址及其功能如表5.1所示。
5.2.2中断标志与中断控制1.中11表5.1TCON的结构、位名称、位地址和功能
位编码位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H功能
T1中断标志位T1启停控制位T0中断标志位TCON.0/INT1中断标志位/INT0中断标志位/INT1触发方式位/INT0触发方式位T0启停控制位TCON.1TCON.2TCON.3TCON.4TCON.5TCON.6TCON.7表5.1TCON的结构、位名称、位地址和功能
位编码12表5.1TCON的结构、位名称、位地址和功能
位编码位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H状态
TCON.0TCON.1TCON.2TCON.3TCON.4TCON.5TCON.6TCON.7外部中断0采用电平触发0外部中断0采用边沿触发111外部中断1采用边沿触发0外部中断1采用电平触发0000单片机复位时或无中断请求发生时,这些位均为0外部中断1发出中断请求时外部中断0发出中断请求时111T0发出中断请求时T1发出中断请求时单片机复位或T0停止计数启动T0开始计数单片机复位或T1停止计数启动T1开始计数0011表5.1TCON的结构、位名称、位地址和功能
位编码13(2)SCON的中断标志
串行控制寄存器SCON的结构、位名称、位地址及其功能如表5.2所示。其中只有TI和RI两位用来表示串行口中断标志位。(2)SCON的中断标志串行控制寄存器SCO14表5.2SCON的结构、位名称、位地址和功能
位编码位名称SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能
SCON.0串行发送中断标志位串行接收中断标志位SCON.1SCON.2SCON.3SCON.4SCON.5SCON.6SCON.7表5.2SCON的结构、位名称、位地址和功能
位编151)TI:为串行口发送中断标志位,位地址为99H。在串行口发送完一组数据时,TI由硬件自动置位(TI=1),请求中断,当CPU响应中断进入中断服务程序后,TI状态不能被硬件自动清除,而必须在中断程序中由软件来清除。
2)RI:为串行口接收中断标志位,位地址为98H。在串行口接收完一组串行数据时,RI由硬件自动置位(RI=1),请求中断,当CPU响应中断进入中断服务程序后,也必须由软件来清除RI标志。1)TI:为串行口发送中断标志位,16
1)中断允许控制寄存器IE
2.中断控制
AT89C51设有专门的开中断和关中断指令,中断的开放和关闭是通过中断允许寄存器IE各位的状态进行两级控制的。所谓两级控制是指所有中断允许的总控制位和各中断源允许的单独控制位,每位状态靠软件来设定。中断允许控制寄存器IE各位的定义及其功能等如表5.3所示。1)中断允许控制寄存器IE2.中断控制17表5.3IE的结构、位名称、位地址和功能
位编码IE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0位名称EA
—ET2ESET1EX1ET0EX0位地址AFH—ADHACHABHAAHA9HA8H功能
中断总允许控制位定时器T1的溢出中断允许控制位
外部中断1的中断允许控制位定时器T0的溢出中断允许控制位外部中断0的中断允许控制位串行口中断允许控制位定时器T2的溢出中断允许控制位表5.3IE的结构、位名称、位地址和功能
位编码I18表5.3IE的结构、位名称、位地址和功能
位编码IE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0位名称EA
—ET2ESET1EX1ET0EX0位地址AFH—ADHACHABHAAHA9HA8H功能
禁止所有中断开通外部中断/INT0禁止其他中断00
00000开通总中断1所有中断仍被禁止0
00001010010开通T0和串行口中断禁止其他中断
111111开通所有中断表5.3IE的结构、位名称、位地址和功能
位编码I19
(1)EA(IE.7):总允许控制位,位地址为AFH。EA状态可由软件设定,若EA=0,禁止AT89C51所有中断源的中断请求;若EA=1,则总控制被开放,但每个中断源是允许还是被禁止CPU响应,还受控于中断源的各自中断允许控制位的状态。
(2)ET2(IE.5):定时器T2溢出中断允许控制位,位地址是ADH。(3)ES(IE.4):串行口中断允许控制位,位地址是ACH。(1)EA(IE.7):总允许控制位,20
(4)ET1(IE.3):定时器T1的溢出中断允许控制位,位地址为ABH。(5)EX1(IE.2):外部中断的中断请求允许控制位,位地址是AAH。(6)ET0(IE.1):定时器T0的溢出中断允许控制位,位地址是A9H。(7) EX0(IE.0):外部中断的中断请求允许控制位,位地址是A8H。
21
2)中断优先级控制寄存器IP
AT89C51的中断源优先级是由中断优先寄存器IP来进行控制的。其5个中断源划分为两个中断优先级:高优先级和低优先级。每一个中断源都可以通过IP寄存器中的相应位设置成高(优先)级中断或低(优先)级中断。相应位置“1”,定义为高级中断,相应位清“0”,定义为低级中断,因此,CPU对所有中断请求只能实现两级中断嵌套。IP寄存器的结构、位名称和位地址如表5.4所示。2)中断优先级控制寄存器IP22表5.4IP的结构、位名称、位地址和功能
位编码IP.7IP.6IP.5IP.4IP.3IP.2IP.1IP.0位名称—
—PT2PSPT1PX1PT0PX0位地址——BDHBCHBBHBAHB9HB8H功能保留位保留位
定时器T2中断优先级控制位串行口中断优先级控制位定时器T1中断优先级控制位定时器T0中断优先级控制位/INT0中断优先级控制位/INT1中断优先级控制位111111高级中断(同为1时亦称其为同级中断)低级中断(同为0时亦称其为同级中断)000000表5.4IP的结构、位名称、位地址和功能
位编码I23
如果同样优先级的请求同时接收到,则内部对中断源的查询次序决定先接受哪一个请求,表5.5列出了同(一优先)级中断源的内部查询顺序。中断源中断标志优先查询顺序外部中断0定时器T0中断外部中断1定时器T1中断串行口中断IE0TF0IE1TF1RI+TI高↓↓↓低表5.5中断源的内部查询顺序如果同样优先级的请求同时接收到,24
中断优先级三条原则:
(1)同时收到几个中断时,响应优先级别最高的;(2)中断过程不能被同级、低优先级所中断;(3)低优先级中断服务,能被高优先级中断。中断优先级三条原则:(1)同时收到几个中断时,响255.2.3中断处理过程
中断处理过程大致可分为4步:。
1.中断请求当中断源要求CPU为它服务时,必须发出一个中断请求信号。CPU将相应的中断请求标志位置“1”。为确保该中断得以实现,中断请求信号应保持到CPU响应该中断后才能取消。CPU会不断及时地查询这些中断请求标志位,一旦查询到某个中断请求标志置位,CPU就响应这个中断源的中断请求。中断请求、中断响应、中断服务和中断返回5.2.3中断处理过程中断处理过程大26
2.中断响应
同时满足以下4个条件时,才可能响应中断。(1)有中断请求;(2)对应中断允许位为1;(3)开中断(即EA=1)。
(4)正在执行的指令不是RETI或者是访问IE、IP的指令,否则必须再执行另外一条指令后才能响应。AT89C51响应某一中断请求后要进行如下操作:(1)完成当前指令的操作。(2)保护断点地址,将PC内容压入堆栈。2.中断响应同时满足以下4个条件时,才可能响应中断。27
(3)屏蔽同级的中断请求。(4)将中断源入口地址(固定的)送入PC寄存器,自动转入相应中断程序入口地址。中断源口地址如表5.6所示。表5.6AT89C51中断入口地址表中断源中断程序入口地址INT00003H定时器T0000BHINT10013H定时器T1001BH串行口中断0023H(3)屏蔽同级的中断请求。中断源中断程序28
3.中断响应时间
中断响应(从标志置1到进入相应的中断服务),至少要3个完整的机器周期。如图5.4所示。图5.4
中断响应时间示意图3.中断响应时间中断响应(从标志置1到进入29
4.中断请求的撤除
中断源发出中断请求后,相应的中断请求标志位置“1”,而CPU响应中断后,必须及时清除中断请求“1”标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。有关中断请求标志撤除有如下4种情况:
(1)定时/计数器T0、T1中断,CPU响应中断时就用硬件自动清除了相应的中断请求标志TF0、TF1。4.中断请求的撤除
中断源发出中断请30(2)对采用边沿触发方式的外部中断,CPU响应中断时,硬件也会自动清除相应的中断请求标志IE0或IE1。(3)对采用电平触发方式的外部中断,CPU响应中断时,虽也用硬件自动清除相应的中断请求标志IE0或IE1,但相应引脚(P3.2或P3.3)的低电平信号若继续保持下去中断请求标志IE0或IE1就无法清零,也会发生上述重复响应中断的情况。(4)对串行口中断(包括串发TI、串收RI),CPU响应中断后并不能自动清除相应的中断请求标志TI或RI,因此在响应串行口中断请求后,必须由用户在中断服务程序的相应位置通过指令将其清除(复位)。(2)对采用边沿触发方式的外部中断,CPU响31
5.2.4中断返回
注意:(1)不能用RET指令代替RETI指令。(2)中断服务程序中PUSH与POP须成对使用。
AT89C51响应中断后,自动执行中断服务程序。在中断服务程序中,只要遇到RETI指令(不论在什么位置),单片机就结束本次中断服务,返回原程序。因此,在中断服务程序的最后必须有一条RETI指令,用于中断返回。5.2.4中断返回注意:AT89325.3中断系统的应用
5.3.1中断初始化设置1.设置堆栈指针SP设置适宜的堆栈深度。
(1)深度要求不高且工作寄存器组1~3不用时,可维持复位时状态:SP=07H,深度为24B(20H~2FH为位寻址区)。(2)要求有一定深度时,可设SP=60H或50H,这时深度分别为32B和48B。5.3中断系统的应用5.3.1中断初始化设33
2.定义中断优先级根据中断源的轻重缓急,划分高优先级和低优先级。
3.定义外部中断触发方式一般情况下,应定义边沿触发方式为宜。若外部中断必须采用电平触发方式时,应在硬件电路上和中断服务程序中采取撤除中断请求信号的措施。
2.定义中断优先级344.开放中断由于AT89C51采用了二级中断控制方式,因此开放中断必须同时开放二级中断控制,即同时置位EA和需要开放中断的中断允许控制位。4.开放中断355.3.2中断服务主程序(1)在中断服务入口地址设置一条跳转指令,以便转移到中断服务程序的实际入口处。(2)数据需要保护现场。通常是保护Acc、PSW和DPTR等等特殊功能寄存器中的内容。(3)中断源请求中断服务要求的操作,这是中断服务程序的主体。5.3.2中断服务主程序(1)在中断服务入口36(4)若是外部中断电平触发方式,应有中断标志撤除操作。若是串行收发中断,应有对RI、TI清0指令。(5)恢复现场。与保护现场相对应,注意按“先进后出、后进先出”的原则操作。(6)中断返回,最后一条指令必须是RETI。(4)若是外部中断电平触发方式,应有中断(5)恢复现场。37
P1P3.0QDCLKCLR选通信号+5VINT0数据89C51Vcc例5.1单外部中断源应用示例5.3.3中断系统应用举例图5.5外部中断源应用
P1P3.0QDCLKCLR选通信号+5VINT0数据8938ORG0000HSTART:LJMPMAIN;跳转到主程序ORG0003HLJMPINTO;转中断服务程序ORG0030H;主程序MAIN:CLRIT0;设为电平触发方式SETBEA;CPU开放中断SETBEX0;允许中断MOVDPTR,#1000H;设置数据区指针……主程序:
ORG0000H主39
ORG0200HINT0:PUSHPSW;保护现场PUSHACCCLRP3.0;由P3.0输出0NOPNOPSETBP3.0;由P3.0输出1,撤除MOVA,P1;输入数据MOVX@DPTR,A;存入数据存储器INCDPTR;修改指针,指向下一单元……POPACC;恢复现场POPPSWRETI;中断返回中断服务程序:
ORG40
例5.2利用定时器作外部中断源。AT89C51内部有两个定时器/计数器,当它们选择为计数器工作方式时,T0(P3.4)或T1(P3.5)引脚上发生的负跳变将使T0或T1计数器加1计数。因此,可将P3.4、P3.5作为外部中断请求输入线,将T0或T1计数初值设定为满量程(#0FFH)。当T0、T1引脚上的电平发生负跳变时,计数器加1计数溢出,引起中断,因而可当作外中断使用,以计数器T0为例,初始化程序如下:例5.2利用定时器作外部中断源。41MOVTMOD,#06H;置T0为工作方式2MOVTL0,#0FFH ;置T0计数初值MOVTH0,#0FFHSETBEA ;开CPU中断SETBET0 ;允许T0中断SETBTR0 ;启动T0计数…ENDMOVTMOD,#06H;置T0为工作方式242
例5.3扩展外部中断源:在变频调速器中都设有过流(OC)、过压(OV)、欠压(UV)、过热(OH)这四种故障保护,当任一故障发生时,都要立刻停机处理,避免故障范围扩大。这种情况必须采用中断方式,使单片机立刻响应中断处理。试设计其硬件电路和软件程序。例5.3扩展外部中断源:在变频调速器43
根据要求,四个故障相当四个中断源,可利用中断查询方法,将四个中断源归结为一个中断请求,同时四个故障信号引到P1口的四个输入端,然后在中断程序中查询P1口,确定是哪一个故障申请的中断。电路如图5.6所示。一旦发生故障,单片机必须响应中断,因此,该中断必须设置成最高级中断。在中断程序中可以显示故障信息。根据要求,四个故障相当四个中断源,可利4411111
INT0
INT1OHUVOVOC+5V图5.6扩展4个外中断源电路P1.3P1.2P1.1P1.0AT89C5111111INT0INT1OHUVOVOC+5V图5.645主程序和中断服务程序如下:
ORG 0000AJMP ZCX1;转主程序NOPORG 0013HAJMP INT1;转中断服务程序NOPORG 0100HZCX1:MOVSP,#30H;置堆栈指针 MOVIP,#04H;设INT1为最高级 CLR IT1;设INT1为电平触发 SETBEA;开中断 SETBEX1ZCX2:其他处理程序 AJMPZCX2 ORG0200H主程序和中断服务程序如下:46INT1:PUSH PSW;保护现场 PUSH ACC MOVA,P1;读入P1口低4位状态ANLA,#0FH JNBACC0,X1;是OC中断吗?不是则转移 ACALLXY1;调OC处理子程序X1:JNBACC1,X2;是OV中断吗?不是则转移 ACALLXY2;调OV处理子程序X2:JNBACC2,X3;是UV中断吗?不是则转移 ACALLXY3;调UV处理子程序X3: JNB ACC3,X4;是OH中断吗?不是则转移ACALLXY4;调OH处理子程序X4: POPACC;恢复现场POPPSW RETIXY1: OC处理子程序(略) RETINT1:PUSH PSW;保护现场47本章小结
(1)中断与中断系统:CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序,这一过程叫做中断。中断是一种资源共享技术,单片机使用中断技术主要是为了进行实时控制,以便对随机发生的事件作出快速反应和及时处理;为完成中断任务的相关硬件电路和软件程序合称为中断系统。本章小结(1)中断与中断系统:CPU暂48
(2)中断源及其入口地址:AT89C51单片机有5个中断源:分别为:INT0、T0、INT1、T1及串行口中断(包括串行接收中断RI和串行发送中断TI)。5个中断源的中断入口地址分别为0003H、000BH、0013H、001BH、0023H。(3)中断控制及寄存器:控制89C51中断的有3个方面、4个特殊功能寄存器:①中断请求:定时和外部中断控制寄存器TCON、串行控制寄存器SCON;②中断允许控制寄存器IE;③中断优先级控制寄存器IP。(2)中断源及其入口地址:AT89C51单片49
(4)中断处理过程:大致可分为中断请求、中断响应、中断服务和中断返回4个步骤。(5)中断响应等待时间:一般是3~4个机器周期,最长为8个机器周期。(6)中断触发方式:通常有边沿触发和电平触发两种。(7)AT89C51的5个中断源可设置为两个中断优先级:高优先级和低优先级。(8)编制中断应用程序主要包括中断初始化和中断服务程序。(4)中断处理过程:大致可分为中断请求、50
①中断初始化内容包括:设置堆栈指针SP、定义中断优先级、定义外部中断触发方式、开放中断和中断发生前主程序应完成的操作内容。②中断服务程序中的操作内容和功能是中断源请求中断的目的,是CPU完成中断处理操作的核心和主体。由于89C51相邻两个中断入口地址间只有8字节的空间,因此真正的中断服务程序必须跳转到其他合适的地址空间。(9)中断服务程序中,若涉及到一些功能寄存器中断前的数据需要保存,则需要采取保护现场和恢复现场的措施。(10)中断服务程序最后一条指令必须是RETI。①中断初始化内容包括:设置堆栈指针SP、定51思考题与习题5.1什么叫中断?单片机采用中断有什么好处?5.2什么叫中断源?AT89C51有哪几个中断源?写出其固定入口地址。5.3什么叫中断嵌套?中断嵌套遵循的原则是什么?AT89C51单片机本身能实现几级嵌套?5.4AT89C51中与中断有关的特殊功能寄存器有几个?它们各自的功能是什么?思考题与习题5.1什么叫中断?单片525.5AT89C51单片机外中断的触发方式有几种?它们有什么区别?电平触发时,如何防止CPU重复响应同一外中断?5.6什么是中断优先级?AT89C51能设置几个优先级?同一级别的中断源同时发出中断请求,CPU先响应哪一个?怎样确定?5.7一个中断请求被响应必须满足什么条件?5.8AT89C51响应某一中断请求后要进行哪些操作?5.5AT89C51单片机外中断53
5.9若系统只有一个中断源,则中断响应须等待的最短时间和最长时间各是多少?等待时间长的原因都有哪些?5.10概述一个中断响应的全部过程。5.11现想用两个外中断源和实现中断嵌套控制,为高级中断,边沿触发方式;为低级中断,电平触发方式,试编写其初始化程序。5.12现有四台外围设备X1~X4需向AT89C51申请中断,而AT89C51只有INT0和P1口可供使用,试设计相应的电路并编写程序。5.9若系统只有一个中断源,则中断响应54第5章AT89C51单片机中断系统教学目标5.1中断概述5.2AT89C51中断系统5.3中断系统的应用本章小结思考题与习题
第5章AT89C51单片机中断系统教学目标55教学目标
通过本章教学,要求达到以下目标:1.熟记AT89C515个中断源及其中断入口地址。2.熟悉TCON、SCON、IE、IP的结构、控制作用和设置方法。3.理解AT89C51中断响应过程。4.了解中断响应等待时间。5.理解中断请求撤除情况和应对措施。6.熟悉中断优先控制的方法。7.掌握中断应用程序的编制方法。教学目标通过本章教学,要求达到以下目标:565.1中断概述1.中断概念CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序,这一过程叫做中断。5.1中断概述1.中断概念57
中断概念类比
看电视中断处理中断请求实际生活中断返回电话铃响接听电话看电视主程序计算机事件发生事件处理主程序图5.1中断概念示意图中断概念类比看电视中断处理中断请求实际生活中断返58图5.2中断过程示意图图5.2中断过程示意图592.为什么要设中断
中断解决了快速主机与慢速I/O设备的数据传送,还具有如下优点:
(1)分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;
(2)实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;
(3)可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。2.为什么要设中断中断解决了快速主机与60
3.中断源及其优先级
中断源是指能发出中断请求,引起中断的装置或事件。一个单片机系统通常有多个中断源,而单片机CPU在某一时刻只能响应一个中断源的中断请求,当多个中断源同时向CPU发出中断请求时,则必须按照“优先级别”进行排队,CPU首先选定其中中断级别最高的中断源为其服务,然后按由高到低的排队顺序逐一服务,完毕后返回断点地址,继续执行主程序。这就是“中断优先级”的概念。3.中断源及其优先级中断源61
4.中断源的管理
单片机系统中有一个专门用来管理中断源的机构,它就是中断控制寄存器,我们可以通过对其编程来设置中断源的优先级别以及是否允许某个中断源的中断请求等。4.中断源的管理单625.2AT89C51中断系统的结构
5.2.1中断源及中断系统构成1.中断源:
(1)INT0:外部中断0;(2)INT1:外部中断1;(3)T0:定时/计数器0溢出中断;(4)T1:定时/计数器1溢出中断;(5)串行中断(包括串行接收中断RI和串行发送中断TI)。5.2AT89C51中断系统的结构5.635.2.1中断源及中断系统构成IE0EX0TF0IE1TF1TIESET1EX1ET0RIIP硬件查询高级中断请求低级中断请求中断入口地址中断源INT0INT1中断入口地址中断源10IEPX0PSPT1PX1PT0111111111100000EA1≥1SCON11T0T1RXTXIT0IT100TCON图5.3AT89C51中断系统结构示意图5.2.1中断源及中断系统构成IE0EX0TF0IE1T64
5.2.2中断标志与中断控制
1.中断标志
(1)定时器控制寄存器TCONTCON为8位特殊功能寄存器,其结构、位名称、位地址及其功能如表5.1所示。
5.2.2中断标志与中断控制1.中65表5.1TCON的结构、位名称、位地址和功能
位编码位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H功能
T1中断标志位T1启停控制位T0中断标志位TCON.0/INT1中断标志位/INT0中断标志位/INT1触发方式位/INT0触发方式位T0启停控制位TCON.1TCON.2TCON.3TCON.4TCON.5TCON.6TCON.7表5.1TCON的结构、位名称、位地址和功能
位编码66表5.1TCON的结构、位名称、位地址和功能
位编码位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H状态
TCON.0TCON.1TCON.2TCON.3TCON.4TCON.5TCON.6TCON.7外部中断0采用电平触发0外部中断0采用边沿触发111外部中断1采用边沿触发0外部中断1采用电平触发0000单片机复位时或无中断请求发生时,这些位均为0外部中断1发出中断请求时外部中断0发出中断请求时111T0发出中断请求时T1发出中断请求时单片机复位或T0停止计数启动T0开始计数单片机复位或T1停止计数启动T1开始计数0011表5.1TCON的结构、位名称、位地址和功能
位编码67(2)SCON的中断标志
串行控制寄存器SCON的结构、位名称、位地址及其功能如表5.2所示。其中只有TI和RI两位用来表示串行口中断标志位。(2)SCON的中断标志串行控制寄存器SCO68表5.2SCON的结构、位名称、位地址和功能
位编码位名称SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能
SCON.0串行发送中断标志位串行接收中断标志位SCON.1SCON.2SCON.3SCON.4SCON.5SCON.6SCON.7表5.2SCON的结构、位名称、位地址和功能
位编691)TI:为串行口发送中断标志位,位地址为99H。在串行口发送完一组数据时,TI由硬件自动置位(TI=1),请求中断,当CPU响应中断进入中断服务程序后,TI状态不能被硬件自动清除,而必须在中断程序中由软件来清除。
2)RI:为串行口接收中断标志位,位地址为98H。在串行口接收完一组串行数据时,RI由硬件自动置位(RI=1),请求中断,当CPU响应中断进入中断服务程序后,也必须由软件来清除RI标志。1)TI:为串行口发送中断标志位,70
1)中断允许控制寄存器IE
2.中断控制
AT89C51设有专门的开中断和关中断指令,中断的开放和关闭是通过中断允许寄存器IE各位的状态进行两级控制的。所谓两级控制是指所有中断允许的总控制位和各中断源允许的单独控制位,每位状态靠软件来设定。中断允许控制寄存器IE各位的定义及其功能等如表5.3所示。1)中断允许控制寄存器IE2.中断控制71表5.3IE的结构、位名称、位地址和功能
位编码IE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0位名称EA
—ET2ESET1EX1ET0EX0位地址AFH—ADHACHABHAAHA9HA8H功能
中断总允许控制位定时器T1的溢出中断允许控制位
外部中断1的中断允许控制位定时器T0的溢出中断允许控制位外部中断0的中断允许控制位串行口中断允许控制位定时器T2的溢出中断允许控制位表5.3IE的结构、位名称、位地址和功能
位编码I72表5.3IE的结构、位名称、位地址和功能
位编码IE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0位名称EA
—ET2ESET1EX1ET0EX0位地址AFH—ADHACHABHAAHA9HA8H功能
禁止所有中断开通外部中断/INT0禁止其他中断00
00000开通总中断1所有中断仍被禁止0
00001010010开通T0和串行口中断禁止其他中断
111111开通所有中断表5.3IE的结构、位名称、位地址和功能
位编码I73
(1)EA(IE.7):总允许控制位,位地址为AFH。EA状态可由软件设定,若EA=0,禁止AT89C51所有中断源的中断请求;若EA=1,则总控制被开放,但每个中断源是允许还是被禁止CPU响应,还受控于中断源的各自中断允许控制位的状态。
(2)ET2(IE.5):定时器T2溢出中断允许控制位,位地址是ADH。(3)ES(IE.4):串行口中断允许控制位,位地址是ACH。(1)EA(IE.7):总允许控制位,74
(4)ET1(IE.3):定时器T1的溢出中断允许控制位,位地址为ABH。(5)EX1(IE.2):外部中断的中断请求允许控制位,位地址是AAH。(6)ET0(IE.1):定时器T0的溢出中断允许控制位,位地址是A9H。(7) EX0(IE.0):外部中断的中断请求允许控制位,位地址是A8H。
75
2)中断优先级控制寄存器IP
AT89C51的中断源优先级是由中断优先寄存器IP来进行控制的。其5个中断源划分为两个中断优先级:高优先级和低优先级。每一个中断源都可以通过IP寄存器中的相应位设置成高(优先)级中断或低(优先)级中断。相应位置“1”,定义为高级中断,相应位清“0”,定义为低级中断,因此,CPU对所有中断请求只能实现两级中断嵌套。IP寄存器的结构、位名称和位地址如表5.4所示。2)中断优先级控制寄存器IP76表5.4IP的结构、位名称、位地址和功能
位编码IP.7IP.6IP.5IP.4IP.3IP.2IP.1IP.0位名称—
—PT2PSPT1PX1PT0PX0位地址——BDHBCHBBHBAHB9HB8H功能保留位保留位
定时器T2中断优先级控制位串行口中断优先级控制位定时器T1中断优先级控制位定时器T0中断优先级控制位/INT0中断优先级控制位/INT1中断优先级控制位111111高级中断(同为1时亦称其为同级中断)低级中断(同为0时亦称其为同级中断)000000表5.4IP的结构、位名称、位地址和功能
位编码I77
如果同样优先级的请求同时接收到,则内部对中断源的查询次序决定先接受哪一个请求,表5.5列出了同(一优先)级中断源的内部查询顺序。中断源中断标志优先查询顺序外部中断0定时器T0中断外部中断1定时器T1中断串行口中断IE0TF0IE1TF1RI+TI高↓↓↓低表5.5中断源的内部查询顺序如果同样优先级的请求同时接收到,78
中断优先级三条原则:
(1)同时收到几个中断时,响应优先级别最高的;(2)中断过程不能被同级、低优先级所中断;(3)低优先级中断服务,能被高优先级中断。中断优先级三条原则:(1)同时收到几个中断时,响795.2.3中断处理过程
中断处理过程大致可分为4步:。
1.中断请求当中断源要求CPU为它服务时,必须发出一个中断请求信号。CPU将相应的中断请求标志位置“1”。为确保该中断得以实现,中断请求信号应保持到CPU响应该中断后才能取消。CPU会不断及时地查询这些中断请求标志位,一旦查询到某个中断请求标志置位,CPU就响应这个中断源的中断请求。中断请求、中断响应、中断服务和中断返回5.2.3中断处理过程中断处理过程大80
2.中断响应
同时满足以下4个条件时,才可能响应中断。(1)有中断请求;(2)对应中断允许位为1;(3)开中断(即EA=1)。
(4)正在执行的指令不是RETI或者是访问IE、IP的指令,否则必须再执行另外一条指令后才能响应。AT89C51响应某一中断请求后要进行如下操作:(1)完成当前指令的操作。(2)保护断点地址,将PC内容压入堆栈。2.中断响应同时满足以下4个条件时,才可能响应中断。81
(3)屏蔽同级的中断请求。(4)将中断源入口地址(固定的)送入PC寄存器,自动转入相应中断程序入口地址。中断源口地址如表5.6所示。表5.6AT89C51中断入口地址表中断源中断程序入口地址INT00003H定时器T0000BHINT10013H定时器T1001BH串行口中断0023H(3)屏蔽同级的中断请求。中断源中断程序82
3.中断响应时间
中断响应(从标志置1到进入相应的中断服务),至少要3个完整的机器周期。如图5.4所示。图5.4
中断响应时间示意图3.中断响应时间中断响应(从标志置1到进入83
4.中断请求的撤除
中断源发出中断请求后,相应的中断请求标志位置“1”,而CPU响应中断后,必须及时清除中断请求“1”标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。有关中断请求标志撤除有如下4种情况:
(1)定时/计数器T0、T1中断,CPU响应中断时就用硬件自动清除了相应的中断请求标志TF0、TF1。4.中断请求的撤除
中断源发出中断请84(2)对采用边沿触发方式的外部中断,CPU响应中断时,硬件也会自动清除相应的中断请求标志IE0或IE1。(3)对采用电平触发方式的外部中断,CPU响应中断时,虽也用硬件自动清除相应的中断请求标志IE0或IE1,但相应引脚(P3.2或P3.3)的低电平信号若继续保持下去中断请求标志IE0或IE1就无法清零,也会发生上述重复响应中断的情况。(4)对串行口中断(包括串发TI、串收RI),CPU响应中断后并不能自动清除相应的中断请求标志TI或RI,因此在响应串行口中断请求后,必须由用户在中断服务程序的相应位置通过指令将其清除(复位)。(2)对采用边沿触发方式的外部中断,CPU响85
5.2.4中断返回
注意:(1)不能用RET指令代替RETI指令。(2)中断服务程序中PUSH与POP须成对使用。
AT89C51响应中断后,自动执行中断服务程序。在中断服务程序中,只要遇到RETI指令(不论在什么位置),单片机就结束本次中断服务,返回原程序。因此,在中断服务程序的最后必须有一条RETI指令,用于中断返回。5.2.4中断返回注意:AT89865.3中断系统的应用
5.3.1中断初始化设置1.设置堆栈指针SP设置适宜的堆栈深度。
(1)深度要求不高且工作寄存器组1~3不用时,可维持复位时状态:SP=07H,深度为24B(20H~2FH为位寻址区)。(2)要求有一定深度时,可设SP=60H或50H,这时深度分别为32B和48B。5.3中断系统的应用5.3.1中断初始化设87
2.定义中断优先级根据中断源的轻重缓急,划分高优先级和低优先级。
3.定义外部中断触发方式一般情况下,应定义边沿触发方式为宜。若外部中断必须采用电平触发方式时,应在硬件电路上和中断服务程序中采取撤除中断请求信号的措施。
2.定义中断优先级884.开放中断由于AT89C51采用了二级中断控制方式,因此开放中断必须同时开放二级中断控制,即同时置位EA和需要开放中断的中断允许控制位。4.开放中断895.3.2中断服务主程序(1)在中断服务入口地址设置一条跳转指令,以便转移到中断服务程序的实际入口处。(2)数据需要保护现场。通常是保护Acc、PSW和DPTR等等特殊功能寄存器中的内容。(3)中断源请求中断服务要求的操作,这是中断服务程序的主体。5.3.2中断服务主程序(1)在中断服务入口90(4)若是外部中断电平触发方式,应有中断标志撤除操作。若是串行收发中断,应有对RI、TI清0指令。(5)恢复现场。与保护现场相对应,注意按“先进后出、后进先出”的原则操作。(6)中断返回,最后一条指令必须是RETI。(4)若是外部中断电平触发方式,应有中断(5)恢复现场。91
P1P3.0QDCLKCLR选通信号+5VINT0数据89C51Vcc例5.1单外部中断源应用示例5.3.3中断系统应用举例图5.5外部中断源应用
P1P3.0QDCLKCLR选通信号+5VINT0数据8992ORG0000HSTART:LJMPMAIN;跳转到主程序ORG0003HLJMPINTO;转中断服务程序ORG0030H;主程序MAIN:CLRIT0;设为电平触发方式SETBEA;CPU开放中断SETBEX0;允许中断MOVDPTR,#1000H;设置数据区指针……主程序:
ORG0000H主93
ORG0200HINT0:PUSHPSW;保护现场PUSHACCCLRP3.0;由P3.0输出0NOPNOPSETBP3.0;由P3.0输出1,撤除MOVA,P1;输入数据MOVX@DPTR,A;存入数据存储器INCDPTR;修改指针,指向下一单元……POPACC;恢复现场POPPSWRETI;中断返回中断服务程序:
ORG94
例5.2利用定时器作外部中断源。AT89C51内部有两个定时器/计数器,当它们选择为计数器工作方式时,T0(P3.4)或T1(P3.5)引脚上发生的负跳变将使T0或T1计数器加1计数。因此,可将P3.4、P3.5作为外部中断请求输入线,将T0或T1计数初值设定为满量程(#0FFH)。当T0、T1引脚上的电平发生负跳变时,计数器加1计数溢出,引起中断,因而可当作外中断使用,以计数器T0为例,初始化程序如下:例5.2利用定时器作外部中断源。95MOVTMOD,#06H;置T0为工作方式2MOVTL0,#0FFH ;置T0计数初值MOVTH0,#0FFHSETBEA ;开CPU中断SETBET0 ;允许T0中断SETBTR0 ;启动T0计数…ENDMOVTMOD,#06H;置T0为工作方式296
例5.3扩展外部中断源:在变频调速器中都设有过流(OC)、过压(OV)、欠压(UV)、过热(OH)这四种故障保护,当任一故障发生时,都要立刻停机处理,避免故障范围扩大。这种情况必须采用中断方式,使单片机立刻响应中断处理。试设计其硬件电路和软件程序。例5.3扩展外部中断源:在变频调速器97
根据要求,四个故障相当四个中断源,可利用中断查询方法,将四个中断源归结为一个中断请求,同时四个故障信号引到P1口的四个输入端,然后在中断程序中查询P1口,确定是哪一个故障申请的中断。电路如图5.6所示。一旦发生故障,单片机必须响应中断,因此,该中断必须设置成最高级中断。在中断程序中可以显示故障信息。根据要求,四个故障相当四个中断源,可利9811111
INT0
INT1OHUVOVOC+5V图5.6扩展4个外中断源电路P1.3P1.2P1.1P1.0AT89C5111111INT0INT1OHUVOVOC+5V图5.699主程序和中断服务程序如下:
ORG 0000AJMP ZCX1;转主程序NOPORG 0013H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二手房房买卖合同范本(2024版)
- 2025年万用表租赁合同范文(2篇)
- 2025版行政合同性质在行政调解与仲裁中的运用研究3篇
- 二零二四年生态农业种苗培育与土壤改良技术服务合同3篇
- 2025年度医疗辅助专业护工雇佣合同范本(含培训服务)
- 2025年度新材料产业高级管理人员聘用合同样本
- 2025年度新型户外广告施工合同范文
- 2025年度国有房产出售合同范本与法律依据
- 2025年度大数据分析挂靠聘用合同模板
- 2025年度汽车销售合同终止协议范本
- 《架空输电线路导线舞动风偏故障告警系统技术导则》
- 2024年计算机二级WPS考试题库
- 广东省广州黄埔区2023-2024学年八年级上学期期末数学试卷(含答案)
- 法理学课件马工程
- 2024年广东省公务员录用考试《行测》真题及解析
- 高中英语必背3500单词表(完整版)
- 2024年版《输变电工程标准工艺应用图册》
- 2024年高考数学试卷(北京)(空白卷)
- 护理服务在产科中的应用课件
- 2024年小升初语文入学分班测试卷四(统编版)
- 流行文化对青少年价值观的影响研究
评论
0/150
提交评论