單片機中斷系統_第1頁
單片機中斷系統_第2頁
單片機中斷系統_第3頁
單片機中斷系統_第4頁
單片機中斷系統_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第五章第五章 中斷系統內容提要內容提要: :5-1 微機的輸入微機的輸入 / 輸出方式輸出方式5-2 5-2 中斷的概念中斷的概念 5-3 89C515-3 89C51中斷系統結構及中斷控制中斷系統結構及中斷控制5-4 5-4 中斷處理過程中斷處理過程 5-5 5-5 外部中斷的擴展方法外部中斷的擴展方法 5-6 5-6 中斷程序的舉例中斷程序的舉例 5.1 5.1 微機的輸入微機的輸入/ /輸出方式輸出方式CPU與外部設備交換信息通常有以下幾種方式:與外部設備交換信息通常有以下幾種方式: 程序控制方式,又分為無條件傳送方式和查詢傳送程序控制方式,又分為無條件傳送方式和查詢傳送方式。方式。 中

2、斷方式中斷方式 直接儲存器存取(直接儲存器存?。―MA)方式)方式一、無條件傳送方式一、無條件傳送方式4CPU總是認為外設在任何時刻都處于總是認為外設在任何時刻都處于“準備好準備好”的狀態(tài)。的狀態(tài)。4這種傳送方式不需要交換狀態(tài)信息,只需在程序這種傳送方式不需要交換狀態(tài)信息,只需在程序中加入訪問外設的指令,數據傳送便可以實現。中加入訪問外設的指令,數據傳送便可以實現。4此種方法很少使用。此種方法很少使用。 二、查詢傳送方式二、查詢傳送方式+在輸入時,需要查詢外設的輸入數據是否準備在輸入時,需要查詢外設的輸入數據是否準備好;好;+在輸出時,需要查詢外設是否把上一次在輸出時,需要查詢外設是否把上一次

3、CPU輸輸出的數據處理完畢。出的數據處理完畢。+查詢傳送方式:通過查詢外設的狀態(tài)信息,確查詢傳送方式:通過查詢外設的狀態(tài)信息,確信外設已處于信外設已處于“準備好準備好”,計算機才發(fā)出訪問,計算機才發(fā)出訪問外設的指令,實現數據的傳送。外設的指令,實現數據的傳送。+狀態(tài)信息:一般為狀態(tài)信息:一般為1位二進制碼。位二進制碼。查詢方式程序流程圖:查詢方式程序流程圖: 輸入狀態(tài)信息輸入狀態(tài)信息準備好?準備好?傳送數據傳送數據NY查詢方式的過程:查詢方式的過程: 啟動外設設備啟動外設設備傳送數據傳送數據延遲延遲查詢等待數據傳送,待到查詢等待數據傳送,待到下一次數據傳送時則重復上述下一次數據傳送時則重復上述

4、過程。等待也可以不采用循環(huán)過程。等待也可以不采用循環(huán)等待,而用軟件插入固定延時等待,而用軟件插入固定延時的方法來完成。的方法來完成。查詢方式的特點:查詢方式的特點:+優(yōu)點:通用性好,可以用于各類外設和優(yōu)點:通用性好,可以用于各類外設和CPU間間的數據傳送。的數據傳送。+缺點:缺點:CPU在完成一次數據傳送后要等待很長在完成一次數據傳送后要等待很長時間才能進行下一次的傳送。在等待過程中,時間才能進行下一次的傳送。在等待過程中,CPU不能進行其他操作,所以效率比較低。不能進行其他操作,所以效率比較低。DMA(Direct Memory Access)方式是)方式是CPU讓出數讓出數據總線,使外部設

