51單片機 | 中斷系統概念及結構


————————————————————————————————————————————

中斷的過程:

對於單片機來講,中斷是指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個機器周期。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM