10.1.4 中断优先级标志及其C51访问
51系列单片机支持两级中断优先级,其5个中断请求,分别对应一个中断优先级标志位。中断优先级标志由寄存器IP来控制,用于设置中断的优先等级。
中断优先级控制寄存器IP各位的定义,如图10.4所示。其字节地址为B8H,可以位寻址。其中D7~D5位未定义,D4~D0位分别控制各个中断请求。下面分别介绍各位的定义。
图 10.4 控制寄存器IP的格式
❑PS(D4,位地址BCH):串行接口中断优先级设置位。当置PS=0时,将该中断源定义为低优先级;当置PS=1时,将该中断源定义为高优先级。
❑PT1(D3,位地址BBH):定时器/计数器T1优先级设置位。当置PT1=0时,将该中断被定义为低优先级;当置PT1=1时,将该中断源定义为高优先级。
❑PX1(D2,位地址BAH):外部中断1优先级设置位。当置PX1=0时,将该中断源定义为低优先级;当置PX1=1时,将该中断源定义为高优先级。
❑PT0(D1,位地址B9H):定时器/计数器T0优先级设置位。当置PT0=0时,将该中断源定义为低优先级;当置PT0=1时,将该中断源定义为高优先级。
❑PX0(D0,位地址B8H):外部中断0优先级设置位。当置PX0=0时,将该中断源定义为低优先级;当置PX0=1时,将该中断源定义为高优先级。
在KeilµVision3集成开发环境中,头文件reg51.h中包含了对特殊功能寄存器IP及其各位的声明,示例如下。
sfr IP=0xB8;//定义IP
sbit PS=0xBC;//串行接口中断优先级设置位
sbit PT1=0xBB;//定时器/计数器T1优先级设置位
sbit PX1=0xBA;//外部中断1优先级设置位
sbit PT0=0xB9;//定时器/计数器T0优先级设置位
sbit PX0=0xB8;//外部中断0优先级设置位
因此,在程序中加入该头文件后,便可以在C51程序中直接对这些位进行操作,示例如下。
PT1=1//定时器/计数器T1为高优先级
该语句直接为PT1赋值1,用于设置定时器/计数器T1为高优先级。