5、備和存儲據總線,使外部設備和存儲器之間直接傳送(不通過器之間直接傳送(不通過CPU)數據的方式。在下述)數據的方式。在下述兩種情況時可考慮采用兩種情況時可考慮采用DMA方式:方式:外設和存儲器之間有大量外設和存儲器之間有大量的數據需要傳送;的數據需要傳送;外部設備的工作速度很快外部設備的工作速度很快的情況。的情況。三、直接存儲器存取(三、直接存儲器存取(DMA)方式)方式5.2 5.2 中斷的概念中斷的概念一、概述一、概述 與上對比,單片機中也有同樣的問題。與上對比,單片機中也有同樣的問題。CPU正正 在執(zhí)行原程序,突然,被意外事情打斷,轉去執(zhí)行在執(zhí)行原程序,突然,被意外事情打斷,轉去執(zhí)行 新

6、程序。新程序。CPU執(zhí)行新程序結束后,又回到原程序中執(zhí)行新程序結束后,又回到原程序中 繼續(xù)執(zhí)行。這樣的過程就叫繼續(xù)執(zhí)行。這樣的過程就叫 。 什么叫中斷?什么叫中斷? 舉例:某同學正在教室寫作業(yè),忽然被人叫出去,回來舉例:某同學正在教室寫作業(yè),忽然被人叫出去,回來 后,繼續(xù)寫作業(yè)。這就是生活中中斷的例子。后,繼續(xù)寫作業(yè)。這就是生活中中斷的例子。 主程序主程序響應中斷請求響應中斷請求中斷服務程序中斷服務程序返回主程序返回主程序繼續(xù)執(zhí)行主程序繼續(xù)執(zhí)行主程序斷點斷點中斷系統中斷系統:實現這種功能的部件實現這種功能的部件中斷源中斷源:產生中斷的請求源產生中斷的請求源中斷請求中斷請求:中斷源向中斷源向CP

7、U提出的處理請求提出的處理請求CPU的中斷響應過程的中斷響應過程:CPU暫時中止自身的事務,轉去暫時中止自身的事務,轉去處理事件的過程處理事件的過程中斷服務中斷服務:對事件的整個處理過程對事件的整個處理過程中斷返回中斷返回:處理完畢,再回到原來被中止的地方處理完畢,再回到原來被中止的地方日常生活中日常生活中的中斷與的中斷與單片機單片機中斷的比較:中斷的比較: 某同學某同學 單片機單片機 過程說明過程說明正在看書正在看書 執(zhí)行主程序執(zhí)行主程序有人找出去有人找出去 中斷信號中斷信號 中斷請求中斷請求暫??磿鴷和?磿?暫停執(zhí)行主程序暫停執(zhí)行主程序 中斷響應中斷響應書中作記號書中作記號 當前當前PCP

8、C入棧入棧 保護斷點保護斷點出去做事出去做事 執(zhí)行中斷程序執(zhí)行中斷程序 中斷服務中斷服務回來繼續(xù)看回來繼續(xù)看 返回主程序返回主程序 中斷返回中斷返回二、中斷的作用二、中斷的作用1 1、分時操作、分時操作2 2、實時處理、實時處理 3 3、故障處理、故障處理分時操作分時操作: :n計算機的中斷系統可以使計算機的中斷系統可以使CPU與外設同時工作。與外設同時工作。nCPU在啟動外設后,便繼續(xù)執(zhí)行主程序;而外在啟動外設后,便繼續(xù)執(zhí)行主程序;而外設被啟動后,開始進行準備工作。當外設準備設被啟動后,開始進行準備工作。當外設準備就緒時,就向就緒時,就向CPU發(fā)出中斷請求,發(fā)出中斷請求,CPU響應該響應該中

9、斷請求并為其服務完畢后,返回原來的斷點中斷請求并為其服務完畢后,返回原來的斷點處繼續(xù)運行主程序。外設在得到服務后,也繼處繼續(xù)運行主程序。外設在得到服務后,也繼續(xù)進行自己的工作。續(xù)進行自己的工作。n因此,因此,CPU可以使多個外設同時工作,并分時可以使多個外設同時工作,并分時為各外設提供服務,從而提高了為各外設提供服務,從而提高了CPU的利用率的利用率和輸入輸出的速度。和輸入輸出的速度。實時處理實時處理:n當計算機用于實時控制時,請求當計算機用于實時控制時,請求CPU提供服務時提供服務時隨機發(fā)生的。有了中斷系統,隨機發(fā)生的。有了中斷系統,CPU就可以立即響就可以立即響應并加以處理。應并加以處理。

