图1 中断系统结构 由图1结构可知,51单片机有五个中断请求源,四个用于中断控制的寄存器IE、IP、TCON(用6位)和SCON(用2位)―用于控制中断的类型、中断的开/关和各种中断源的优先级别。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序的嵌套。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将丢弃中断查询的结果;若一个条件也不存在,接着的下一机器周期,中断查询结果变为有效。 |