中斷的過程:
對于單片機來講,中斷是指CPU在處理某一時間A時,發生了另一事件B請求CPU立刻去處理(中斷發生);CPU暫時停止當前的工作(中斷響應),轉而去處理事件B(中斷服務),待CPU處理事件B完成后,再回到原來事件A被中斷的地方繼續處理事件A(中斷返回)。
① 中斷源 // 5個中斷源都有一個中斷入口地址,當某個中斷源產生中斷時,CPU響應中斷便到相應的中斷入口地址執行中斷服務程序
② 中斷的嵌套與優先級處理
③ 中斷的響應過程
中斷系統結構
外部中斷請求源:INT0、INT1
外部中斷0(INT0)由外部引腳P3.2引入,外部中斷1(INT1)由外部引腳P3.3引入
內部中斷請求源:T0、T1、串口中斷
程序定義方式
定義中斷函數的一般形式
void 函數名() interrupt 中斷號 using 寄存器工作組
p.s.如果中斷函數中調用了其他函數,則被調用函數所使用的寄存器組必須與中斷函數相同。中斷函數不能參數傳遞,沒有返回值,不能直接被調用。
中斷序號
中斷優先級
中斷系統寄存器
TCON:低4位給外部中斷請求源使用,高4位給內部中斷請求源定時器T0 T1使用
外部請求源
IT0:INT0觸發方式控制位,可由軟件進行置位和復位。IT0=0時,INT0為低電平觸發方式。IT0=1時,INT0為負跳變觸發方式。
IE0:INT0中斷請求標志位。當有外部的中斷請求時,該位置1(這由硬件來完成),在CPU響應中斷后,由硬件將IE0清0。
IT1、IE1的用途和IT0、IE0相似。
內部請求源
TF0:定時/計數器T0溢出中斷標記,當T0產生溢出時,TF0置位。當CPU響應中斷后,硬件將TF0復位
TR0:T0的開閉控制位,TR0=1時定時計數器打開,TR0=0時定時計數器關閉
TF1、TR1與TF0、TR0相似。
SCON:低2位與串口中斷相關
內部請求源
TI、RI:串行口發送、接收中斷
IE:中斷允許寄存器
EA:中斷總控制位。EA=1,CPU開放所有中斷;EA=0,CPU禁止所有中斷。
ES:串行口中斷控制位。ES=1,允許串行口中斷;ES=0,屏蔽串行口中斷。
ET1:定時/計數器TI中斷控制位。ET1=1,允許T1中斷;ET1=0,禁止T1中斷。
EX1:外部中斷1中斷控制位。EX1=1,允許外部中斷1中斷;EX1=0,禁止外部中斷1中斷。
ET0:定時/計數器T0中斷控制位。ET0=1,允許T0中斷;ET0=0,禁止T0中斷。
EX0:外部中斷0中斷控制位。EX0=1,允許外部中斷0中斷;EX0=0,禁止外部中斷0斷。
IP:中斷優先級寄存器
在該寄存器中,優先級分為1 0兩級,對應的位置為1則為高優先級,位置為0則為低優先級。執行時先將高優先級的中斷執行完后才會執行低優先級(同樣高優先級情況下,按默認優先級排)。
PS:串行口中斷優先級控制位
PT1:定時器1優先級控制位
PX1:外部中斷1優先級控制位
PT0:定時器0優先級控制位
PX0:外部中斷0優先級控制位
補充:
外部中斷的觸發方式選擇
電平觸發方式(低電平觸發)
CPU在每個機器周期采樣到的外部中斷輸入線的電平。在中斷服務程序返回之前,外部中斷請求輸入必須無效(即變為高電平),否則CPU返回主程序后會再次響應中斷。
適于外中斷以低電平輸入且中斷服務程序能清除外部中斷請求(即外部中斷輸入電平又變為高電平)的情況。
跳沿觸發方式
連續兩次采樣,一個機器周期采樣到外部中斷輸入為高,下一個機器周期采樣為低,則置“1”中斷請求標志,直到CPU響應此中斷時,該標志才清0。這樣不會丟失中斷,但輸入的負脈沖寬度至少保持1個機器周期。
編輯:hfy
-
單片機
+關注
關注
6032文章
44525瀏覽量
633261 -
寄存器
+關注
關注
31文章
5325瀏覽量
120052 -
cpu
+關注
關注
68文章
10829瀏覽量
211196 -
中斷系統
+關注
關注
1文章
96瀏覽量
61008
發布評論請先 登錄
相關推薦
評論