10、故障處理故障處理: :n計算機在運行時往往會出現一些故障,如斷電、計算機在運行時往往會出現一些故障,如斷電、存儲器奇偶校驗出錯、運算溢出等。存儲器奇偶校驗出錯、運算溢出等。n有了中斷系統,當出現上述情況時,有了中斷系統,當出現上述情況時,CPU可及時可及時轉去執(zhí)行故障處理程序,自行處理故障而不必停轉去執(zhí)行故障處理程序,自行處理故障而不必停機。機。5.3 89C51中斷系統結構及中斷控制中斷系統結構及中斷控制89C51中斷系統的五個中斷源中斷系統的五個中斷源(結構如圖(結構如圖5-3) INT0外部中斷外部中斷0請求,低電平有效,通過請求,低電平有效,通過P3.2引引腳輸入腳輸入 INT1外部中

11、斷外部中斷1請求,低電平有效,通過請求,低電平有效,通過P3.3引引腳輸入腳輸入 T0定時器定時器/計算器計算器0溢出中斷請求溢出中斷請求 T1定時器定時器/計算器計算器0溢出中斷請求溢出中斷請求 TX/RX串行口中斷請求串行口中斷請求一、一、89C51中斷源中斷源中斷源:中斷源:nI/O設備設備鍵盤、打印機、鍵盤、打印機、A/D轉換器、轉換器、D/A轉換器完成自身的操轉換器完成自身的操作后向作后向CPU申請中斷,請求服務申請中斷,請求服務n硬件故障硬件故障電源斷電時,需要將寄存器、累加器、標志位保存,電源斷電時,需要將寄存器、累加器、標志位保存,以便重新供電后繼續(xù)運行以便重新供電后繼續(xù)運行R

12、AM存儲器斷電時將內容保存在如硬盤、存儲器斷電時將內容保存在如硬盤、FLASH ROM中,以便供電恢復后繼續(xù)工作中,以便供電恢復后繼續(xù)工作n實時時鐘實時時鐘系統中的時鐘可以采用獨立時鐘系統,通過中斷向系統中的時鐘可以采用獨立時鐘系統,通過中斷向CPU提供時鐘源,節(jié)省提供時鐘源,節(jié)省CPU的處理時間的處理時間n調試程序時設置的中斷調試程序時設置的中斷程序調試時,通過設置斷點觀察運行中的寄存器、累程序調試時,通過設置斷點觀察運行中的寄存器、累加器、標志位狀態(tài);觀察中間運算結果加器、標志位狀態(tài);觀察中間運算結果P3.2P3.3P3.4P3.5二、中斷控制二、中斷控制n89C51中斷系統有以下四個特殊

13、功能寄存器:中斷系統有以下四個特殊功能寄存器:定時器控制寄存器定時器控制寄存器TCON(用六位)(用六位)串行口控制寄存器串行口控制寄存器SCON(用二位)(用二位)中斷允許寄存器中斷允許寄存器IE中斷優(yōu)先級寄存器中斷優(yōu)先級寄存器IP1、中斷請求標志、中斷請求標志n 在中斷源與在中斷源與CPU之間有二級中斷允許控制邏輯電之間有二級中斷允許控制邏輯電路,類似開關,其中第一級為一個總開關,第二路,類似開關,其中第一級為一個總開關,第二級為五個分開關,由級為五個分開關,由IE控制??刂啤斨赋觯簯斨赋觯簄在在89C51復位時,復位時,IE各位被復位成各位被復位成“0”狀態(tài),狀態(tài),CPU因此而處于

14、關閉所有中斷狀態(tài)。所以,在因此而處于關閉所有中斷狀態(tài)。所以,在89C51復位以后,用戶必須通過主程序中的指令復位以后,用戶必須通過主程序中的指令來開放所需中斷,以便相應中斷請求來到時被來開放所需中斷,以便相應中斷請求來到時被CPU所響應。所響應。 3、中斷優(yōu)先級控制、中斷優(yōu)先級控制n CPU同一時間只能響應一個中斷請求。若同時來同一時間只能響應一個中斷請求。若同時來了兩個或兩個以上中斷請求,就必須有先有了兩個或兩個以上中斷請求,就必須有先有后。后。 !n為此將為此將5個中斷源分成高級、低級兩個級別,高級個中斷源分成高級、低級兩個級別,高級優(yōu)先,由優(yōu)先,由IP控制??刂?。出廠前已由廠家固化順序出

15、廠前已由廠家固化順序事先約定事先約定n中斷優(yōu)先原則:(概括為四句話)中斷優(yōu)先原則:(概括為四句話)n1 1、低級不打斷高級、低級不打斷高級n2 2、高級不睬低級、高級不睬低級n3 3、同級不能打斷、同級不能打斷n4 4、同級、同時中斷,事先約定。、同級、同時中斷,事先約定。 CPUCPU在執(zhí)行主程序在執(zhí)行主程序低級中低級中斷請求斷請求響應低級中斷請求響應低級中斷請求CPUCPU執(zhí)行低級執(zhí)行低級中斷服務程序中斷服務程序高級中高級中斷請求斷請求響應高級中斷請求響應高級中斷請求CPUCPU執(zhí)行高級執(zhí)行高級中斷服務程序中斷服務程序返回低級中斷程序返回低級中斷程序返回主程序返回主程序n例:設例:設89C

16、51的片外中斷為高優(yōu)先級,片內中的片外中斷為高優(yōu)先級,片內中斷為低優(yōu)先級。試設置斷為低優(yōu)先級。試設置IP相應值。相應值。(a)用字節(jié)操作指令)用字節(jié)操作指令 MOV IP,#05H 或或 MOV 0B8H,#05H(b)用位操作指令)用位操作指令 SETB PX0 SETB PX1 CLR PS CLR PT0 CLR PT15.4 5.4 中斷響應及中斷處理過程中斷響應及中斷處理過程n中斷處理過程可分為中斷處理過程可分為 三個階段:三個階段:中斷響應中斷響應中斷處理中斷處理中斷返回中斷返回以外設提出接收數據為例,以外設提出接收數據為例,如右圖:如右圖:保護現場保護現場為外設服務為外設服務恢復

