




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第五章第五章 中斷系統(tǒng)內(nèi)容提要內(nèi)容提要: :5-1 微機的輸入微機的輸入 / 輸出方式輸出方式5-2 5-2 中斷的概念中斷的概念 5-3 89C515-3 89C51中斷系統(tǒng)結(jié)構(gòu)及中斷控制中斷系統(tǒng)結(jié)構(gòu)及中斷控制5-4 5-4 中斷處理過程中斷處理過程 5-5 5-5 外部中斷的擴展方法外部中斷的擴展方法 5-6 5-6 中斷程序的舉例中斷程序的舉例 5.1 5.1 微機的輸入微機的輸入/ /輸出方式輸出方式CPU與外部設(shè)備交換信息通常有以下幾種方式:與外部設(shè)備交換信息通常有以下幾種方式: 程序控制方式,又分為無條件傳送方式和查詢傳送程序控制方式,又分為無條件傳送方式和查詢傳送方式。方式。 中
2、斷方式中斷方式 直接儲存器存?。ㄖ苯觾Υ嫫鞔嫒。―MA)方式)方式一、無條件傳送方式一、無條件傳送方式4CPU總是認為外設(shè)在任何時刻都處于總是認為外設(shè)在任何時刻都處于“準備好準備好”的狀態(tài)。的狀態(tài)。4這種傳送方式不需要交換狀態(tài)信息,只需在程序這種傳送方式不需要交換狀態(tài)信息,只需在程序中加入訪問外設(shè)的指令,數(shù)據(jù)傳送便可以實現(xiàn)。中加入訪問外設(shè)的指令,數(shù)據(jù)傳送便可以實現(xiàn)。4此種方法很少使用。此種方法很少使用。 二、查詢傳送方式二、查詢傳送方式+在輸入時,需要查詢外設(shè)的輸入數(shù)據(jù)是否準備在輸入時,需要查詢外設(shè)的輸入數(shù)據(jù)是否準備好;好;+在輸出時,需要查詢外設(shè)是否把上一次在輸出時,需要查詢外設(shè)是否把上一次
3、CPU輸輸出的數(shù)據(jù)處理完畢。出的數(shù)據(jù)處理完畢。+查詢傳送方式:通過查詢外設(shè)的狀態(tài)信息,確查詢傳送方式:通過查詢外設(shè)的狀態(tài)信息,確信外設(shè)已處于信外設(shè)已處于“準備好準備好”,計算機才發(fā)出訪問,計算機才發(fā)出訪問外設(shè)的指令,實現(xiàn)數(shù)據(jù)的傳送。外設(shè)的指令,實現(xiàn)數(shù)據(jù)的傳送。+狀態(tài)信息:一般為狀態(tài)信息:一般為1位二進制碼。位二進制碼。查詢方式程序流程圖:查詢方式程序流程圖: 輸入狀態(tài)信息輸入狀態(tài)信息準備好?準備好?傳送數(shù)據(jù)傳送數(shù)據(jù)NY查詢方式的過程:查詢方式的過程: 啟動外設(shè)設(shè)備啟動外設(shè)設(shè)備傳送數(shù)據(jù)傳送數(shù)據(jù)延遲延遲查詢等待數(shù)據(jù)傳送,待到查詢等待數(shù)據(jù)傳送,待到下一次數(shù)據(jù)傳送時則重復(fù)上述下一次數(shù)據(jù)傳送時則重復(fù)上述
4、過程。等待也可以不采用循環(huán)過程。等待也可以不采用循環(huán)等待,而用軟件插入固定延時等待,而用軟件插入固定延時的方法來完成。的方法來完成。查詢方式的特點:查詢方式的特點:+優(yōu)點:通用性好,可以用于各類外設(shè)和優(yōu)點:通用性好,可以用于各類外設(shè)和CPU間間的數(shù)據(jù)傳送。的數(shù)據(jù)傳送。+缺點:缺點:CPU在完成一次數(shù)據(jù)傳送后要等待很長在完成一次數(shù)據(jù)傳送后要等待很長時間才能進行下一次的傳送。在等待過程中,時間才能進行下一次的傳送。在等待過程中,CPU不能進行其他操作,所以效率比較低。不能進行其他操作,所以效率比較低。DMA(Direct Memory Access)方式是)方式是CPU讓出數(shù)讓出數(shù)據(jù)總線,使外部設(shè)
5、備和存儲據(jù)總線,使外部設(shè)備和存儲器之間直接傳送(不通過器之間直接傳送(不通過CPU)數(shù)據(jù)的方式。在下述)數(shù)據(jù)的方式。在下述兩種情況時可考慮采用兩種情況時可考慮采用DMA方式:方式:外設(shè)和存儲器之間有大量外設(shè)和存儲器之間有大量的數(shù)據(jù)需要傳送;的數(shù)據(jù)需要傳送;外部設(shè)備的工作速度很快外部設(shè)備的工作速度很快的情況。的情況。三、直接存儲器存?。ㄈ?、直接存儲器存?。―MA)方式)方式5.2 5.2 中斷的概念中斷的概念一、概述一、概述 與上對比,單片機中也有同樣的問題。與上對比,單片機中也有同樣的問題。CPU正正 在執(zhí)行原程序,突然,被意外事情打斷,轉(zhuǎn)去執(zhí)行在執(zhí)行原程序,突然,被意外事情打斷,轉(zhuǎn)去執(zhí)行 新
6、程序。新程序。CPU執(zhí)行新程序結(jié)束后,又回到原程序中執(zhí)行新程序結(jié)束后,又回到原程序中 繼續(xù)執(zhí)行。這樣的過程就叫繼續(xù)執(zhí)行。這樣的過程就叫 。 什么叫中斷?什么叫中斷? 舉例:某同學(xué)正在教室寫作業(yè),忽然被人叫出去,回來舉例:某同學(xué)正在教室寫作業(yè),忽然被人叫出去,回來 后,繼續(xù)寫作業(yè)。這就是生活中中斷的例子。后,繼續(xù)寫作業(yè)。這就是生活中中斷的例子。 主程序主程序響應(yīng)中斷請求響應(yīng)中斷請求中斷服務(wù)程序中斷服務(wù)程序返回主程序返回主程序繼續(xù)執(zhí)行主程序繼續(xù)執(zhí)行主程序斷點斷點中斷系統(tǒng)中斷系統(tǒng):實現(xiàn)這種功能的部件實現(xiàn)這種功能的部件中斷源中斷源:產(chǎn)生中斷的請求源產(chǎn)生中斷的請求源中斷請求中斷請求:中斷源向中斷源向CP
7、U提出的處理請求提出的處理請求CPU的中斷響應(yīng)過程的中斷響應(yīng)過程:CPU暫時中止自身的事務(wù),轉(zhuǎn)去暫時中止自身的事務(wù),轉(zhuǎn)去處理事件的過程處理事件的過程中斷服務(wù)中斷服務(wù):對事件的整個處理過程對事件的整個處理過程中斷返回中斷返回:處理完畢,再回到原來被中止的地方處理完畢,再回到原來被中止的地方日常生活中日常生活中的中斷與的中斷與單片機單片機中斷的比較:中斷的比較: 某同學(xué)某同學(xué) 單片機單片機 過程說明過程說明正在看書正在看書 執(zhí)行主程序執(zhí)行主程序有人找出去有人找出去 中斷信號中斷信號 中斷請求中斷請求暫??磿鴷和?磿?暫停執(zhí)行主程序暫停執(zhí)行主程序 中斷響應(yīng)中斷響應(yīng)書中作記號書中作記號 當前當前PCP
8、C入棧入棧 保護斷點保護斷點出去做事出去做事 執(zhí)行中斷程序執(zhí)行中斷程序 中斷服務(wù)中斷服務(wù)回來繼續(xù)看回來繼續(xù)看 返回主程序返回主程序 中斷返回中斷返回二、中斷的作用二、中斷的作用1 1、分時操作、分時操作2 2、實時處理、實時處理 3 3、故障處理、故障處理分時操作分時操作: :n計算機的中斷系統(tǒng)可以使計算機的中斷系統(tǒng)可以使CPU與外設(shè)同時工作。與外設(shè)同時工作。nCPU在啟動外設(shè)后,便繼續(xù)執(zhí)行主程序;而外在啟動外設(shè)后,便繼續(xù)執(zhí)行主程序;而外設(shè)被啟動后,開始進行準備工作。當外設(shè)準備設(shè)被啟動后,開始進行準備工作。當外設(shè)準備就緒時,就向就緒時,就向CPU發(fā)出中斷請求,發(fā)出中斷請求,CPU響應(yīng)該響應(yīng)該中
9、斷請求并為其服務(wù)完畢后,返回原來的斷點中斷請求并為其服務(wù)完畢后,返回原來的斷點處繼續(xù)運行主程序。外設(shè)在得到服務(wù)后,也繼處繼續(xù)運行主程序。外設(shè)在得到服務(wù)后,也繼續(xù)進行自己的工作。續(xù)進行自己的工作。n因此,因此,CPU可以使多個外設(shè)同時工作,并分時可以使多個外設(shè)同時工作,并分時為各外設(shè)提供服務(wù),從而提高了為各外設(shè)提供服務(wù),從而提高了CPU的利用率的利用率和輸入輸出的速度。和輸入輸出的速度。實時處理實時處理:n當計算機用于實時控制時,請求當計算機用于實時控制時,請求CPU提供服務(wù)時提供服務(wù)時隨機發(fā)生的。有了中斷系統(tǒng),隨機發(fā)生的。有了中斷系統(tǒng),CPU就可以立即響就可以立即響應(yīng)并加以處理。應(yīng)并加以處理。
10、故障處理故障處理: :n計算機在運行時往往會出現(xiàn)一些故障,如斷電、計算機在運行時往往會出現(xiàn)一些故障,如斷電、存儲器奇偶校驗出錯、運算溢出等。存儲器奇偶校驗出錯、運算溢出等。n有了中斷系統(tǒng),當出現(xiàn)上述情況時,有了中斷系統(tǒng),當出現(xiàn)上述情況時,CPU可及時可及時轉(zhuǎn)去執(zhí)行故障處理程序,自行處理故障而不必停轉(zhuǎn)去執(zhí)行故障處理程序,自行處理故障而不必停機。機。5.3 89C51中斷系統(tǒng)結(jié)構(gòu)及中斷控制中斷系統(tǒng)結(jié)構(gòu)及中斷控制89C51中斷系統(tǒng)的五個中斷源中斷系統(tǒng)的五個中斷源(結(jié)構(gòu)如圖(結(jié)構(gòu)如圖5-3) INT0外部中斷外部中斷0請求,低電平有效,通過請求,低電平有效,通過P3.2引引腳輸入腳輸入 INT1外部中
11、斷外部中斷1請求,低電平有效,通過請求,低電平有效,通過P3.3引引腳輸入腳輸入 T0定時器定時器/計算器計算器0溢出中斷請求溢出中斷請求 T1定時器定時器/計算器計算器0溢出中斷請求溢出中斷請求 TX/RX串行口中斷請求串行口中斷請求一、一、89C51中斷源中斷源中斷源:中斷源:nI/O設(shè)備設(shè)備鍵盤、打印機、鍵盤、打印機、A/D轉(zhuǎn)換器、轉(zhuǎn)換器、D/A轉(zhuǎn)換器完成自身的操轉(zhuǎn)換器完成自身的操作后向作后向CPU申請中斷,請求服務(wù)申請中斷,請求服務(wù)n硬件故障硬件故障電源斷電時,需要將寄存器、累加器、標志位保存,電源斷電時,需要將寄存器、累加器、標志位保存,以便重新供電后繼續(xù)運行以便重新供電后繼續(xù)運行R
12、AM存儲器斷電時將內(nèi)容保存在如硬盤、存儲器斷電時將內(nèi)容保存在如硬盤、FLASH ROM中,以便供電恢復(fù)后繼續(xù)工作中,以便供電恢復(fù)后繼續(xù)工作n實時時鐘實時時鐘系統(tǒng)中的時鐘可以采用獨立時鐘系統(tǒng),通過中斷向系統(tǒng)中的時鐘可以采用獨立時鐘系統(tǒng),通過中斷向CPU提供時鐘源,節(jié)省提供時鐘源,節(jié)省CPU的處理時間的處理時間n調(diào)試程序時設(shè)置的中斷調(diào)試程序時設(shè)置的中斷程序調(diào)試時,通過設(shè)置斷點觀察運行中的寄存器、累程序調(diào)試時,通過設(shè)置斷點觀察運行中的寄存器、累加器、標志位狀態(tài);觀察中間運算結(jié)果加器、標志位狀態(tài);觀察中間運算結(jié)果P3.2P3.3P3.4P3.5二、中斷控制二、中斷控制n89C51中斷系統(tǒng)有以下四個特殊
13、功能寄存器:中斷系統(tǒng)有以下四個特殊功能寄存器:定時器控制寄存器定時器控制寄存器TCON(用六位)(用六位)串行口控制寄存器串行口控制寄存器SCON(用二位)(用二位)中斷允許寄存器中斷允許寄存器IE中斷優(yōu)先級寄存器中斷優(yōu)先級寄存器IP1、中斷請求標志、中斷請求標志n 在中斷源與在中斷源與CPU之間有二級中斷允許控制邏輯電之間有二級中斷允許控制邏輯電路,類似開關(guān),其中第一級為一個總開關(guān),第二路,類似開關(guān),其中第一級為一個總開關(guān),第二級為五個分開關(guān),由級為五個分開關(guān),由IE控制??刂?。應(yīng)當指出:應(yīng)當指出:n在在89C51復(fù)位時,復(fù)位時,IE各位被復(fù)位成各位被復(fù)位成“0”狀態(tài),狀態(tài),CPU因此而處于
14、關(guān)閉所有中斷狀態(tài)。所以,在因此而處于關(guān)閉所有中斷狀態(tài)。所以,在89C51復(fù)位以后,用戶必須通過主程序中的指令復(fù)位以后,用戶必須通過主程序中的指令來開放所需中斷,以便相應(yīng)中斷請求來到時被來開放所需中斷,以便相應(yīng)中斷請求來到時被CPU所響應(yīng)。所響應(yīng)。 3、中斷優(yōu)先級控制、中斷優(yōu)先級控制n CPU同一時間只能響應(yīng)一個中斷請求。若同時來同一時間只能響應(yīng)一個中斷請求。若同時來了兩個或兩個以上中斷請求,就必須有先有了兩個或兩個以上中斷請求,就必須有先有后。后。 !n為此將為此將5個中斷源分成高級、低級兩個級別,高級個中斷源分成高級、低級兩個級別,高級優(yōu)先,由優(yōu)先,由IP控制??刂啤3鰪S前已由廠家固化順序出
15、廠前已由廠家固化順序事先約定事先約定n中斷優(yōu)先原則:(概括為四句話)中斷優(yōu)先原則:(概括為四句話)n1 1、低級不打斷高級、低級不打斷高級n2 2、高級不睬低級、高級不睬低級n3 3、同級不能打斷、同級不能打斷n4 4、同級、同時中斷,事先約定。、同級、同時中斷,事先約定。 CPUCPU在執(zhí)行主程序在執(zhí)行主程序低級中低級中斷請求斷請求響應(yīng)低級中斷請求響應(yīng)低級中斷請求CPUCPU執(zhí)行低級執(zhí)行低級中斷服務(wù)程序中斷服務(wù)程序高級中高級中斷請求斷請求響應(yīng)高級中斷請求響應(yīng)高級中斷請求CPUCPU執(zhí)行高級執(zhí)行高級中斷服務(wù)程序中斷服務(wù)程序返回低級中斷程序返回低級中斷程序返回主程序返回主程序n例:設(shè)例:設(shè)89C
16、51的片外中斷為高優(yōu)先級,片內(nèi)中的片外中斷為高優(yōu)先級,片內(nèi)中斷為低優(yōu)先級。試設(shè)置斷為低優(yōu)先級。試設(shè)置IP相應(yīng)值。相應(yīng)值。(a)用字節(jié)操作指令)用字節(jié)操作指令 MOV IP,#05H 或或 MOV 0B8H,#05H(b)用位操作指令)用位操作指令 SETB PX0 SETB PX1 CLR PS CLR PT0 CLR PT15.4 5.4 中斷響應(yīng)及中斷處理過程中斷響應(yīng)及中斷處理過程n中斷處理過程可分為中斷處理過程可分為 三個階段:三個階段:中斷響應(yīng)中斷響應(yīng)中斷處理中斷處理中斷返回中斷返回以外設(shè)提出接收數(shù)據(jù)為例,以外設(shè)提出接收數(shù)據(jù)為例,如右圖:如右圖:保護現(xiàn)場保護現(xiàn)場為外設(shè)服務(wù)為外設(shè)服務(wù)恢復(fù)
17、現(xiàn)場恢復(fù)現(xiàn)場主程序主程序KK+1NN+m返回返回中中斷斷處處理理一、中斷響應(yīng)一、中斷響應(yīng)1、中斷響應(yīng)條件:、中斷響應(yīng)條件:有中斷源發(fā)出中斷請求;有中斷源發(fā)出中斷請求;中斷總允許位中斷總允許位EA1,即,即CPU開中斷;開中斷;申請中斷的中斷源的中斷允許位為申請中斷的中斷源的中斷允許位為1,即中斷沒有,即中斷沒有被屏蔽;被屏蔽;無同級或更高級中斷正在被服務(wù);無同級或更高級中斷正在被服務(wù);當前的指令周期已經(jīng)結(jié)束;當前的指令周期已經(jīng)結(jié)束;若現(xiàn)行指令為若現(xiàn)行指令為RETI或者是訪問或者是訪問IE或或IP指令時,該指令時,該指令以及緊接著的另一條指令已經(jīng)執(zhí)行完。指令以及緊接著的另一條指令已經(jīng)執(zhí)行完。2
18、2、中斷響應(yīng)的過程、中斷響應(yīng)的過程 89C51的的CPU在每個機器周期的在每個機器周期的S5P2期間順序采期間順序采樣每個中斷源,樣每個中斷源,CPU在下一個機器在下一個機器S6期間按優(yōu)先級期間按優(yōu)先級順序查詢中斷標志,如查詢到某個中斷標志為順序查詢中斷標志,如查詢到某個中斷標志為1,將,將在接下來的機器周期在接下來的機器周期S1期間按優(yōu)先級進行中斷處理。期間按優(yōu)先級進行中斷處理。中斷系統(tǒng)通過硬件自動將相應(yīng)的中斷矢量地址裝入中斷系統(tǒng)通過硬件自動將相應(yīng)的中斷矢量地址裝入PC,以便進入相應(yīng)的中斷服務(wù)程序。,以便進入相應(yīng)的中斷服務(wù)程序。 89C51單片機的中斷系統(tǒng)中有兩個不可編程的單片機的中斷系統(tǒng)中
19、有兩個不可編程的“優(yōu)先級優(yōu)先級”觸發(fā)器:一個是觸發(fā)器:一個是“高優(yōu)先級生效高優(yōu)先級生效”觸觸發(fā)器;一個是發(fā)器;一個是“低優(yōu)先級生效低優(yōu)先級生效”觸發(fā)器。觸發(fā)器。 89C51單片機一旦響應(yīng)中斷,首先置位相應(yīng)的單片機一旦響應(yīng)中斷,首先置位相應(yīng)的中斷中斷“優(yōu)先級生效優(yōu)先級生效”觸發(fā)器,然后由觸發(fā)器,然后由硬件硬件執(zhí)行一執(zhí)行一條長調(diào)用指令條長調(diào)用指令LCALL,把當前,把當前PC值壓入堆棧,值壓入堆棧,以保護斷點,再將相應(yīng)的中斷服務(wù)程序的入口地以保護斷點,再將相應(yīng)的中斷服務(wù)程序的入口地址送入址送入PC,于是,于是CPU接著從中斷服務(wù)程序的入接著從中斷服務(wù)程序的入口開始執(zhí)行??陂_始執(zhí)行。五個中斷源:五個
20、中斷源: 入口地址入口地址 外部中斷外部中斷0(/INT0) 0003H T0溢出中斷溢出中斷 000BH 外部中斷外部中斷1(/INT1) 0013H T1溢出中斷溢出中斷 001BH 串口中斷串口中斷 0023H 各中斷源及與之對應(yīng)的矢量地址如下:各中斷源及與之對應(yīng)的矢量地址如下:編寫中斷服務(wù)程序時應(yīng)注意:編寫中斷服務(wù)程序時應(yīng)注意:在中斷矢量地址單元處放一條無條件轉(zhuǎn)移指令在中斷矢量地址單元處放一條無條件轉(zhuǎn)移指令(如(如LJMP XXXXH),使中斷服務(wù)程序可靈活地),使中斷服務(wù)程序可靈活地安排在安排在64KB程序存儲器的任何空間。程序存儲器的任何空間。在中斷服務(wù)程序中,用戶應(yīng)注意用軟件保護
21、現(xiàn)場,在中斷服務(wù)程序中,用戶應(yīng)注意用軟件保護現(xiàn)場,以免中斷返回后丟失原寄存器、累加器中的信息。以免中斷返回后丟失原寄存器、累加器中的信息。若要在執(zhí)行當前中斷程序時禁止更高優(yōu)先級中斷,若要在執(zhí)行當前中斷程序時禁止更高優(yōu)先級中斷,可以先用軟件關(guān)閉可以先用軟件關(guān)閉CPU中斷或禁止某中斷源中斷,中斷或禁止某中斷源中斷,在中斷返回前再開放中斷。在中斷返回前再開放中斷。3、對中斷請求的撤銷、對中斷請求的撤銷1)定時器溢出中斷請求的撤除)定時器溢出中斷請求的撤除 2)串行口中斷請求的撤除)串行口中斷請求的撤除 TI和和RI是串行口中斷的標志位,中斷系統(tǒng)不能自是串行口中斷的標志位,中斷系統(tǒng)不能自動將它們撤除,
22、這是因為動將它們撤除,這是因為89C51進入串行口中斷服進入串行口中斷服務(wù)程序后常需要對它們進行檢測,以測定串行口發(fā)務(wù)程序后常需要對它們進行檢測,以測定串行口發(fā)生了接收中斷還是發(fā)送中斷。為了防止生了接收中斷還是發(fā)送中斷。為了防止CPU再次響再次響應(yīng)這類中斷,用戶應(yīng)在中斷服務(wù)程序的適當位置處應(yīng)這類中斷,用戶應(yīng)在中斷服務(wù)程序的適當位置處通過如下指令將它們撤除。通過如下指令將它們撤除。 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響應(yīng)中斷時相響應(yīng)中斷時相應(yīng)中斷標志應(yīng)中斷標志IE0或或IE1能自動復(fù)位成能自動復(fù)位成“0”狀態(tài),但若外部中斷源狀態(tài),但若外部中斷源不能及時撤除它在不能及時撤除它在INT0或或INT1上的低電平,就會再次使已經(jīng)上的低電平,就會再次使已經(jīng)變變“0”的中斷標志的中斷標志IE0或或IE1置位,這是絕對不能允許的。
24、因此,置位,這是絕對不能允許的。因此,電平觸發(fā)方式外部中斷請求的撤除必須使電平觸發(fā)方式外部中斷請求的撤除必須使INT0或或INT1上的低上的低電平隨著其中斷被電平隨著其中斷被CPU響應(yīng)而變?yōu)楦唠娖健m憫?yīng)而變?yōu)楦唠娖健?、中斷響應(yīng)時間、中斷響應(yīng)時間 在實時控制系統(tǒng)中。為了滿足控制速度要求,常在實時控制系統(tǒng)中。為了滿足控制速度要求,常要弄清要弄清CPU響應(yīng)中斷所需的時間。響應(yīng)中斷所需的時間。 中斷響應(yīng)時間:中斷請求有效(標志位置中斷響應(yīng)時間:中斷請求有效(標志位置“1”)到)到轉(zhuǎn)向中斷入口地址所需的機器周期數(shù)。轉(zhuǎn)向中斷入口地址所需的機器周期數(shù)。 響應(yīng)中斷的時間有最短和最長之分:響應(yīng)中斷的時間有最短
25、和最長之分:(1)最短需要)最短需要3個機器周期個機器周期(2)最長需要)最長需要8個周期個周期 若若CPU在執(zhí)行在執(zhí)行RETI(或訪問(或訪問IEIP)指令的第一個)指令的第一個機器周期中查詢到有了某中斷源的中斷請求(設(shè)該中機器周期中查詢到有了某中斷源的中斷請求(設(shè)該中斷源的中斷是開放的),則斷源的中斷是開放的),則89C51需要再執(zhí)行一條指需要再執(zhí)行一條指令才會響應(yīng)這個中斷請求。在這種情況下,令才會響應(yīng)這個中斷請求。在這種情況下,CPU響應(yīng)響應(yīng)中斷的時間最長,共需中斷的時間最長,共需8個機器周期。個機器周期。 二、中斷處理二、中斷處理 CPU響應(yīng)中斷后即轉(zhuǎn)至中斷服務(wù)程序入口,執(zhí)行中響應(yīng)中斷
26、后即轉(zhuǎn)至中斷服務(wù)程序入口,執(zhí)行中斷服務(wù)程序。從中斷服務(wù)程序的第一條指令開始到返斷服務(wù)程序。從中斷服務(wù)程序的第一條指令開始到返回指令為止,這個過程稱為中斷處理或中斷服務(wù)。不回指令為止,這個過程稱為中斷處理或中斷服務(wù)。不同的中斷源服務(wù)的內(nèi)容及要求各不相同,其處理過程同的中斷源服務(wù)的內(nèi)容及要求各不相同,其處理過程也就有所區(qū)別。也就有所區(qū)別。 一般情況下,中斷處理包括兩部分內(nèi)容:一是一般情況下,中斷處理包括兩部分內(nèi)容:一是保護保護現(xiàn)場現(xiàn)場。二是為。二是為中斷源服務(wù)中斷源服務(wù)。三、中斷返回三、中斷返回(1)使相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器清)使相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器清0。(2)從堆棧中彈出棧頂?shù)膬蓚€字節(jié)內(nèi)容)從堆棧
27、中彈出棧頂?shù)膬蓚€字節(jié)內(nèi)容 送送PC恢復(fù)斷點?;謴?fù)斷點。(3)CPU接著中斷處繼續(xù)執(zhí)行原程序。接著中斷處繼續(xù)執(zhí)行原程序。恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場n在中斷服務(wù)程序中,最后一條指令必須為中斷返回在中斷服務(wù)程序中,最后一條指令必須為中斷返回指令指令RETInCPU執(zhí)行該指令時,一方面清除中斷響應(yīng)時所置位執(zhí)行該指令時,一方面清除中斷響應(yīng)時所置位的的“優(yōu)先級生效優(yōu)先級生效”觸發(fā)器,另一方面從當前棧頂彈觸發(fā)器,另一方面從當前棧頂彈出斷點地址送入程序計數(shù)器出斷點地址送入程序計數(shù)器PC,從而返回主程序,從而返回主程序n中斷處理中推入堆棧的寄存器、累加器、標志位需中斷處理中推入堆棧的寄存器、累加器、標志位需要在執(zhí)行返回指
28、令要在執(zhí)行返回指令RETI之前用軟件從堆?;謴?fù),之前用軟件從堆棧恢復(fù),采用采用POP指令指令n注意在中斷服務(wù)程序中,注意在中斷服務(wù)程序中,PUSH和和POP指令必須成指令必須成對使用,否則,不能正確返回斷點對使用,否則,不能正確返回斷點n恢復(fù)現(xiàn)場期間,為了防止更高優(yōu)先級中斷破壞現(xiàn)場恢復(fù)現(xiàn)場期間,為了防止更高優(yōu)先級中斷破壞現(xiàn)場內(nèi)容,需要關(guān)閉中斷允許位內(nèi)容,需要關(guān)閉中斷允許位EAP1.0P1.1P1.2P1.3INT0+5V89C51INT1裝置裝置1裝置裝置2裝置裝置3裝置裝置4圖圖511 多個外部中斷源連接法多個外部中斷源連接法二、中斷加查詢擴展中斷源二、中斷加查詢擴展中斷源 利用利用89C5
29、189C51的兩根外部的兩根外部中斷輸入線。每一中斷輸中斷輸入線。每一中斷輸入線可以通過入線可以通過“線或線或”的的關(guān)系連接多個外部中斷源,關(guān)系連接多個外部中斷源,同時利用輸入端口線作為同時利用輸入端口線作為各中斷源的識別線。具體各中斷源的識別線。具體線路見圖線路見圖5 51111所示的多個所示的多個外部中斷源連接方法。外部中斷源連接方法。5.5 外部中斷擴展方法外部中斷擴展方法一、利用定時器擴展外部中斷源一、利用定時器擴展外部中斷源有關(guān)中斷服務(wù)程序的片斷如下:有關(guān)中斷服務(wù)程序的片斷如下: 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的中斷服務(wù)程序的中斷服務(wù)程序 AJMP EXITDV2: 裝置裝置2的中斷服務(wù)程序的中斷服務(wù)程序 AJMP EXITDV3: 裝置裝置3的中斷服務(wù)程序的中斷服務(wù)程序 AJMP EXITDV4: 裝置裝置4的中斷服務(wù)程序的中斷服務(wù)程序 AJMP EXIT一、主程序一、主程序1.主程序主程序的起始地址的起始地址n89C51系列單片機復(fù)位后,系列單片機復(fù)位后,(PC)=0000Hn0003H002BH分別為各中斷源分別為各中斷源的入口地址的入口地址n編程時
31、應(yīng)在編程時應(yīng)在0000H處寫一條跳轉(zhuǎn)處寫一條跳轉(zhuǎn)指令指令(一般為長跳轉(zhuǎn)指令一般為長跳轉(zhuǎn)指令),主程,主程序是以跳轉(zhuǎn)的目標地址作為起始序是以跳轉(zhuǎn)的目標地址作為起始地址開始編寫,一般從地址開始編寫,一般從0030H開開始,如圖所示始,如圖所示0000HLJMP00300030H主程序主程序5.6 中斷程序舉例中斷程序舉例2、主程序的初始化內(nèi)容主程序的初始化內(nèi)容n初始化初始化將用到的內(nèi)部部件或擴展芯片進行初始工作狀將用到的內(nèi)部部件或擴展芯片進行初始工作狀態(tài)設(shè)定。態(tài)設(shè)定。n特殊功能寄存器初始化設(shè)置特殊功能寄存器初始化設(shè)置單片機復(fù)位后,特殊功能寄存器單片機復(fù)位后,特殊功能寄存器IE、IP內(nèi)容均內(nèi)容均為為
32、00H,所以應(yīng)對,所以應(yīng)對IE、IP進行初始化編程,以進行初始化編程,以開放中斷,允許某些中斷源中斷和設(shè)置中斷優(yōu)開放中斷,允許某些中斷源中斷和設(shè)置中斷優(yōu)先級等。先級等。二、中斷服務(wù)程序二、中斷服務(wù)程序n1.中斷服務(wù)程序的起始地址中斷服務(wù)程序的起始地址中斷系統(tǒng)對五個中斷源分別規(guī)定了各自的入口中斷系統(tǒng)對五個中斷源分別規(guī)定了各自的入口地址,但這些入口地址相距很近地址,但這些入口地址相距很近(8個字節(jié)個字節(jié))如中斷服務(wù)程序的指令代碼少于如中斷服務(wù)程序的指令代碼少于8個字節(jié),則個字節(jié),則可從規(guī)定的中斷服務(wù)程序入口地址開始,直接可從規(guī)定的中斷服務(wù)程序入口地址開始,直接編寫中斷服務(wù)程序編寫中斷服務(wù)程序如中斷
33、服務(wù)程序的指令代碼大于如中斷服務(wù)程序的指令代碼大于8個字節(jié),則個字節(jié),則應(yīng)采用與主程序相同的方法,在相應(yīng)的入口處應(yīng)采用與主程序相同的方法,在相應(yīng)的入口處寫一條跳轉(zhuǎn)指令,并以跳轉(zhuǎn)指令的目標地址作寫一條跳轉(zhuǎn)指令,并以跳轉(zhuǎn)指令的目標地址作為中斷服務(wù)程序的起始地址進行編程為中斷服務(wù)程序的起始地址進行編程2、中斷服務(wù)程序編制中的注意事項、中斷服務(wù)程序編制中的注意事項(1)視需要確定是否保護現(xiàn)場;)視需要確定是否保護現(xiàn)場;(2)及時清除那些不能被硬件自動清除的中斷請求)及時清除那些不能被硬件自動清除的中斷請求標志,以免產(chǎn)生錯誤的中斷;標志,以免產(chǎn)生錯誤的中斷;(3)中斷服務(wù)程序中的壓棧()中斷服務(wù)程序中的
34、壓棧(PUSH)與出棧)與出棧(POP)指令必須成對使用,以確保中斷服務(wù)程序)指令必須成對使用,以確保中斷服務(wù)程序的正確返回;的正確返回;(4)主程序和中斷服務(wù)程序之間的參數(shù)傳遞與主程)主程序和中斷服務(wù)程序之間的參數(shù)傳遞與主程序和子程序的參數(shù)傳遞方式相同。序和子程序的參數(shù)傳遞方式相同。例:如圖所示,將例:如圖所示,將P1口的口的P1.4P1.7作為輸入位,作為輸入位,P1.0P1.3作為輸出位。要求利用作為輸出位。要求利用89C51將開關(guān)所設(shè)的將開關(guān)所設(shè)的數(shù)據(jù)讀入單片機內(nèi),并依次通過數(shù)據(jù)讀入單片機內(nèi),并依次通過P1.0P1.3輸出,驅(qū)動輸出,驅(qū)動發(fā)光二極管,以檢查發(fā)光二極管,以檢查P1.4P1.7輸入的電平情況(若輸輸入的電平情況(若輸入為高電平則相應(yīng)的入為高電平則相應(yīng)的LED亮)。現(xiàn)要求采用中斷邊沿觸亮)?,F(xiàn)要求采用中斷邊沿觸發(fā)方式,每中斷一次,完成一次讀發(fā)方式,每中斷一次,完成一次讀/寫操作。寫操作。源程序:源程序: ORG 0000H AJMP MAIN ORG 0003H AJMP INSER ORG 0030HMAIN:SETB EX0 SETB IT0 SETB EAHERE:SJMP HERE 中斷服務(wù)子程序:中斷服務(wù)子程序: ORG 0200HINSER:MO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共交通工具維保合同
- 化纖制毛巾被企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 中藥材配方顆粒生產(chǎn)線企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 毛染整精加工企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 文藝合作合同范本
- NSI設(shè)備維保協(xié)議
- 中藥材種植智能納米過濾器企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 可調(diào)節(jié)啞鈴套裝行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 中藥糖尿病足治療液行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 鎳鈷礦采選企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 環(huán)境與可持續(xù)發(fā)展ppt課件(完整版)
- Linux操作系統(tǒng)課件(完整版)
- 跨境電商亞馬遜運營實務(wù)完整版ppt課件-整套課件-最全教學(xué)教程
- 浙美版小學(xué)六年級美術(shù)下冊全冊精品必備教學(xué)課件
- DB32∕T 4245-2022 城鎮(zhèn)供水廠生物活性炭失效判別和更換標準
- 建設(shè)工程圍擋標準化管理圖集(2022年版)
- 人教版七年級上冊歷史課程綱要
- 濕法冶金簡介
- 班主任培訓(xùn)-家校溝通課件
- 機器視覺論文英文
- 河南省縣普通高中學(xué)生學(xué)籍卡片
評論
0/150
提交評論