在中断系统中一定会用到的寄存器就是IE,因为IE寄存器中有中断的总开关(EA)。
EA:CPU的总中断允许控制位,EA=1时,CPU开放中断(允许中断的发生),EA=0时,屏蔽所有的中断申请。同理以下其他允许位,置1时开放对应中断,置0时屏蔽对应中断。
ELVD:电压检测中断允许位 EADC:A/D转换中断允许位 ES:串行口1中断允许
ET1:定时/计数器T1中断允许位 EX1:外部中断1中断允许位
ET0:定时/计数器T0中断允许位 EX0:外部中断0中断允许位
各中断源首先受EA控制,其次还受各中断源自己的中断允许控制位控制。形象点说,就相当于家里电表的总闸和其他的电闸。(除了IE,还有IE2等其他中断允许寄存器)
之前说到设置不同优先级的中断,可以实现中断嵌套。
而中断的优先级设置就和中断优先级控制寄存器IP、IP2有关了,以IP为例
PPCA:PCA中断优先级控制位 PLVD:低压检测中断优先级控制位
PADC:A/D转换中断优先级控制位 PS:串口1中断优先级控制位
PT1:定时器1中断优先级控制位 PX1:外部中断1中断优先级控制位
PT0:定时器0中断优先级控制位 PX0:外部中断0中断优先级控制位
以上控制位置1时,对应的中断为最高优先级;置0时,对应的中断为最低优先级。值得一提的是,在中断系统中还引入了查询次序,但CPU面对多个同级的中断请求时,会优先响应查询次序号小的中断请求,相当于引入一套辅助系统。中断服务程序在执行的过程中只会被更高中断优先级的中断请求中断,不会被同级或低级的中断请求中断(最高优先级,最低优先级)。
以下是各中断的查询次序号:
(若有不足和错误,还请各位斧正)