17、現場恢復現場主程序主程序KK+1NN+m返回返回中中斷斷處處理理一、中斷響應一、中斷響應1、中斷響應條件:、中斷響應條件:有中斷源發(fā)出中斷請求;有中斷源發(fā)出中斷請求;中斷總允許位中斷總允許位EA1,即,即CPU開中斷;開中斷;申請中斷的中斷源的中斷允許位為申請中斷的中斷源的中斷允許位為1,即中斷沒有,即中斷沒有被屏蔽;被屏蔽;無同級或更高級中斷正在被服務;無同級或更高級中斷正在被服務;當前的指令周期已經結束;當前的指令周期已經結束;若現行指令為若現行指令為RETI或者是訪問或者是訪問IE或或IP指令時,該指令時,該指令以及緊接著的另一條指令已經執(zhí)行完。指令以及緊接著的另一條指令已經執(zhí)行完。2

18、2、中斷響應的過程、中斷響應的過程 89C51的的CPU在每個機器周期的在每個機器周期的S5P2期間順序采期間順序采樣每個中斷源,樣每個中斷源,CPU在下一個機器在下一個機器S6期間按優(yōu)先級期間按優(yōu)先級順序查詢中斷標志,如查詢到某個中斷標志為順序查詢中斷標志,如查詢到某個中斷標志為1,將,將在接下來的機器周期在接下來的機器周期S1期間按優(yōu)先級進行中斷處理。期間按優(yōu)先級進行中斷處理。中斷系統通過硬件自動將相應的中斷矢量地址裝入中斷系統通過硬件自動將相應的中斷矢量地址裝入PC,以便進入相應的中斷服務程序。,以便進入相應的中斷服務程序。 89C51單片機的中斷系統中有兩個不可編程的單片機的中斷系統中

