芯片破解8XC51GB中断系统
8XC51GB有15个中断源,对应有15个固定的中断矢量地址(见图10.8)。其中有7个外部中断是INT0~INT6,外部中断引脚与端口3和端口5引脚的功能复用;有8个内部中断,它们分别是3个定时器中断(定时器T0、T1、T2)、2个可编程定时计数器阵列中断(PCA、PCA1)、1个串行口中断、1个SEP中断和1个A/D中断。下面分别对各个中断作简要介绍。
芯片破解外部中断INT0、INT1:这两个中断都可以由电平触发或跳变沿触发,具体触发方式决定于寄存器TCON中IT0和IT1两位的值。
图10.8中断源
外部中断INT2、INT3:这两个中断都可设置为上升沿或下降沿触发,具体触发方式由中断控制寄存器EXICON中IT2和IT3两位的值决定。
外部中断INT4、INT5、INT6:这三个中断都是由上升沿触发的。
外部中断控制器EXICON格式如图10.9所示。
EXICON各位作用如下:
IE2~IE6:外部中断INT2~INT6中断请求标志位。当外部中断请求有效时,由硬件置位,而CPU响应中断后,由硬件自动清“0”。
IT3、IT2:INT3、INT2中断类型控制位。若设置为“1”,则设定为正跳变触发中断,反之设定为负跳变触发中断。
内部定时器T0、T1、T2与外部中断控制方式不同,分别介绍如下:
定时器T0和定时器T1:这两个中断由寄存器TCON中TF0和TF1产生,TF0和TF1在相应的定时/计数器溢出时被置“1”(定时器0方式3除外),TF0和TF1在响应中断后由硬件清“0”。
定时器T2:该中断由寄存器T2CON中TF2和EXT2两位的逻辑或产生。响应中断后,中断标志不能硬件清“0”,必须由软件清“0”。
PCA和PCA1中断:PCA中断是可编程定时/计数器阵列中断,它由CCON中的CF、CCF0、CCF1、CCF2、CCF3和CCF4这6位逻辑或产生;PCA1中断由C1CON中的CF1、C1CF0、C1CF1、C1CF2、C1CF3和C1CF4的逻辑或产生。PCA/PCA1中断是否有效决定于EC/EC1,在CPU进入中断服务程序时,只能靠软件识别是由哪个标志位产生的,并用软件将它清“0”。
芯片破解串行口中断:串行口中断由寄存器SCON中RI和TI的逻辑或产生。
SEP中断:该中断由寄存器SEPSTA中SEPIF产生。SEPIF位在串行扩展口发送或接收结束时被置“1”,它不能由硬件清“0”,必须由用户软件清“0”。
A/D中断:该中断由寄存器ACON中AIE产生,在8个通道A/D转换周期的最后,AIF被置“1”,AIF必须由用户软件清“0”。
上述产生中断的所有标志位都可由软件置“1”或清“0”,也就是说,中断可以由软件产生,正在进行的中断也可由软件中断。