在單片機控制系統中,對于有可能發生,但又不能确定其是否發生、何時發生的事件處理,通常采用中斷方式處理。
一、中斷的概念
CPU在處理某一事件A時,發生了另一事件B請求CPU迅速去處理(中斷發生);
CPU暫時中斷當前的工作,轉去處理事件B(中斷響應和中斷服務);
待CPU将事件B處理完畢後,再回到原來事件A被中斷的地方繼續處理事件A(中斷返回),這一過程稱為中斷 。
中斷系統是單片機的重要組成部分,它使單片機具有實時中斷處理能力,進行實時控制,故障自動處理等。下面介紹中斷系統的幾個基本概念。
1、中斷源
1、中斷源和中斷請求标志
MCS-51單片機的5個中斷源及中斷請求标志見表,其中兩個是外部中斷源,另外3個屬于内部中斷源。
MCS-51的5個中斷源的中斷請求标志位位于定時器控制寄存器TCON和串行口控制寄存順SCON中,TCON及SCON中各位的名稱如表所示。
TF1(TF0):定時/計數器T1(T0)的溢出中斷請求标志位,當T1/T0計數産生溢出時,由硬件将TF1(TF0)置1,向CPU請求中斷。當CPU響應其中斷後,由硬件将TF1(TF0)自動清0。
IE1(IE0):外部中斷1(外部中斷0)的中斷請求标志位。IE1(IE0)=1,表示外部中斷1(外部中斷0)請求中斷,當CPU響應其中斷後,由硬件将IE1(IE0)自動清0;IE1(IE0)=0,表示外部中斷沒有請求中斷。
IT1(IT0):外部中斷1(0)的中斷觸發方式控制位。若将IT1(IT0)置0,則外部中斷1(0)為電平觸發方式。若将IT1(IT0)置1,則外部中斷1(0)為邊沿觸發方式。
TI:串行口發送中斷請求标志位。當串行口發送完一幀數據後,由硬件将TI置1,向CPU請求中斷。CPU響應中斷後,必須用軟件将TI清0。
RI:串行口接收中斷請求标志位。當串行口接收完一帖數據後,由硬件将RI置1,向CPU請求中斷。CPU響應中斷後,必須用軟件将RI清0。
2、中斷的開放和關閉
MCS-51單片機中斷的開放與關閉是由中斷允許寄存器IE的相應位來進行控制的。IE中各位的名稱如表所示。
IE中各位的定義如下:
EA:中斷允許總控制位。EA=1時,開放所有的中斷請求,但是否允許各中斷源的中斷請求,還要取決于各中斷源的中斷允許控制位的狀态。
ES:串行口中斷允許位。
ET1(ET0):定時器T1(T0)中斷允許位。
EX1(EX0):外部中斷1(0)中斷允許位。
中斷允許位為0時關閉相應中斷,為1時開放相應中斷。單片機系統複位後,IE中各中斷允許位均被清0,即關閉所有中斷。如需要開放相應中斷源,則應使用軟件進行置位。例如開放外部中斷0和定時器1,可使用如下指令:
EA=1; //開放總允許
EX0=1; //開放外部中斷0中斷
ET1=1; //開放定時器1中斷
或者
IE=0x85; //将相應位置1,開放相應中斷
3、中斷源的優先級控制
51單片機的中斷源可設置為兩個中斷優先級:高優先級中斷和低優先級中斷,從而可實現兩級中斷嵌套。
中斷優先級控制寄存器IP中各位的名稱如表所示。
IP中各位的定義如下:
PT0(PT1):定時器0(1)的中斷優先級控制位。
PX1(PX0):外部中斷1(0)的中斷優先級控制位。
PS:串行口的中斷優先級控制位。
中斷控制位為1時,相應中斷為高優先級,為0時相應中斷為低優先級。可以通過指令将相應位置1或清0。單片機複位後,IP全部清0。
4、響應中斷的條件
單片機響應中斷時,必須滿足以下幾個條件:
(1)有中斷源發出中斷請求。
(2)中斷允許總控制位及申請中斷的中斷源的中斷允許位均為1。
(3)沒有同級别或更高級别的中斷正在響應。
(4)必須在當前的指令執行完後,才能響應中斷。若正在執行RETI或訪問IE、IP的指令,則必須再另外執行一條指令後才可以響應中斷。
5、中斷響應遵循的規則
中斷響應遵循如下規則:
先高後低,停低轉高,高不理低、自然順序。
自然優先級按從低到高的順序是:串行口→定時器T1→外部中斷1→定時器T0→外部中斷0
6、中斷響應過程
CPU響應中斷時,由硬件自動執行如下操作:
(1)保護斷點,即把程序計數器PC的内容壓入堆棧保存。
(2)清内部硬件可清除的中斷請求标志位(IE0、IE1、TF0、TF1)。
(3)将被響應的中斷源的中斷服務程序入口地址送入PC,從而轉移到相應的中斷服務程序執行。
MCS-51單片機各中斷源中斷入口地址
7、中斷系統應用注意事項
在應用中斷系統時應在設計硬件和軟件時考慮解決如下問題:
(1)明确任務,确定采用哪些中斷源及中斷觸發方式。
(2)中斷優先級分配。
(3)中斷服務程序要完成的任務。
(4)程序初始化設置即開放相關中斷源。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!