CPU对中断源的开放或中断屏蔽的控制是通过中断允许寄存器IE设置的,IE既可按字节地址寻址(其字节地址为A8H),又可按位寻址。AT89S52单片机中的6个中断矢量都是可屏蔽中断,通过对IE的某些位置位和清0,允许或禁止某个中断,当对IE的EA位清0时,屏蔽全部中断源。IE中各标志位功能如表1所示:
表1 IE中的中断请求标志位
例:开放外部中断0
字节操作:MOV IE,#81H 或 MOV 0A8H,#81H
位操作:SETB EA SETB EX0
二、AT89S52的优先级寄存器IP
AT89S52单片机的中断系统提供两个中断优先级,对于每一个中断请求源都可以编程为高优先级中断源或低优先级中断源,以便实现两级中断嵌套。中断优先级是由片内的中断优先级寄存器IP(特殊功能寄存器)控制的。IP寄存器字节地址位B8H,可以位寻址。IP各标志位的功能如表2所示:
表2 IP寄存器中优先级标志
AT89S52中断系统具有两级优先级(由IP寄存器把各个中断源的优先级分为高优先级和低优先级),它们遵循下列两条基本规则:
(1)低优先级中断源可被高优先级中断源所中断,而高优先级中断源不能被任何中断源所中断;
(2)一种中断源(不管是高优先级或低优先级)一旦得到响应,与它同级的中断源不能再中断它。
为了实现上述两条规则,中断系统内部包含两个不可寻址的优先级状态触发器。其中一个用来指示某个高优先级的中断源正在得到服务,并阻止所有其它中断的响应;另一个触发器则指出某低优先级的中断源正得到服务,所有同级的中断都被阻止,但不阻止高优先级中断源。当同时收到几个同一优先级的中断时,响应哪一个中断源取决于内部查询顺序。其优先级排列如表3。
表3 中断优先顺序