19、有兩個不可編程的“優(yōu)先級優(yōu)先級”觸發(fā)器:一個是觸發(fā)器:一個是“高優(yōu)先級生效高優(yōu)先級生效”觸觸發(fā)器;一個是發(fā)器;一個是“低優(yōu)先級生效低優(yōu)先級生效”觸發(fā)器。觸發(fā)器。 89C51單片機一旦響應中斷,首先置位相應的單片機一旦響應中斷,首先置位相應的中斷中斷“優(yōu)先級生效優(yōu)先級生效”觸發(fā)器,然后由觸發(fā)器,然后由硬件硬件執(zhí)行一執(zhí)行一條長調用指令條長調用指令LCALL,把當前,把當前PC值壓入堆棧,值壓入堆棧,以保護斷點,再將相應的中斷服務程序的入口地以保護斷點,再將相應的中斷服務程序的入口地址送入址送入PC,于是,于是CPU接著從中斷服務程序的入接著從中斷服務程序的入口開始執(zhí)行??陂_始執(zhí)行。五個中斷源:五個

20、中斷源: 入口地址入口地址 外部中斷外部中斷0(/INT0) 0003H T0溢出中斷溢出中斷 000BH 外部中斷外部中斷1(/INT1) 0013H T1溢出中斷溢出中斷 001BH 串口中斷串口中斷 0023H 各中斷源及與之對應的矢量地址如下:各中斷源及與之對應的矢量地址如下:編寫中斷服務程序時應注意:編寫中斷服務程序時應注意:在中斷矢量地址單元處放一條無條件轉移指令在中斷矢量地址單元處放一條無條件轉移指令(如(如LJMP XXXXH),使中斷服務程序可靈活地),使中斷服務程序可靈活地安排在安排在64KB程序存儲器的任何空間。程序存儲器的任何空間。在中斷服務程序中,用戶應注意用軟件保護

21、現場,在中斷服務程序中,用戶應注意用軟件保護現場,以免中斷返回后丟失原寄存器、累加器中的信息。以免中斷返回后丟失原寄存器、累加器中的信息。若要在執(zhí)行當前中斷程序時禁止更高優(yōu)先級中斷,若要在執(zhí)行當前中斷程序時禁止更高優(yōu)先級中斷,可以先用軟件關閉可以先用軟件關閉CPU中斷或禁止某中斷源中斷,中斷或禁止某中斷源中斷,在中斷返回前再開放中斷。在中斷返回前再開放中斷。3、對中斷請求的撤銷、對中斷請求的撤銷1)定時器溢出中斷請求的撤除)定時器溢出中斷請求的撤除 2)串行口中斷請求的撤除)串行口中斷請求的撤除 TI和和RI是串行口中斷的標志位,中斷系統不能自是串行口中斷的標志位,中斷系統不能自動將它們撤除,

22、這是因為動將它們撤除,這是因為89C51進入串行口中斷服進入串行口中斷服務程序后常需要對它們進行檢測,以測定串行口發(fā)務程序后常需要對它們進行檢測,以測定串行口發(fā)生了接收中斷還是發(fā)送中斷。為了防止生了接收中斷還是發(fā)送中斷。為了防止CPU再次響再次響應這類中斷,用戶應在中斷服務程序的適當位置處應這類中斷,用戶應在中斷服務程序的適當位置處通過如下指令將它們撤除。通過如下指令將它們撤除。 CLR TI ;撤除發(fā)送中斷;撤除發(fā)送中斷 CLR RI ;撤除接收中斷;撤除接收中斷 3)外部中斷請求的撤除)外部中斷請求的撤除 外部中斷請求有兩種觸發(fā)方式:外部中斷請求有兩種觸發(fā)方式:電平觸發(fā)和邊沿觸電平觸發(fā)和邊

23、沿觸發(fā)發(fā)。 邊沿觸發(fā)方式中斷請求的撤除邊沿觸發(fā)方式中斷請求的撤除電平觸發(fā)方式中斷請求的撤除電平觸發(fā)方式中斷請求的撤除 在電平觸發(fā)方式下,外部中斷標志在電平觸發(fā)方式下,外部中斷標志IE0或或IE1是依靠是依靠CPU檢檢測測INT0或或INT1上的低電平而置位的。盡管上的低電平而置位的。盡管CPU響應中斷時相響應中斷時相應中斷標志應中斷標志IE0或或IE1能自動復位成能自動復位成“0”狀態(tài),但若外部中斷源狀態(tài),但若外部中斷源不能及時撤除它在不能及時撤除它在INT0或或INT1上的低電平,就會再次使已經上的低電平,就會再次使已經變變“0”的中斷標志的中斷標志IE0或或IE1置位,這是絕對不能允許的。

24、因此,置位,這是絕對不能允許的。因此,電平觸發(fā)方式外部中斷請求的撤除必須使電平觸發(fā)方式外部中斷請求的撤除必須使INT0或或INT1上的低上的低電平隨著其中斷被電平隨著其中斷被CPU響應而變?yōu)楦唠娖?。響應而變?yōu)楦唠娖健?、中斷響應時間、中斷響應時間 在實時控制系統中。為了滿足控制速度要求,常在實時控制系統中。為了滿足控制速度要求,常要弄清要弄清CPU響應中斷所需的時間。響應中斷所需的時間。 中斷響應時間:中斷請求有效(標志位置中斷響應時間:中斷請求有效(標志位置“1”)到)到轉向中斷入口地址所需的機器周期數。轉向中斷入口地址所需的機器周期數。 響應中斷的時間有最短和最長之分:響應中斷的時間有最短

25、和最長之分:(1)最短需要)最短需要3個機器周期個機器周期(2)最長需要)最長需要8個周期個周期 若若CPU在執(zhí)行在執(zhí)行RETI(或訪問(或訪問IEIP)指令的第一個)指令的第一個機器周期中查詢到有了某中斷源的中斷請求(設該中機器周期中查詢到有了某中斷源的中斷請求(設該中斷源的中斷是開放的),則斷源的中斷是開放的),則89C51需要再執(zhí)行一條指需要再執(zhí)行一條指令才會響應這個中斷請求。在這種情況下,令才會響應這個中斷請求。在這種情況下,CPU響應響應中斷的時間最長,共需中斷的時間最長,共需8個機器周期。個機器周期。 二、中斷處理二、中斷處理 CPU響應中斷后即轉至中斷服務程序入口,執(zhí)行中響應中斷

26、后即轉至中斷服務程序入口,執(zhí)行中斷服務程序。從中斷服務程序的第一條指令開始到返斷服務程序。從中斷服務程序的第一條指令開始到返回指令為止,這個過程稱為中斷處理或中斷服務。不回指令為止,這個過程稱為中斷處理或中斷服務。不同的中斷源服務的內容及要求各不相同,其處理過程同的中斷源服務的內容及要求各不相同,其處理過程也就有所區(qū)別。也就有所區(qū)別。 一般情況下,中斷處理包括兩部分內容:一是一般情況下,中斷處理包括兩部分內容:一是保護保護現場現場。二是為。二是為中斷源服務中斷源服務。三、中斷返回三、中斷返回(1)使相應優(yōu)先級狀態(tài)觸發(fā)器清)使相應優(yōu)先級狀態(tài)觸發(fā)器清0。(2)從堆棧中彈出棧頂的兩個字節(jié)內容)從堆棧

