《第五章MCS-51中断系统》由会员分享,可在线阅读,更多相关《第五章MCS-51中断系统(46页珍藏版)》请在金锄头文库上搜索。
1、第五章 MCS-51中断系统5.1 中断的概念5.2 MCS-51中断系统的结构5.3 中断请求源5.4 中断控制5.5 中断响应5.6 外部中断的触发方式5.7 中断服务程序设计5.8 多外部中断源系统设计中断定义:中断定义: 当机器正在执行程序的过程中,一旦遇到一些异常或特殊请求时,就停止正在执行的程序,而转入必要的处理,并在处理完毕后,立即返回断点继续执行。图5.1中断响应过程 中断术语:中断系统:能够实现中断处理功能的部件称中断系统.中断请求源(中断源):发出中断请求的来源。保护现场恢复现场中断处理过程1)保护现场PUSH PSWPUSH APUSH R02)中断服务相应的中断源服务3
2、)恢复现场POP R0POP APOP PSW 4)开中断和中断返回RETI5.2 MCS-51中断系统的结构5.3 中断请求MCS-51中断系统有5个中断源(见5.2图)1) -外部中断请求源0,中断请求标志IE0.2) -外部中断请求源1,中断请求标志IE1.3)T0-定时器/计数器T0溢出中断请求,中断请求标志TF0.4)T1-定时器/计数器T1溢出中断请求,中断请求标志TF1.5)串行口中断请求,中断请求标志为TI或RIINT0INT1TCON、SCON 、IE 、IP 对5个中断源:T0、T1、串行口中断(TI/RI)、 INT0 、 INT1 、的控制的片内特殊功能寄存器为:定时器
3、/计数器控制寄存器TCON 、串行口控制寄存器SCON 、中断优先级控制寄存器IP 和中断允许寄存器IE。TCON、SCON 、IE 、IP T0T1串行口中断(串行口中断(TI/RI)INT0 INT15个中断请求源对对5 5个中断源控制的片内特殊功能寄存器为:个中断源控制的片内特殊功能寄存器为:定时器/计数器控制寄存器TCON串行口控制寄存器SCON中断优先级控制寄存器IP中断允许寄存器IE定时/计数器的控制寄存器TCON字节地址:字节地址:88HTCONTF1TR1TF0TR0IE1IT1IE0IT0位地址位地址8FH8EH8DH 8CH 8BH 8AH 89H88HTCONTF1TR1
4、TF0TR0IE1IT1IE0IT0IT0: INT0的触发方式控制位。 若IT=0, 电平触发 若IT1,下降沿触发 IE0:外部中断0的中断请求标志 若IE=0,无中断请求 若IE=1,有中断请求IT1:INT1的触发方式控制位IE1:外部中断1的中断请求标志 TF0:定时/计数器(T0)溢出中断请求标志 计数器计满产生溢出,由硬件置位,TF0=1有中断请求,否则TF0=0(硬件会自动清0,也可由软件清0.)TF1: 定时/计数器(T1)溢出中断请求标志 若TF1=0,无中断请求;若TF1=1,有中断请求。TCONTF1TR1TF0TR0IE1IT1IE0IT0串行口控制寄存器串行口控制寄
5、存器SCONSCON字节地址:字节地址:98HSCONTIRI位地址位地址99H98HTITI:串行口发送中断标志 TI=1,中断请求向串口的数据缓冲器SBUF写入一个数据 TI=0,无请求(软件清0)RIRI:串行口接收中断标志 RI=1串行口接收器请求中断 RI0软件清0SCON TI RI 注:复位后(注:复位后(SCONSCON)=00H=00H5.4 5.4 中断控制中断控制1. 中断允许寄存器中断允许寄存器IE字节地址:A8H IETIRI位地址位地址99H98HIE-中断允许寄存器EA:中断开放标志位 EA=1,CPU开放中断 EA=0,CPU屏蔽所有的中断ES:串行中断允许位
6、ES=1,允许串行中断 ES=0,禁止串行中断 ET1:T1的溢出中断允许位 ET1=1,允许T1中断 ET1=0,禁止T1中断IE-中断允许寄存器EX1:INT1中断允许位。 EX1=1, 允许INT1中断 EX1=0,禁止INT1中断ET0:T0的溢出中断允许位. ET0=1,允许T0中断 ET0=0,禁止T0中断EX0:INT0中断允许位. EX0=1,允许INT0中断 EX0=0,禁止INT0中断.IP-中断优先级寄存器中断优先级寄存器 MCS-51中断源有2个中断优先级,每个中断源可由软件设定为高级或低级.可实现2级中断嵌套,2级中断嵌套的过程如下图5.4中断嵌套实现过程中断嵌套实现
7、过程:IP中断优先级寄存器格式 字节地址为字节地址为B8HB8H IPPSPT1 PX1PT0PX0位地位地址址BCHBBH BAH B9HB8HIP-中断优先级寄存器各个位含义PS串行口中断优先级控制位 PS=1,串行口中断定义为高优先级中断 PS=0,串行口中断定义为低优先级中断PT1定时器T1中断优先级控制位 PT1=1,定时器T1定义为高优先级中断 PT1=0,定时器T1定义为低优先级中断IP-中断优先级寄存器各个位含义PX1外部中断1中断优先级控制位 PX1=1,外部中断1定义为高优先级中断 PX1=0,外部中断1定义为低优先级中断PT0定时器T0中断优先级控制位 PT0=1,定时器
8、T0定义为高优先级中断 PT0=0,定时器T0定义为低优先级中断PX0外部中断0中断优先级控制位 PX0=1,外部中断0定义为高优先级中断 PX0=0,外部中断0定义为低优先级中断 同一级优先级中断请求的优先级结构中断源中断源入口地址入口地址中断级别中断级别外部中断外部中断00003H最高最高最低最低T0溢出中断溢出中断000BH外部中断外部中断10013HT1溢出中断溢出中断001BH串行口中断串行口中断0023H5.5 中断响应中断响应 响应中断请求的必要条件响应中断请求的必要条件:1)CPU开中断,即EA=1.2)该中断源对应的中断请求标志为1.3)该中断源的中断允许位=14)无同级或更
9、高级中断正在被服务.响应中断后响应中断后:1)先置位相应的优先级状态触发器.2)执行一个硬件子程序(中断隐指令)调用. 清中断标志、PC内容压栈、中断入口地址装入PC 注意注意: 串行口中断标志串行口中断标志TI和和RI必须软件清零必须软件清零.中断响应被禁止的情况中断响应被禁止的情况 除下述条件所阻止,在机器周期S6 采样并按优先级处理所激活的中断请求,将在下一个机器周期的状态(S1)响应激活的最高级中断。CPU正在处理相同的或更高级的中断。现行的机器周期不是所执行指令的最后一个机器周期。正在执行指令为RETI或访问IP则至少需要再执行一条指令,才会响应的中断请求。外部中断的响应时间外部中断
10、的响应时间: 在一个单一中断系统里,MCS-51单片机对外部中断请求的响应时间是在38个机器周期之间.5.6 外部中断的触发方式一、一、触发方式触发方式:电平触发和边沿触发方式. 电平触发(低电平):当外部中断源被设定为电平触发方式时,在中断服务程序返回之前,外部中断请求输入必须无效无效(即变为高电平),否则CPU返回主程序后会再次响应中断.注意注意: :该方式适合于外部中断以低电平输入而该方式适合于外部中断以低电平输入而且中断服务程序能清除外部中断请求源情况且中断服务程序能清除外部中断请求源情况. .边沿触发(下降沿):外部中断请求触发器能锁存外部中断输入线上的负跳变,即便是CPU暂时不能响
11、应,中断请求标志也不会丢失.但输入的负脉冲宽度至少保持12个时钟周期,才能被CPU采样到. 注意注意: :该方式适合于以负脉冲形式输入的外部该方式适合于以负脉冲形式输入的外部中断请求中断请求. .定时器定时器/计数器中断请求的撤消计数器中断请求的撤消 该中断响应后,硬件会自动把中断请求标志位(TF0或TF1)清0.串行口中断请求的撤消串行口中断请求的撤消 串行口中断请求的撤消只有标志位(TI或RI)清0问题.该中断响应后,硬件不会自动清中断请求标志位 .需软件清0.用指令: CLRTI CLRRI二、中断请求的撤消外部中断请求的撤消外部中断请求的撤消边沿方式外部中断请求的撤消 中断标志位清中断
12、标志位清0 外部中断信号的撤消外部中断信号的撤消 由于边沿信号出现后会消失,所以边沿方式 外部中断请求也是自动撤消.中断标志位(IE0或IE1)的清0是在中断响应后,硬件自动完成.电平方式外部中断请求的撤消电平方式外部中断请求的撤消中断请求标志位(IE0或IE1)撤消硬件自动完成.中断请求信号的低电平可能继续存在,将会重新把已清0的IE0或IE1置位.所以对电平方式外部中断请求的撤消,除清标志位外,还必须在中断响应后把中断请求信号引脚从低电平强制变为高电平.方法如图.电平方式外部中断请求的撤消电路电平方式外部中断请求的撤消电路外部中断外部中断请求信号请求信号在中断服务程序中在中断服务程序中,
13、,增加增加: :ORLP1,#01HANLP1,#FEHCPSDQINT0P1.0MCS-511。5.7 中断服务程序设计中断服务程序设计中断服务程序设计任务采用中断时的主程序结构中断服务程序流程中断服务程序设计任务1)设置IE2)设置IP3)若为外部中断,需设置触发方式4)编写中断服务程序,处理中断请求采用中断时的主程序结构采用中断时的主程序结构 ORG0000H LJMPMAIN ORG 中断入口地址中断入口地址 LJMPINT MAIN: INT:主程序主程序中断服务程序中断服务程序中断服务程序流程中断服务程序流程 关中断 现场保护 开中断 中断处理 关中断 现场恢复 开中断 中断返回C
14、LR EAPUSH PSWPUSH ASETB EA中断处理任务中断处理任务CLR EAPOP APOP PSWSETB EARETI例题1:如图1.边沿触发式外部中断边沿触发式外部中断 输入:P1.0P1.3 输出:P1.7P1.42.逐级开放中断逐级开放中断 SETB EX0 SETB EA3.中断服务程序的位置中断服务程序的位置 外部中断0的入口地址:0003H 中断服务子程序最后一条指令:RETI返回程序清单: ORG 0000H AJMP MAIN ;上电自动转向主程序 ORG 0003H ;外部中断0入口地址 AJMP WBINT ;指向中断服务子程序 ORG 4100H ;主程序
15、MAIN: SETB IT0 ;选择边沿触发方式 SETB EX0 ;允许外部中断0 SETB EA ;CPU允许中断HERE: AJMP HERE ;主程序踏步中断服务子程序:中断服务子程序: ORG 4110HWBINT: MOV A,#0FFH MOV P1,A ;设输入态 MOV A,P1 ;取开关数 SWAP A ;换位 MOV P1,A ;输出驱动灯泡发光 RETI ;中断返回 END 5. 8 多外部中断源系统设计多外部中断源系统设计5.8.1定时器/计数器作为外部中断的使用方法 定时器/计数器内容,下章讲解.5.8.2 中断和查询结合的方法5个外部中断源: DVT0-DVT4。
16、其均为高电平有效DVT0DVT0为最高级为最高级中断,为外部中中断,为外部中断断0 0输入信号。输入信号。DVT1DVT4输入到P1.0P1.3,同时线或接外部中断1,采用电平触发方式。外部中断外部中断1服务程序服务程序 ORG0013H LJMPPINT1 PINT1: PUSH PSW PUSH ACC JB P1.0,PDVT1 JB P1.1,PDVT2 JB P1.2,PDVT3 JB P1.3,PDVT4PINTIR: POP ACC POP PSW RETIPDVT1: AJMP PINTIRPDVT2: AJMP PINTIRDVT1中断处理程序中断处理程序DVT2中断处理程序中断处理程序PDVT3: AJMP PINTIRPDVT4: AJMP PINTIR注意注意:查询法扩展外部中断较简单,但是扩展外部中断源个数较多时,查询时间较长。DVT3DVT3中断处理程序中断处理程序DVT3DVT3中断处理程序中断处理程序