在MCS-51系列单片机中,中断系统通常具有若干个中断源,但在同一时刻,CPU只能响应若干个中断源中的一个中断请求。为了避免在同一时刻出现若干个中断请求而混乱,每个中断源的中断请求赋予一个特定的优先级,中断源的优先级分为两级。CPU按照优先级高低来响应中断,实际应用中,可按照突发事件紧急程度安排相应优先级。
对每个中断源而言,可设置为高优先级中断或低优先级中断,可通过对中断优先级寄存器(IP)相应位置1或清0实现。IP中的控制位与各中断源一一对应。
当IP中的某一控制位的状态设定为1时,与之相应的中断源为高优先级中断;设定为0时,相应的中断源为低优先级中断。单片机开机/复位时,IP各位清0,各中断源均为低优先级中断。中断优先级寄存器IP地址为B8H,可位寻址,每一位有相应的位地址。其格式见表4-4。
表4-4 控制寄存器IP的格式
1)PX0:外部中断0优先级设定位。
2)PT0:定时/计数器T0中断优先级设定位。
3)PX1:外部中断1优先级设定位。
4)PT1:定时/计数器T1中断优先级设定位。
5)PS:串行接口中断优先级设定位。(www.xing528.com)
中断优先级及中断嵌套的执行:MCS-51系列单片机对同级中断源的优先权有规定,依次是外部中断0、定时器T0、外部中断1、定时器T1、串行接口中断、定时器T2,见表4-5。
表4-5 同级中断源的中断优先权结构
表4-3~表4-5中“∗”处的表示TF2+EXF2仅MCS-52有,是定时器T2的溢出中断和边沿检测中断通过“或”逻辑后产生的定时器T2中断。
图4-3 中断嵌套
当CPU执行中断服务程序时,又有优先级更高的中断申请服务,则CPU会中断当前的中断,进入高级的中断处理程序,待处理完毕后再恢复处理被中断的低级中断,实现中断嵌套,即高级中断能中断低级中断,如图4-3所示。如果新的中断请求是相同级别的或更低级别的,则CPU不予理睬,直至现行中断程序运行完毕后才去响应新的中断请求。
中断嵌套条件:首先是中断服务程序中没有关闭中断,中断系统处于开中断状态;其次要有中断优先级更高的中断请求发生。只要条件成立,这样的嵌套就可以发生多次。MCS-51系列单片机各中断源由IP寄存器编程设定为高优先级中断和低优先级中断,可实现两级中断嵌套。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。