首页 理论教育中断优先级控制:单片机基础及应用

中断优先级控制:单片机基础及应用

【摘要】:中断优先级的控制或设置由中断允许控制寄存器IE、优先级控制寄存器IP的设置和同一优先级中的优先顺序决定。表6-3同级中断的优先顺序表2.中断优先级的控制原则1)当CPU正在执行中断服务程序时,又有中断优先级更高的中断申请产生,这时CPU就会暂停当前的中断服务转而处理高优先级的中断申请,待高优先级中断处理程序完毕再返回原中断程序断点处继续执行,即可以中断嵌套。

中断优先级的控制或设置由中断允许控制寄存器IE、优先级控制寄存器IP的设置和同一优先级中的优先顺序决定。

1.同级内的优先顺序

同级内的优先顺序即每执行完一条指令后同一级查询中断标志位的顺序,先查询的被先响应,如表6-3所示。

表6-3 同级中断的优先顺序表

2.中断优先级的控制原则

1)当CPU正在执行中断服务程序时,又有中断优先级更高的中断申请产生,这时CPU就会暂停当前的中断服务转而处理高优先级的中断申请,待高优先级中断处理程序完毕再返回原中断程序断点处继续执行,即可以中断嵌套

2)当CPU正在执行中断服务程序时,同优先级或低优先级中断申请时不会被响应,当正在执行的中断程序完后,如果没有高优先级的中断申请才会被响应。

3)同优先级内的优先顺序按表6-3所示先响应优先级高的。

3.定义中断优先的原则

对于具体的实际应用系统,定义其中断优先的原则如下:

1)中断的轻重缓急程度。当某一中断产生后对系统、生产或安全产生致命性的或非常严重的后果,应设置其为高优先级,对局部产生小的影响时应设置其为低优先级。(www.chuimin.cn)

2)中断处理的工作量。中断处理工作量小的占用CPU的时间短,设置为高优先级;中断处理工作量大的占用CPU的时间长,设置为低优先级。

3)中断设备的工作速度。快速设备要及时响应,否则可能丢失数据,应设置为高优先级,反之低速设备应设置为低优先级。

4)中断发生的频繁程度。把中断发生频率低的设为高优先级,把中断发生频率高的设为低优先级,有利于其他中断的及时响应,对响应其他中断的影响小些。

5)中断发生的场合。根据应用系统的特点,在程序的不同位置可以定义不同的中断优先顺序。

【例6-1】某软件中对寄存器IE、IP设置如下:

试确定中断的优先顺序并说明之。

【解】由IE为#8FH可知:EA=1即CPU中断允许,EX0=1,EX1=1,ET0=1,ET1=1。说明外部中断0、外部中断1、定时器/计数器0、定时器/计数器1的中断允许,ES=0即串行中断不允许,中断的优先顺序与串行中断无关。

由IP为#06H可知:PX1=1,PT0=1,说明外部中断1、定时器/计数器0为高优先级;PT1=0,PX0=0,说明定时器/计数器1、外部中断0为低优先级,即外部中断1、定时器/计数器0的中断均可以打断正在响应的定时器/计数器1和外部中断0的中断。

按照同优先级由高到低的优先顺序(外部中断0>定时器/计数器0>外部中断1>定时器/计数器1>串行中断)可知:高优先级中断由高到低的优先顺序为定时器/计数器0>外部中断1,低优先级中断由高到低的优先顺序为外部中断0>定时器/计数器1。

综上所述,中断的优先顺序为:定时器/计数器0>外部中断1>外部中断0>定时器/计数器1,即每执行完一条指令查询中断的顺序。