新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 8051單片機的5個中斷源

8051單片機的5個中斷源

作者: 時間:2016-11-24 來源:網絡 收藏
當幾個中斷源同時向CPU請求中斷時,按所發(fā)生的實時事件的輕重緩急排隊,優(yōu)先處理最緊急事件的中斷請求,于是單片機規(guī)定每個中斷源的優(yōu)先級別。

當CPU正在處理一個中斷請求,又發(fā)生另一個優(yōu)先級比它高的中斷請求,CPU暫時中止對前一中斷處理,轉而去處理優(yōu)先級更高的中斷請求,待處理完后,再繼續(xù)執(zhí)行原來的中斷處理程序,這樣的過程稱為中斷嵌套,這樣的中斷系統(tǒng)稱為多級中斷系統(tǒng)。

本文引用地址:http://m.butianyuan.cn/article/201611/321037.htm

由于外界異步事件中斷CPU正在執(zhí)行的程序時隨機的,CPU轉向去執(zhí)行中斷服務程序時,除了硬件會自動把斷電地址,即16位PC程序計數(shù)器的值壓入堆棧之外,用戶還得注意保護有關工作寄存器,累加器,標志位等信息,這個過程通常稱為保護現(xiàn)場。以便在完成中斷服務程序后,恢復原工作寄存器,累加器,標志位等的內容,這個過程稱恢復現(xiàn)場;最后執(zhí)行中斷返回指令,自動彈出斷電到PC,返回主程序,繼續(xù)執(zhí)行被中斷的程序。

下面我們看看8051中斷系統(tǒng)結構及中斷控制:

8051單片機有五個中斷請求源,四個用于中斷控制的寄存器IE.IP.TCON和SCON,用于控制中斷的類型,中斷允許,中斷起停和各種中斷源的優(yōu)先級別。

五個中斷源有兩個優(yōu)先級,每個中斷源可以編程為高優(yōu)先級或低優(yōu)先級中斷,可以實現(xiàn)二級中斷服務程序嵌套。8051的中斷源包括:

INT0,INT1引腳輸入的外部中斷源

三個內部的中斷源,即定時器T0的溢出中斷源,定時器T1的溢出中斷源和串行口的發(fā)送/接收中斷源。關于內部中斷源我們以后再講,今天我們先學習外部中斷源。

 

從INT0,INT1引腳輸入的兩個外部中斷源和它們的觸發(fā)方式控制位鎖存在特殊功能寄存器TCON的低四位,其格式如下:

 

IE1,即TCON.3:

外部中斷INT1請求標志位。當CPU檢測到在INT1引腳上出現(xiàn)的外部中斷信號時,由硬件置位IE1=1,請求中斷。CPU執(zhí)行中斷服務程序后,IE1位被硬件自動清0.

IT1,即TCON.2:

外部中斷INT1請求類型,觸發(fā)方式控制位,由軟件來置1或清0,以控制外部中斷1的觸發(fā)類型。

IT1=0,外部中斷1被設置為電平觸發(fā)方式,當引腳INT1輸入低電平時,置位IE1,申請中斷。CPU在每個機器周期的S5P2期間采樣INT1的輸入電平,當采樣到低電平時,置IE1=1。采用電平觸發(fā)方式時,輸入到引腳INT1的外部中斷源必須保持電平有效,直到該直到程序被CPU響應。同時,在該中斷服務程序執(zhí)行完之前,外部中斷源有效電平必須被撤銷,否則將產生,另一次中斷。

IT1=1,外部中斷1被設置為邊緣觸發(fā)方式,CPU在每個機器周期采樣引腳INT1的電平。如果相繼的兩次采樣中,一個周期采樣到引腳INT1為高電平,接著下一個周期采樣到引腳INT1為低電平,INE1由硬件自動清0.因為每個機器周期采樣一次外部中斷輸入電平,外部中斷源輸入的高電平和低電平時間必須保持12個振蕩周期以上,才能保證CPU檢測到負跳變信號,即下降沿。

 

IEO,即TCON.1:外部中斷請求標志位。IE0=1時,外部中斷0向CPU請求中斷,當CPU響應外部中斷后,IE0由硬件清0。

ITO,即TCON.0:外部中斷0觸發(fā)方式控制位。IT0=0,外部中斷0被設置為邊沿觸發(fā)方式。IT0=1時,外部中斷0被設置為邊電平發(fā)方式。其功能和IT1類似。

 

中斷控制:除特殊功能寄存器TCON和SCON中某些位與中斷有關外,還有兩個特殊功能寄存器IE和IP專門用于中斷控制。

中斷允許IE:

8051單片機中,特殊功能寄存器IE位中斷允許寄存器,控制CPU對中斷源總的允許或禁止以及每個中斷源是否允許中斷。其格式為:

EA:中斷總允許位。EA=1,CPU允許中斷;EA=0,CPU禁止所有的中斷請求。

ES:串行中斷允許位。ES=1,允許串行口中斷;ES=0,禁止串行口中斷。

EX1:T0溢出中斷允許位。ET0=1,允許T0中斷;ET0=0,禁止T0中斷。

EX0::外部中斷允許位。EX0=1,允許外部中斷0中斷;EX0=0,禁止外部中斷0中斷。

8051系統(tǒng)復位后,IE中各位均被清0,即禁止所有中斷。

 

中斷優(yōu)先級設定寄存器IP。8051單片機具有兩個中斷優(yōu)先級,每個中斷源可編程為高優(yōu)先級中斷或低優(yōu)先級中斷,并可實現(xiàn)二級中斷嵌套。高優(yōu)先級中斷源可中斷正在執(zhí)行的低優(yōu)先級中斷服務程序;

同級或低優(yōu)先級的中斷源不能中斷正在執(zhí)行的中斷程序。為此,在8051中斷系統(tǒng)中,內部有兩個優(yōu)先級狀態(tài)觸發(fā)器,它們分別指示出CPU是否在執(zhí)行高優(yōu)先級或低優(yōu)先級中斷服務程序,從而分別屏蔽所有的中斷申請和同一級的其他中斷源申請。

特殊功能寄存器IP為中斷優(yōu)先級寄存器。

各中斷源優(yōu)先級的控制位,用戶可用軟件設定。其格式如下

 

PS:串行中斷優(yōu)先控制位。PS=1,設定串行口為高優(yōu)先級中斷;PS=0,為低優(yōu)先級。

PT1:T1中斷優(yōu)先控制位。PT1=1,設定定時器T1為高優(yōu)先級中斷;PT=0,為低優(yōu)先級。

TX1:外部中斷1中斷優(yōu)先級別控制位。PX1=1設定外部中斷1為高優(yōu)先級中斷;PC1=0,為低優(yōu)先級。

PT1:T1中斷優(yōu)先控制位。PT1=1,設定定時器T1為高優(yōu)先級中斷;PT1=0,為低優(yōu)先級。

PT0:T0中斷優(yōu)先控制位。PT1=1,設定定時器T0為高優(yōu)先級中斷;PT0=0,為低優(yōu)先級。

PX0:外部中斷中斷優(yōu)先控制位。PX0=1,設定INT1為高優(yōu)先級。PX0=0,為低優(yōu)先級。

 

8051復位后,IP低五位全部清0,將所有中斷源設置為低優(yōu)級中斷。

如果幾個同優(yōu)先級的中斷源同時向CPU申請中斷,哪一個申請得到服務,取決于它們在CPU內部動登記排隊的序號。CPU通過內部硬件查詢登記號,按自然優(yōu)先級決定優(yōu)先響應哪個中斷請求。自然優(yōu)先級按從高到低的順序依次為:外中斷0,定時器0,外中斷1,定時器1,串行中斷。



關鍵詞: 8051單片機中斷

評論


技術專區(qū)

關閉