擴展的51單片機的中斷優(yōu)先級及中斷嵌套

2013-09-02 15:57 來源:電子信息網(wǎng) 作者:和靜

說最基本的,老的51單片機(80C51系列)有5個中斷源,2個優(yōu)先級,可以實現(xiàn)二級中斷服務(wù)嵌套。現(xiàn)在很多擴展的51單片機已經(jīng)有4個優(yōu)先級(或更多)和更多的中斷源了。

在說到中斷之前,我先來定義一下優(yōu)先級,明白了什么是優(yōu)先級,后面的闡述就容易明白了。實際上很多人都是混淆了優(yōu)先級的含義,所以才覺得糊里糊涂。

中斷的優(yōu)先級有兩個:查詢優(yōu)先級和執(zhí)行優(yōu)先級。

什么是查詢優(yōu)級呢?我們從datasheet或書上看到的默認(IP寄存器不做設(shè)置,上電復位后為00H)的優(yōu)先級:

外部中斷0 > 定時/計數(shù)器0 > 外部中斷1 > 定時/計數(shù)器1 > 串行中斷

或 int0,timer0,int1,timer1,serial port 或 INT0、T0、INT1、T1、UART

或 PX0>PT0>PX1>PT1>PS>......

其實都是查詢優(yōu)級。首先查詢優(yōu)先級是不可以更改和設(shè)置的。這是一個中斷優(yōu)先權(quán)排隊的問題。是指多個中斷源同時產(chǎn)生中斷信號時,中斷仲裁器選擇對哪個中斷源優(yōu)先處理的順序。而這與是否發(fā)生中斷服務(wù)程序的嵌套毫不相干。當CPU查詢各個中斷標志位的時候,會依照上述5個查詢優(yōu)先級順序依次查詢,當數(shù)個中斷同時請求的時候,會優(yōu)先查詢到高優(yōu)查詢先級的中斷標志位,但并不代表高查詢優(yōu)先級的中斷可以打斷已經(jīng)并且正在執(zhí)行的低查詢優(yōu)先級的中斷服務(wù)。

例如:當計數(shù)器0中斷和外部中斷1(按查詢優(yōu)先級,計數(shù)器0中斷>外部中斷1)同時到達時,會進入計時器0的中斷服務(wù)函數(shù);但是在外部中斷1的中斷服務(wù)函數(shù)正在服務(wù)的情況下,這時候任何中斷都是打斷不了它的,包括邏輯優(yōu)先級比它高的外部中斷0計數(shù)器0中斷。

而中斷的執(zhí)行優(yōu)先級就是你對IP寄存器的設(shè)置了。在2個優(yōu)先級的情況下,某位為1,則相應(yīng)的中斷源為高優(yōu)先級;為0,則為低優(yōu)先級。

1 2 3 > 
51單片機 中斷嵌套

相關(guān)閱讀

暫無數(shù)據(jù)

一周熱門