27、中彈出棧頂的兩個字節(jié)內容 送送PC恢復斷點?;謴蛿帱c。(3)CPU接著中斷處繼續(xù)執(zhí)行原程序。接著中斷處繼續(xù)執(zhí)行原程序?;謴同F場恢復現場n在中斷服務程序中,最后一條指令必須為中斷返回在中斷服務程序中,最后一條指令必須為中斷返回指令指令RETInCPU執(zhí)行該指令時,一方面清除中斷響應時所置位執(zhí)行該指令時,一方面清除中斷響應時所置位的的“優(yōu)先級生效優(yōu)先級生效”觸發(fā)器,另一方面從當前棧頂彈觸發(fā)器,另一方面從當前棧頂彈出斷點地址送入程序計數器出斷點地址送入程序計數器PC,從而返回主程序,從而返回主程序n中斷處理中推入堆棧的寄存器、累加器、標志位需中斷處理中推入堆棧的寄存器、累加器、標志位需要在執(zhí)行返回指

28、令要在執(zhí)行返回指令RETI之前用軟件從堆棧恢復,之前用軟件從堆?;謴?,采用采用POP指令指令n注意在中斷服務程序中,注意在中斷服務程序中,PUSH和和POP指令必須成指令必須成對使用,否則,不能正確返回斷點對使用,否則,不能正確返回斷點n恢復現場期間,為了防止更高優(yōu)先級中斷破壞現場恢復現場期間,為了防止更高優(yōu)先級中斷破壞現場內容,需要關閉中斷允許位內容,需要關閉中斷允許位EAP1.0P1.1P1.2P1.3INT0+5V89C51INT1裝置裝置1裝置裝置2裝置裝置3裝置裝置4圖圖511 多個外部中斷源連接法多個外部中斷源連接法二、中斷加查詢擴展中斷源二、中斷加查詢擴展中斷源 利用利用89C5

29、189C51的兩根外部的兩根外部中斷輸入線。每一中斷輸中斷輸入線。每一中斷輸入線可以通過入線可以通過“線或線或”的的關系連接多個外部中斷源,關系連接多個外部中斷源,同時利用輸入端口線作為同時利用輸入端口線作為各中斷源的識別線。具體各中斷源的識別線。具體線路見圖線路見圖5 51111所示的多個所示的多個外部中斷源連接方法。外部中斷源連接方法。5.5 外部中斷擴展方法外部中斷擴展方法一、利用定時器擴展外部中斷源一、利用定時器擴展外部中斷源有關中斷服務程序的片斷如下:有關中斷服務程序的片斷如下: ORG 0003H LJMP INTRP INTRP:PUSH PSW PUSH A JB P1.0,D

30、V1 JB P1.1,DV2 JB P1.2,DV3 JB P1.3,DV4 EXIT: POP A POP PSW RETIDV1: 裝置裝置1的中斷服務程序的中斷服務程序 AJMP EXITDV2: 裝置裝置2的中斷服務程序的中斷服務程序 AJMP EXITDV3: 裝置裝置3的中斷服務程序的中斷服務程序 AJMP EXITDV4: 裝置裝置4的中斷服務程序的中斷服務程序 AJMP EXIT一、主程序一、主程序1.主程序主程序的起始地址的起始地址n89C51系列單片機復位后,系列單片機復位后,(PC)=0000Hn0003H002BH分別為各中斷源分別為各中斷源的入口地址的入口地址n編程時

