中断优先级寄存器(IP)
IP寄存器结构
IP寄存器是一个8位寄存器,每个位控制一个中断源的优先级:
- IP.0: 外部中断0(PX0)
- IP.1: 定时/计数器0(PT0)
- IP.2: 外部中断1(PX1)
- IP.3: 定时/计数器1(PT1)
- IP.4: 串行口中断(PS)
当某位设置为1时,表示对应的中断源为高优先级;当设置为0时,表示低优先级。
当IP设置为0AH(0000 1010二进制)时,表示:
IP.3 (ET1) = 1:定时/计数器1高优先级
IP.2 (EX1) = 0:外部中断1低优先级
IP.1 (ET0) = 1:定时/计数器0高优先级
IP.0 (EX0) = 0:外部中断0低优先级
在这种情况下,定时/计数器0和定时/计数器1都是高优先级。根据中断优先级规则,如果两个中断有相同的优先级,则根据它们在硬件中的排列顺序,优先处理较早的中断。因此,定时/计数器0的优先级最高。
实例分析
假设我们有一个系统需要处理定时任务和串行通信。定时任务要求严格的实时性,因此我们将定时/计数器0设置为高优先级,而串行通信为低优先级。
示例代码
以下是一个简单的示例程序,演示如何设置和使用中断优先级: