12.中斷系統

中斷:
CPU在處理某一事件A時,發生了另一事件B請求CPU迅速去處理(中斷髮生);CPU暫時中斷當前的工作,轉去處理事件B(中斷響應和中斷服務);待CPU將事件B處理完畢後,再回到原來事件A被中斷的地方繼續處理事件A(中斷返回),這一過程稱爲中斷 。
引起CPU中斷的根源,稱爲中斷源。中斷源向CPU提出中斷請求。CPU暫時中斷原來的事件A,轉去處理事件B。對事件B處理完畢後,再回到原來被中斷的地方(即斷點),稱爲中斷返回。實現上述中斷功能的部件稱爲中斷系統
特點:
分時操作。CPU可以分時爲多個I/O設備服務,提高了計算機的利用率;
實時響應。CPU能夠及時處理應用系統的隨機事件,系統的實時性大大增強;
可靠性高。CPU具有處理設備故障及掉電等突發性事件能力,從而使系統可靠性提高。
5箇中斷源:
從上至下依次爲:外部中斷0,計數器定時器0,外部中斷1,計數器定時器1,串行通信中斷RX、TX。優先級從上往下遞減。
在這裏插入圖片描述
外部中斷0接在P32口(P3口很多第二功能管腳)IT0(TCON.0)用來選擇低電平有效或者下降沿有效。當CPU檢測到P3.2引腳上出現有效的中斷信號時,中斷標誌IE0(TCON.1)置1,向CPU申請中斷。
外部中斷1接在P33口,IT1(TCON.2)選擇其爲低電平有效還是下降沿有效。當CPU檢測到P3.3引腳上出現有效的中斷信號時,中斷標誌IE1(TCON.3)置1,向CPU申請中斷。
TF0(TCON.5),片內定時/計數器T0溢出中斷請求標誌。當定時/計數器T0發生溢出時,置位TF0,並向CPU申請中斷。
TF1(TCON.7),片內定時/計數器T1溢出中斷請求標誌。當定時/計數器T1發生溢出時,置位TF1,並向CPU申請中斷。
RI(SCON.0)或TI(SCON.1),串行口中斷請求標誌。當串行口接收完一幀串行數據時置位RI或當串行口發送完一幀串行數據時置位TI,向CPU申請中斷。
CPU中斷允許控制
在這裏插入圖片描述
EX0(IE.0),外部中斷0允許位;
ET0(IE.1),定時/計數器T0中斷允許位;
EX1(IE.2),外部中斷1允許位;
ET1(IE.3),定時/計數器T1中斷允許位;
ES(IE.4),串行口中斷允許位;
EA (IE.7), CPU中斷允許(總允許)位。
中斷請求標誌
TCON的中斷標誌
在這裏插入圖片描述
IT0(TCON.0),外部中斷0觸發方式控制位。
當IT0=0時,爲電平觸發方式。
當IT0=1時,爲邊沿觸發方式(下降沿有效)。
IE0(TCON.1),外部中斷0中斷請求標誌位。
IT1(TCON.2),外部中斷1觸發方式控制位。
IE1(TCON.3),外部中斷1中斷請求標誌位。
TF0(TCON.5),定時/計數器T0溢出中斷請求標誌位。
TF1(TCON.7),定時/計數器T1溢出中斷請求標誌位。
同一優先級中的中斷申請不止一個時,則有中斷優先權排隊問題。同一優先級的中斷優先權排隊,由中斷系統硬件確定的自然優先級形成,其排列如所示:
在這裏插入圖片描述
中斷源:(中斷號用於程序的編寫)
在這裏插入圖片描述
中斷優先級的三條原則
1.CPU同時接收到幾個中斷時,首先響應優先級別最高的中斷請求。
2.正在進行的中斷過程不能被新的同級或低優先級的中斷請求所中斷。
3.正在進行的低優先級中斷服務,能被高優先級中斷請求所中斷。

爲了實現上述後兩條原則,中斷系統內部設有兩個用戶不能尋址的優先級狀態觸發器。其中一個置1,表示正在響應高優先級的中斷,它將阻斷後來所有的中斷請求;另一個置1,表示正在響應低優先級中斷,它將阻斷後來所有的低優先級中斷請求。

中斷響應條件:
1、中斷源有中斷請求;
2、此中斷源的中斷允許位爲1;
3、CPU開中斷(即EA=1)。
以上三條同時滿足時,CPU纔有可能響應中斷。

以外部中斷0爲例:

EA=1;//打開總中斷開關
EX0=1;//打開外部中斷0
IT0=0/1;//設置外部中斷的觸發方式,0或1,0爲電平觸發,1爲下降沿觸發
...
//中斷服務函數:
void int0 () interrupt 0
{
	do anything that you want;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章