51單片機的中斷控制
51系列單片機有5個中斷源,2個優(yōu)先級,可以實現(xiàn)二級中斷服務(wù)嵌套結(jié)構(gòu)。
現(xiàn)在很多兼容51的單片機已經(jīng)有4個優(yōu)先級(或更多)和更多的中斷源了。
---------------------
想要研究中斷的嵌套,應(yīng)該從中斷優(yōu)先級入手。
一些資料中,把有關(guān)中斷優(yōu)先級的中斷響應(yīng)原則,寫成如下三條:
1、CPU同時接收到幾個中斷申請時,首先響應(yīng)優(yōu)先級級別最高的中斷請求;
2、正在進行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷;
3、正在進行的低優(yōu)先級中斷過程,能被高優(yōu)先級中斷請求所中斷。
中斷優(yōu)先級的設(shè)置,是在IP寄存器中進行,IP稱為中斷優(yōu)先級控制寄存器。
把IP中的某位置為1,則相應(yīng)的中斷源為高優(yōu)先級;為0,則為低優(yōu)先級。
當把5個中斷源,劃分成兩個優(yōu)先級之后,它們的中斷程序之間,就可以呈現(xiàn)出嵌套的現(xiàn)象了。
根據(jù)前面所說的中斷響應(yīng)原則,可以看出:
出現(xiàn)中斷嵌套的要求比較高,只有高優(yōu)先級的中斷源,才可以中斷正在進行的低優(yōu)先級的中斷過程。
而同級別的中斷源,則不能互相中斷,不能形成中斷嵌套;低級別中斷申請,就更不能中斷高級別中斷過程的了。
中斷的優(yōu)先級,是個實現(xiàn)嵌套的關(guān)鍵因素。
---------------------
響應(yīng)中斷前,CPU首先要查詢各個中斷源的申請標志。
當各個中斷源的級別相同的時候,CPU的查詢次序是:
外部中斷0、定時/計數(shù)0、外部中斷1、定時/計數(shù)1 和 串行接口
這個次序稱為“自然優(yōu)先級”。
“自然優(yōu)先級”,并非是“優(yōu)先級”。
自然優(yōu)先級的不同,并不能引出中斷的嵌套現(xiàn)象,因為它們的“優(yōu)先級”是相同的。
----------------------
根據(jù)前面所介紹的可知:
優(yōu)先級,能夠影響中斷的嵌套;
自然優(yōu)先級,只是CPU查詢的次序,不影響中斷的嵌套。
----------------------
在百度知道中,發(fā)現(xiàn)有些網(wǎng)友對此基本概念不很清楚。
網(wǎng)友用“自然優(yōu)先級”,代替了“優(yōu)先級”,來討論中斷嵌套的問題,這個觀點是明顯錯誤的。
為了澄清基本概念,做而論道特寫出本篇短文,觀點正確與否,希望各位網(wǎng)友留言討論。