第6章 中斷與中斷系統_第1頁
第6章 中斷與中斷系統_第2頁
第6章 中斷與中斷系統_第3頁
第6章 中斷與中斷系統_第4頁
第6章 中斷與中斷系統_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

單片機原理及應用2012-2013-1第六章中斷與中斷系統學習要求了解中斷有關的基本概念掌握MCS-51系列單片機中斷系統的硬件結構掌握CPU對中斷響應的步驟掌握中斷服務程序的一般格式2第一節中斷與中斷系統的基本概念一、中斷的概念生活實例:你打開火,燒上一壺水,然后去洗衣服,在洗衣服過程中,突然聽到水壺發出開水的報警聲,這時,你停止洗衣服,立即去關掉火,然后將開水灌入暖水瓶中,灌完開水后,你又繼續洗衣服。洗衣服主任務水開報警將開水灌入暖水壺繼續洗衣服3

1、中斷在程序執行過程中由于隨機事件的發生而被中斷運行的情況,稱為中斷

2、中斷系統是實現中斷功能的部件3、中斷源就是能發出中斷請求、引起中斷的設備或信號。中斷源主要有:

故障源;外圍設備;實時控制信號;斷點.44、中斷請求(中斷申請)中斷源向CPU提出的處理請求。7、中斷返回5、中斷響應過程CPU暫時中止自身事物,轉去執行事件處理的過程6、中斷服務(中斷處理)對事件處理的整個過程事件處理完畢,CPU再回到原程序被終止的地方,繼續執行主程序8、中斷服務程序響應中斷后,CPU執行的處理程序5二、中斷的用途

1、解決高速CPU與低速外設的匹配問題2、及時處理突發事件突發事件:電源掉電、負荷超載、硬件故障、運算溢出等3、實時控制4、實現人機聯系5、實現多機聯系6三、中斷響應和中斷處理過程一個完整的中斷過程包括:中斷處理:CPU暫停現行程序,將PC中下一條指令的地址入棧保護,響應中斷請求,進入中斷服務程序;中斷服務程序首先保護現場,然后執行。中斷請求:首先中斷源提出中斷申請中斷優先、中斷響應:在中斷允許的情況下,CPU先響應級別高的中斷源提出的中斷請求,處理完畢后,再響應級別較低的。中斷返回:回復現場,最后返回主程序7第二節中斷系統的結構及中斷控制一、中斷系統結構8(一)中斷源8051單片機有5個中斷請求源:單片機INT0或外部輸入中斷源INT0(P3.2)INT1或外部輸入中斷源INT1(P3.3)T0片內定時器T0的溢出T1片內定時器T1的溢出串行口片內串行口發送或接收中斷源9(二)中斷控制1)TCON(定時器/計數器控制寄存器)中的中斷請求標志TF1TF0IE1IT1IE0IT0TCON位地址8FH8DH8BH8AH89H88H①IT0/IT1:外部中斷0/1的中斷觸發方式控制位當IT0(IT1)=1時,為脈沖觸發方式,下降沿有效,即負跳變(1→0)有效。當IT0(IT1)=0時,為電平觸發方式,低電平有效。由軟件置“1”或清“0”。可通過位操作指令來實現。1.中斷請求標志10TF1TF0IE1IT1IE0IT0D7D6D5D4D3D2D1D0TCON位地址8FH8DH8BH8AH89H88H②IE0/IE1:外部中斷0/1的中斷請求標志位當IT0(IT1)=0為電平觸發方式時,若外部中斷0為低電平,則對IE0(IE1)置1,否則清0;當IT0(IT1)=1時,為脈沖觸發方式,若第一個機器周期檢測到外部中斷為高電平,第二個機器周期檢測到外部中斷為低電平時,對IE0(IE1)置1,否則清0。11TF1TF0IE1IT1IE0IT0TCON位地址8FH8DH8BH8AH89H88H③TF0/TF1:T0或T1的溢出中斷請求標志位當啟動T0或T1計數后,從初始值開始加1計數,當最高位產生溢出時,由硬件對TF0(TF1)置位,表示內部T0或T1向CPU發出中斷請求,當CPU響應TF0(TF1)中斷時,由硬件自動對TF0(TF1)清零。也可用軟件查詢該標志位,然后用軟件清零。122)SCON(串行口控制寄存器)中的中斷請求標志TIRISCON位地址99H98H①RI:串行口接收中斷請求標志位

當接收完一幀串行數據后,由硬件置“1”;請求中斷在轉向中斷服務程序后,用軟件清“0”。CLRRI或ANLSCON,#0FEH13TIRISCON位地址99H98H②TI:串行口發送中斷請求標志位當發送完一幀串行數據后,由硬件置“1”;在轉向中斷服務程序后,用軟件清“0”。CLRTI或ANLSCON,#0FDH142.中斷允許控制標志位單片機對中斷源的開放或關閉是由中斷允許控制寄存器IE進行控制EAESET1EX1ET0EX0IE位地址AFHACHABHAAHA9HA8H①EA:中斷允許總控制位。EA=0:屏蔽所有中斷請求;EA=1:CPU開放所有中斷請求;15EAESET1EX1ET0EX0IE位地址AFHACHABHAAHA9HA8H②EX0(EX1):外部中斷0/1允許控制位EX0(EX1)=1:外部中斷0/1允許EX0(EX1)=0:外部中斷0/1禁止③ET0(ET1):定時/計數器0/1中斷允許控制位ET0(ET1)=0,禁止定時/計數0/1中斷ET0(ET1)=1,允許定時/計數0/116EAESET1EX1ET0EX0IE位地址AFHACHABHAAHA9HA8H④

ES:串行中斷允許控制位ES=0,串行中斷禁止ES=1,串行中斷允許17例1,假設允許T0和T1中斷,禁止其他中斷,請設置IE的值。EAESET1EX1ET0EX0

解:(IE)=8AH1)字節操作指令:MOVIE,#8AH或MOVA8H,#8AH2)位操作指令:SETBET0SETBET1SETBEA183.中斷優先級控制標志位PSPT1PX1PT0PX0IP位地址BCHBBHBAHB9HB8H串行口中斷優先級控制位,PS=1,為高;PS=0為低T1中斷優先級控制位外部中斷1中斷優先級控制位T0中斷優先級控制位外部中斷0中斷優先級控制位說明:以上各位與IE的低五位相對應,為“1”時為高級。初始化編程時,由軟件確定。19PSPT1PX1PT0PX0IP位地址BCHBBHBAHB9HB8H注意:當單片機復位后,IP=00H,故所有的中斷都是低優先級中斷。可通過軟件對中斷源設置優先級。例如,SETBPT0CLRPX0等。20中斷源的矢量地址及優先級排序中斷系統對中斷優先級處理原則1)不同級的中斷源同時申請中斷時,先高后低;2)處理低級中斷又收到高級中斷請求時,停低轉高;3)處理高級中斷又收到低級中斷請求時,高不踩低;4)同級的中斷源同時申請中斷時,按上表的順尋內部查詢;21例2:若要求中斷源T0,T1,INT0和INT1允許中斷,禁止串行口中斷,將T0,T1設為高優先級,INT0,INT1設為低優先級。試確定IE、IP控制字。解:EX0ET0EX1ET1ESEA111101IEPX0PT0PX1PT1PSIP010100故:IE=10001111=8FHIP=00001010=0AH000022(三)中斷響應過程1、中斷響應條件1)中斷源發出中斷請求;2)中斷中允許位EA=1,即CPU開放中斷;3)發出中斷請求的中斷源所對應位為1,即,開放中斷;232、編寫中斷服務程序注意事項1)在相應中斷服務程序入口地址放一條長跳轉指令LJMP,若在2KB范圍內轉移,可使用短跳轉AJMP;2)對一些中斷源,CPU在響應中斷后會自動清除中斷標志,如TF0、TF1和邊沿觸發方式下的IE0、IE1。對串行接口中斷必須由用戶在中斷服務程序中用軟件清除相應標志位。如CLRTI對電平觸發的外部中斷需要利用外接電路來撤除中斷請求信號。3)在中斷服務程序中,用戶應注意用軟件保護現場,以免中斷返回后丟失原寄存器、累加器中的信息;4)在中斷服務程序從矢量地址開始執行,最后一條指令應是返回指令“RETI”;24第三節中斷應用舉例1.邊沿觸發方式中斷處理實現如圖:要求用4個燈對應顯示4個開關的狀態,即開關打開,燈滅;開關閉合,燈亮。由另一個開關控制中斷申請,要求每申請一次,完成一個讀寫過程,使指示燈與開關狀態對應。驅動門,調節電流25ORG0000HAJMPMAIN

ORG0003H

MOVA,#0FFHMOVP1,A

MOVA,P1SWAPAMOVP1,A

RETIORG1000HMAIN:SETBIT0SETBEX0SETBEAHERE:AJMPHEREEND262.電平觸發中斷處理實現中斷申請撤銷線向CPU申請中斷ORG0000HAJMPMAIN

ORG0003H

AJMPW1ORG0050HMAIN:CLRIT0

SETBP3.0

SETBEX0SETBEAHERE:AJMPHERE;INT0的電平觸發方式;D觸發器工作RD,SD為高電平時,D工作27中斷申請撤銷線向CPU申請中斷ORG0100H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論