31、應在編程時應在0000H處寫一條跳轉處寫一條跳轉指令指令(一般為長跳轉指令一般為長跳轉指令),主程,主程序是以跳轉的目標地址作為起始序是以跳轉的目標地址作為起始地址開始編寫,一般從地址開始編寫,一般從0030H開開始,如圖所示始,如圖所示0000HLJMP00300030H主程序主程序5.6 中斷程序舉例中斷程序舉例2、主程序的初始化內容主程序的初始化內容n初始化初始化將用到的內部部件或擴展芯片進行初始工作狀將用到的內部部件或擴展芯片進行初始工作狀態(tài)設定。態(tài)設定。n特殊功能寄存器初始化設置特殊功能寄存器初始化設置單片機復位后,特殊功能寄存器單片機復位后,特殊功能寄存器IE、IP內容均內容均為為

32、00H,所以應對,所以應對IE、IP進行初始化編程,以進行初始化編程,以開放中斷,允許某些中斷源中斷和設置中斷優(yōu)開放中斷,允許某些中斷源中斷和設置中斷優(yōu)先級等。先級等。二、中斷服務程序二、中斷服務程序n1.中斷服務程序的起始地址中斷服務程序的起始地址中斷系統對五個中斷源分別規(guī)定了各自的入口中斷系統對五個中斷源分別規(guī)定了各自的入口地址,但這些入口地址相距很近地址,但這些入口地址相距很近(8個字節(jié)個字節(jié))如中斷服務程序的指令代碼少于如中斷服務程序的指令代碼少于8個字節(jié),則個字節(jié),則可從規(guī)定的中斷服務程序入口地址開始,直接可從規(guī)定的中斷服務程序入口地址開始,直接編寫中斷服務程序編寫中斷服務程序如中斷

33、服務程序的指令代碼大于如中斷服務程序的指令代碼大于8個字節(jié),則個字節(jié),則應采用與主程序相同的方法,在相應的入口處應采用與主程序相同的方法,在相應的入口處寫一條跳轉指令,并以跳轉指令的目標地址作寫一條跳轉指令,并以跳轉指令的目標地址作為中斷服務程序的起始地址進行編程為中斷服務程序的起始地址進行編程2、中斷服務程序編制中的注意事項、中斷服務程序編制中的注意事項(1)視需要確定是否保護現場;)視需要確定是否保護現場;(2)及時清除那些不能被硬件自動清除的中斷請求)及時清除那些不能被硬件自動清除的中斷請求標志,以免產生錯誤的中斷;標志,以免產生錯誤的中斷;(3)中斷服務程序中的壓棧()中斷服務程序中的

34、壓棧(PUSH)與出棧)與出棧(POP)指令必須成對使用,以確保中斷服務程序)指令必須成對使用,以確保中斷服務程序的正確返回;的正確返回;(4)主程序和中斷服務程序之間的參數傳遞與主程)主程序和中斷服務程序之間的參數傳遞與主程序和子程序的參數傳遞方式相同。序和子程序的參數傳遞方式相同。例:如圖所示,將例:如圖所示,將P1口的口的P1.4P1.7作為輸入位,作為輸入位,P1.0P1.3作為輸出位。要求利用作為輸出位。要求利用89C51將開關所設的將開關所設的數據讀入單片機內,并依次通過數據讀入單片機內,并依次通過P1.0P1.3輸出,驅動輸出,驅動發(fā)光二極管,以檢查發(fā)光二極管,以檢查P1.4P1.7輸入的電平情況(若輸輸入的電平情況(若輸入為高電平則相應的入為高電平則相應的LED亮)?,F要求采用中斷邊沿觸亮)。現要求采用中斷邊沿觸發(fā)方式,每中斷一次,完成一次讀發(fā)方式,每中斷一次,完成一次讀/寫操作。寫操作。源程序:源程序: ORG 0000H AJMP MAIN ORG 0003H AJMP INSER ORG 0030HMAIN:SETB EX0 SETB IT0 SETB EAHERE:SJMP HERE 中斷服務子程序:中斷服務子程序: ORG 0200HINSER:MO

溫馨提示

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

評論

0/150

提交評論