1、MCS-51中断源
1.定时器/计数器控制寄存器TCON(88H)
TCON为定时器/计数器T0、T1的控制器,同时也锁存了T0、T1的溢出中断源和外部中断请求源,与中断有关的位如下:
IE1:外部中断 (P3.3)请求标志位。
IT1:外部中断 请求类型(触发方式)控制位。
IT1=0:外部中断1程控为电平触发方式,当 (P3.3)输入低电平时,置位IE1=1,申请中断。
IT1=1:外部中断1程序控制为边沿触发方式,CPU在每个机器周期的S5P2采样 (P3.3)输入电平。
IE0:外部中断0()请求标志位。
IT0:外部中断0()触发方式控制位。
TF0:定时器T0 的溢出中断申请位。
TF1:定时器T1 的溢出中断申请位。
2.串行口控制寄存器SCON(98H)
SCON(98H)为串行口控制寄存器,SCON的低两位锁存串行口接收中断和发送中断标志RI和TI,其格式如下:
RI和TI:串行口内部表示中断申请标志位。
2、MCS-51中断控制
1.中断允许寄存器IE(A8H)
MCS-51单片机中,特殊功能寄存器IE为中断允许寄存器,控制CPU对中断源的开放或屏蔽,以及每个中断源是否允许中断。其格式为:
EA:CPU中断开放标志。EA=1,CPU开放中断;EA=0,CPU屏蔽所有的中断请求。
ES:串行中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。
ET1:T1溢出中断允许。ET1=1,允许T1中断;ET1=0,禁止T1中断。
EX1:外部中断1( )允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。
ET0:T0溢出中断允许位。ET0=1,允许T0中断;ET0=0,禁止T0中断。
EX0:外部中断0( )允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。
MCS-51单片机复位后,IE中各位均被清0,即禁止所有中断。
2.中断源优先级设定寄存器IP(B8H)
8051单片机具有二个中断优先级,每个中断源可编程为高优先级中断或低优先级中断,并可实现二级中断嵌套。
特殊功能寄存器IP为中断优先级寄存器,所存各种中断源优先级的控制位,用户可用软件设定,其格式如下:
PS:串行口中断优先级控制位。PS=1,设定串行口为高优先级中断;PS=0,为低优先级中断。
PT1:T1中断优先级控制位。
PT0:T0中断优先级控制位。
3.优先级结构
MCS-51的CPU每一个机器周期顺序检查每一个中断源,在任意机器周期的S6状态采样并按优先级处理所有被激活的中断请求,在下一个机器周期的S1状态,只要不受阻断就开始响应其中最高优先级的中断请求。若发生下列情况,中断响应会受到阻断:
(1) 同级或高优先级的中断正在进行
(2) 现在的机器周期不是所执行指令的最后一个机器周期;
(3) 正执行的指令是RETI或是访问IE或IP的指令,也就是说CPU在执行RETI或访问IE、IP的指令后,至少需要再执行其它一条指令之后才会响应。
如果上述条件中有一个存在,CPU将丢弃中断查询的结果;若一个条件也不存在,接着的下一机器周期,中断查询结果变为有效。