5.1 中斷概念
中斷是指計算機運行過程中,出現某些意外情況需主機干預時,機器能自動停止正在運行的程序并轉入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續運行,以一個例子來說明什么叫做中斷。
假設一個人在家看電視,這時候突然門鈴響了,這個人此時就要停止看電視去開門,然后關上門后繼續回來看電視,這個例子當中看電視這個動作就是常規的計算機運行過程,門鈴響就相當于一個中斷信號(中斷請求),用戶這時停止看電視(中斷當前程序)起來開門(中斷響應),關上門后(中斷處理結束)繼續看電視(繼續執行當前程序)。這一整個過程就是中斷發生時,CPU的處理方式。
還是上面的例子,現在假設門鈴響的時候水燒開了,此時用戶可以選擇先開門后關水,也可以選擇先關水后開門,這個先后關系就是中斷優先級,假設門鈴的中斷優先級比燒水的優先級高,那就會先開門,后關水,反之,則會先關水,后開門,這就是針對兩個及兩個以上中斷同時發生的時候CPU根據中斷優先級執行中斷的過程。
CPU在處理某一件事件A時,發生了另外一件事件B請求CPU迅速去處理(中斷發生),此時CPU暫時中斷當前的工作,轉過去處理事件B(中斷響應與中斷服務),等到CPU將事件B處理結束后,再回到原來事件A被中斷的地方繼續處理事件A(中斷返回),這一過程叫做中斷。
傳統51單片機具有5個中斷源,中斷優先級從高到低依次是:外部中斷0(interrupt0)、定時器0(interrupt1)、外部中斷1(interrupt2)、定時器1(interrupt3)和串口中斷(interrupt4)。
引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷請求。CPU暫時中斷原來的事務A,轉去處理事件B。對事件B處理完畢后,再回到原來被中斷的地方(即斷點),稱為中斷返回。實現上述中斷功能的部件稱為中斷系統(中斷機構)。
5.2 51單片機中斷簡介
51單片機的中斷結構圖如下圖所示。
從圖中可知配置外部中斷必須先配置IT0(或者IT1,定時器與串口沒有這一項),根據賦值選擇觸發方式,外部中斷的觸發方式總共有兩種,下降沿觸發與高電平觸發,然后配置對應的中斷使能,EX0,ET0,EX1,ET1,ES,最后開啟總中斷EA即可。
5.3 外部中斷相關寄存器
5.3.1 中斷控制寄存器IE
寄存器地址:0xA8
Bit 7:總中斷使能
0:關閉
1:開啟
Bit 4:串口中斷使能
0:關閉
1:開啟
Bit 3:定時器1中斷使能
0:關閉
1:開啟
Bit 2:外部中斷1中斷使能
0:關閉
1:開啟
Bit 1:定時器0中斷使能
0:關閉
1:開啟
Bit 0:外部中斷0中斷使能
0:關閉
1:開啟
5.3.2 中斷標志寄存器TCON
寄存器地址:0x88
Bit 7:定時/計數器1溢出中斷請求標志位
0:沒有產生中斷
1:產生中斷
Bit 6:定時/計數器1使能
0:定時/計數器1關閉
1:定時/計數器1使能
Bit 5:定時/計數器0溢出中斷請求標志位
0:沒有產生中斷
1:產生中斷
Bit 4:定時/計數器0使能
0:定時/計數器0關閉
1:定時/計數器0使能
Bit 3:外部中斷1中斷請求標志位
0:沒有產生中斷
1:產生中斷
Bit 2:外部中斷1觸發方式控制位
0:電平觸發方式
1:邊沿觸發方式(下降沿有效)
Bit 1:外部中斷0中斷請求標志位
0:沒有產生中斷
1:產生中斷
Bit 0:外部中斷0觸發方式控制位
0:電平觸發方式
1:邊沿觸發方式(下降沿有效)
5.3.3 中斷優先級控制寄存器IP
寄存器地址:0xB8
Bit 5:定時/計數器2優先級設置
Bit 4:串口優先級設置
Bit 3:定時/計數器1優先級設置
Bit 2:外部中斷1優先級設置
Bit 1:定時/計數器0優先級設置
Bit 0:外部中斷0優先級設置
5.4 例程分析
5.4.1 原理圖
5.4.2 實現的功能
沒有中斷發生時,D1~D8按順序循環點亮,每次只亮一個LED,當按鍵按下時,LED燈全亮1s,1s后從LED燈斷開的位置繼續循環點亮(不允許從從開始點亮)。
5.4.3 源代碼
更多信息可以來這里獲取==>>電子技術應用-AET<<