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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第5章 單片機C語言與匯編語言混合編程 單片機系統(tǒng)中,單片機系統(tǒng)中,CPUCPU和外部設(shè)備之間不斷進行信息的傳和外部設(shè)備之間不斷進行信息的傳輸。通常輸。通常CPUCPU和外設(shè)之間的信息傳送方式有以下幾種:和外設(shè)之間的信息傳送方式有以下幾種:程序控制方式程序控制方式中斷方式中斷方式直接存儲器存取(直接存儲器存?。―MADMA)方式)方式第第5 5章章 MCS-51MCS-51單片機中斷系統(tǒng)單片機中斷系統(tǒng)5.1.15.1.1中斷的概念中斷的概念第5章 單片機C語言與匯編語言混合編程 1 1、 程序控制方式程序控制方式 可以分為以下兩種方式??梢苑譃橐韵聝煞N方式。 (1 1)無條件傳送方式)無條件傳

2、送方式 外設(shè)始終處于就緒狀態(tài),外設(shè)始終處于就緒狀態(tài),CPUCPU不必查詢外設(shè)的狀不必查詢外設(shè)的狀態(tài),直接進行信息傳輸態(tài),直接進行信息傳輸,稱為無條件傳送方式。,稱為無條件傳送方式。 此種信息傳送方式只適用于簡單的外設(shè)。如開此種信息傳送方式只適用于簡單的外設(shè)。如開 關(guān)和數(shù)碼段顯示器等。關(guān)和數(shù)碼段顯示器等。第5章 單片機C語言與匯編語言混合編程 (2 2)條件傳送方式)條件傳送方式 CPUCPU通過執(zhí)行程序不斷讀取并測試外部設(shè)備狀態(tài),通過執(zhí)行程序不斷讀取并測試外部設(shè)備狀態(tài),如如果輸入設(shè)備處于準(zhǔn)備好狀態(tài)或輸出設(shè)備為空閑狀態(tài)時,則果輸入設(shè)備處于準(zhǔn)備好狀態(tài)或輸出設(shè)備為空閑狀態(tài)時,則CPUCPU執(zhí)行傳送信

3、息操作。執(zhí)行傳送信息操作。 由于條件傳送方式需要由于條件傳送方式需要CPUCPU不斷地查詢外部設(shè)備的狀不斷地查詢外部設(shè)備的狀態(tài),然后才進行信息傳送,所以態(tài),然后才進行信息傳送,所以也稱為也稱為“查詢式傳送查詢式傳送”。第5章 單片機C語言與匯編語言混合編程2 2、 中斷方式中斷方式 外部設(shè)備與外部設(shè)備與CPUCPU之間以中斷信號作為數(shù)據(jù)交換的控之間以中斷信號作為數(shù)據(jù)交換的控制信號制信號。當(dāng)外部設(shè)備需要與當(dāng)外部設(shè)備需要與CPUCPU進行數(shù)據(jù)交換時,由接口部進行數(shù)據(jù)交換時,由接口部件向件向CPUCPU發(fā)出一個請求信號,發(fā)出一個請求信號,CPUCPU響應(yīng)這一中斷請求后,在響應(yīng)這一中斷請求后,在中斷服

4、務(wù)程序中完成一個字節(jié)或多個字節(jié)的信息交換。中斷服務(wù)程序中完成一個字節(jié)或多個字節(jié)的信息交換。中斷方式具有并行工作、實時傳輸、充分利用中斷方式具有并行工作、實時傳輸、充分利用CPUCPU效率等特點。效率等特點。第5章 單片機C語言與匯編語言混合編程 3 3、DMADMA方式方式( (直接存儲器存取直接存儲器存取) ) DMADMA控制方式主要用于存儲器和外設(shè)之間直接傳送、塊控制方式主要用于存儲器和外設(shè)之間直接傳送、塊傳輸。傳輸。DMADMA請求總線:請求總線:當(dāng)某一外部設(shè)備需要輸入當(dāng)某一外部設(shè)備需要輸入/ /輸出一批數(shù)輸出一批數(shù)據(jù)時,向據(jù)時,向DMADMA控制器發(fā)出請求,控制器發(fā)出請求,DMADM

5、A控制器接收到這一請求后,控制器接收到這一請求后,向向CPUCPU發(fā)出總線請求信號。發(fā)出總線請求信號。第5章 單片機C語言與匯編語言混合編程 DMADMA控制數(shù)據(jù)傳輸:控制數(shù)據(jù)傳輸:CPUCPU響應(yīng)響應(yīng)DMADMA的請求,把總線使用的請求,把總線使用權(quán)交給權(quán)交給DMADMA控制器,控制器,DMADMA將外設(shè)數(shù)據(jù)讀入、并直接寫入存儲器,將外設(shè)數(shù)據(jù)讀入、并直接寫入存儲器,或?qū)?shù)據(jù)從存儲器讀出并直接送給外設(shè)。或?qū)?shù)據(jù)從存儲器讀出并直接送給外設(shè)。傳送過程不需要傳送過程不需要CPCPU U參與。參與。DMADMA釋放總線:釋放總線:當(dāng)一批數(shù)據(jù)傳送后,當(dāng)一批數(shù)據(jù)傳送后, DMADMA控制器再控制器再向向C

6、PUCPU發(fā)出發(fā)出“結(jié)束總線請求結(jié)束總線請求”,CPUCPU響應(yīng)請求,收回總線使用響應(yīng)請求,收回總線使用權(quán)。權(quán)。DMADMA方式速度高、效率高,可以與方式速度高、效率高,可以與CPUCPU并行工作。并行工作。第5章 單片機C語言與匯編語言混合編程 CPUCPU執(zhí)行程序時,由于發(fā)執(zhí)行程序時,由于發(fā)生了某種隨機的事件生了某種隨機的事件( (外部或外部或內(nèi)部內(nèi)部) ),引起,引起CPUCPU暫時中斷正在暫時中斷正在運行的程序,轉(zhuǎn)去執(zhí)行一段特運行的程序,轉(zhuǎn)去執(zhí)行一段特殊的服務(wù)程序殊的服務(wù)程序( (稱為中斷服務(wù)稱為中斷服務(wù)程序或中斷處理程序程序或中斷處理程序) ),以處,以處理該事件,該事件處理完后又理

7、該事件,該事件處理完后又返回被中斷的程序繼續(xù)執(zhí)行,返回被中斷的程序繼續(xù)執(zhí)行,這一過程稱為中斷。這一過程稱為中斷。中斷的定義中斷的定義第5章 單片機C語言與匯編語言混合編程 2 2、中斷源、中斷源 引起引起CPUCPU中斷的設(shè)備和事件就是中斷源。中斷的設(shè)備和事件就是中斷源。 3 3、中斷請求、中斷請求 中斷源向中斷源向CPUCPU發(fā)出的請求處理信號,即中斷請求或中發(fā)出的請求處理信號,即中斷請求或中斷申請。斷申請。 4 4、中斷響應(yīng)、中斷響應(yīng) CPUCPU暫時中止正在處理的事情,轉(zhuǎn)去處理突發(fā)事件的暫時中止正在處理的事情,轉(zhuǎn)去處理突發(fā)事件的過程,稱為過程,稱為中斷響應(yīng)中斷響應(yīng)。第5章 單片機C語言與

8、匯編語言混合編程5 5、其他概念、其他概念 中斷系統(tǒng):中斷系統(tǒng):實現(xiàn)中斷功能的部件稱為,又稱中斷機構(gòu)。實現(xiàn)中斷功能的部件稱為,又稱中斷機構(gòu)。中斷服務(wù)程序:中斷服務(wù)程序:CPUCPU響應(yīng)中斷后,處理中斷事件的程響應(yīng)中斷后,處理中斷事件的程序。序。斷點:斷點:CPUCPU響應(yīng)中斷請求,轉(zhuǎn)去響應(yīng)中斷請求,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序時執(zhí)行中斷服務(wù)程序時的的PCPC值,即為斷點地址值,即為斷點地址。中斷返回:中斷返回:CPUCPU執(zhí)行完中斷服務(wù)程序后回到斷點的過執(zhí)行完中斷服務(wù)程序后回到斷點的過程。程。第5章 單片機C語言與匯編語言混合編程 中斷系統(tǒng)是指能夠?qū)崿F(xiàn)中斷功能的那部分硬中斷系統(tǒng)是指能夠?qū)崿F(xiàn)中斷功能的那

9、部分硬件電路和軟件部分。件電路和軟件部分。 實現(xiàn)中斷請求實現(xiàn)中斷請求 實現(xiàn)排隊判優(yōu)實現(xiàn)排隊判優(yōu)( (中斷優(yōu)先級排隊中斷優(yōu)先級排隊) ) 實現(xiàn)中斷響應(yīng)實現(xiàn)中斷響應(yīng) 實現(xiàn)中斷服務(wù)程序的轉(zhuǎn)接實現(xiàn)中斷服務(wù)程序的轉(zhuǎn)接 實現(xiàn)中斷返回實現(xiàn)中斷返回 實現(xiàn)多重中斷實現(xiàn)多重中斷第5章 單片機C語言與匯編語言混合編程中斷源類型中斷源類型引起引起CPUCPU中斷的事件,發(fā)出中斷請求的來源。中斷的事件,發(fā)出中斷請求的來源。 1 1、外部設(shè)備中斷源、外部設(shè)備中斷源2 2、控制對象中斷源、控制對象中斷源3 3、故障中斷源、故障中斷源4 4、定時脈沖中斷源、定時脈沖中斷源第5章 單片機C語言與匯編語言混合編程中斷分類中斷分類

10、 中斷按照功能通??梢苑殖桑嚎善帘?、非屏蔽中斷按照功能通??梢苑殖桑嚎善帘巍⒎瞧帘魏蛙浖袛嗳惡蛙浖袛嗳? 1、可屏蔽中斷、可屏蔽中斷 程控程控“開中斷開中斷/ /關(guān)中斷關(guān)中斷”。軟件設(shè)置允許。軟件設(shè)置允許/ /禁止禁止CPUCPU響應(yīng)中斷。響應(yīng)中斷。2 2、非屏蔽中斷、非屏蔽中斷 指指CPUCPU對來自對來自/NMI/NMI中斷輸入線上的中斷請求是不可中斷輸入線上的中斷請求是不可屏蔽(或控制)的。屏蔽(或控制)的。第5章 單片機C語言與匯編語言混合編程3 3軟件中斷軟件中斷 指人們可以通過相應(yīng)的中斷指令使指人們可以通過相應(yīng)的中斷指令使CPUCPU響應(yīng)中斷。響應(yīng)中斷。CPUCPU只要執(zhí)行

11、這種指令就可以轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序只要執(zhí)行這種指令就可以轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序執(zhí)行,以完成相應(yīng)的中斷功能。執(zhí)行,以完成相應(yīng)的中斷功能。中斷分類中斷分類第5章 單片機C語言與匯編語言混合編程低級中斷請求低級中斷請求RETI主程序主程序高級中斷服務(wù)子程序高級中斷服務(wù)子程序返主程序返主程序高級中斷請求高級中斷請求返低級中斷返低級中斷RETI低級中斷服務(wù)子程序低級中斷服務(wù)子程序低級中斷服務(wù)子程序低級中斷服務(wù)子程序第5章 單片機C語言與匯編語言混合編程 5.1.2 5.1.2 中斷系統(tǒng)的結(jié)構(gòu)中斷系統(tǒng)的結(jié)構(gòu) 專門討論專門討論MCS-51MCS-51的中斷源和中斷標(biāo)志、的中斷源和中斷標(biāo)志、MCS-51MC

12、S-51對對中隊請求的控制和響應(yīng)、中斷響應(yīng)時間、中分段撤中隊請求的控制和響應(yīng)、中斷響應(yīng)時間、中分段撤除和中斷系統(tǒng)初始化。除和中斷系統(tǒng)初始化。第5章 單片機C語言與匯編語言混合編程第5章 單片機C語言與匯編語言混合編程第5章 單片機C語言與匯編語言混合編程第5章 單片機C語言與匯編語言混合編程第5章 單片機C語言與匯編語言混合編程第5章 單片機C語言與匯編語言混合編程例例1 假設(shè)允許假設(shè)允許INT0、INT1、T0、T1中斷,試設(shè)置中斷,試設(shè)置IE的值。的值。解:解:(1)用)用C語言字節(jié)操作:語言字節(jié)操作:IE=0 x8f; (2)用)用C語言位操作指令語言位操作指令 EX0=1;/允許外部中

13、斷允許外部中斷0中斷中斷 ET0=1;/允許定時允許定時/計數(shù)器計數(shù)器0中斷中斷 EX1=1;/允許外部中斷允許外部中斷1中斷中斷 ET1=1;/允許定時允許定時/計數(shù)器計數(shù)器1中斷中斷 EA = 1/開總中斷控制開總中斷控制 匯編語言匯編語言 (1)用字節(jié)操作指令)用字節(jié)操作指令: MOV IE,#8FH (2)用位操作指令)用位操作指令: SETB EX0;允許外部中斷;允許外部中斷0中斷中斷 SETB ET0;允許定時;允許定時/計數(shù)器計數(shù)器0中斷中斷 SETB EX1;允許外部中斷;允許外部中斷1中斷中斷 SETB ET1;允許定時;允許定時/計數(shù)器計數(shù)器1中斷中斷 SETB EA ;

14、開總中斷控制位;開總中斷控制位第5章 單片機C語言與匯編語言混合編程第5章 單片機C語言與匯編語言混合編程第5章 單片機C語言與匯編語言混合編程第5章 單片機C語言與匯編語言混合編程例例2 2 設(shè)定時器和串行口中斷為高優(yōu)先級,兩個外部中斷設(shè)定時器和串行口中斷為高優(yōu)先級,兩個外部中斷為低優(yōu)先級,試設(shè)置為低優(yōu)先級,試設(shè)置IPIP的值。的值。解:解:C C語言程序語言程序IP=0 x3aIP=0 x3a;匯編語言程序匯編語言程序: (1 1)使用字節(jié)操作指令:)使用字節(jié)操作指令: MOV IP,#3AHMOV IP,#3AH(2 2)使用位操作指令:)使用位操作指令: CLRCLRPX0PX0;設(shè)置

15、外部中斷;設(shè)置外部中斷0 0為低級中斷為低級中斷第5章 單片機C語言與匯編語言混合編程CLRCLRPX1PX1;置外部中斷;置外部中斷1 1為低級中斷為低級中斷SETBSETBPT0PT0;置定時器;置定時器/ /計數(shù)器計數(shù)器0 0為高級中斷為高級中斷SETBSETBPT1PT1;置定時器;置定時器/ /計數(shù)器計數(shù)器0 0為高級中斷為高級中斷SETBSETBPSPS;置串行口中斷為高優(yōu)先級;置串行口中斷為高優(yōu)先級SETBSETBPT2PT2;置定時器;置定時器/ /計數(shù)器計數(shù)器2 2為高級中斷為高級中斷 第5章 單片機C語言與匯編語言混合編程5.3 5.3 中斷處理中斷處理一、中斷響應(yīng)條件一、

16、中斷響應(yīng)條件(1 1)中斷源有中斷請求;)中斷源有中斷請求;(2 2)中斷總允許位)中斷總允許位EA=1EA=1;(3 3)發(fā)出中斷請求的中斷源的中斷允許控制位為)發(fā)出中斷請求的中斷源的中斷允許控制位為1 1。在滿足以上條件的基礎(chǔ)上,若有下列任何一種情況存在滿足以上條件的基礎(chǔ)上,若有下列任何一種情況存在,硬件生成的長調(diào)用指令在,硬件生成的長調(diào)用指令“LCALL”LCALL”將被封鎖。將被封鎖。 第5章 單片機C語言與匯編語言混合編程(1 1)CPUCPU正在執(zhí)行一個同級或高優(yōu)先級的中斷服務(wù)程序;正在執(zhí)行一個同級或高優(yōu)先級的中斷服務(wù)程序;(2 2)正在執(zhí)行的指令尚未執(zhí)行完;)正在執(zhí)行的指令尚未執(zhí)

17、行完;(3 3)正在執(zhí)行中斷返回指令)正在執(zhí)行中斷返回指令RETIRETI或者對寄存器或者對寄存器IEIE、IPIP進進行讀行讀/ /寫的指令。寫的指令。 CPUCPU在執(zhí)行完上述指令之后,要再執(zhí)行一條指令,才在執(zhí)行完上述指令之后,要再執(zhí)行一條指令,才能響應(yīng)中斷請求。能響應(yīng)中斷請求。第5章 單片機C語言與匯編語言混合編程二、中斷響應(yīng)過程二、中斷響應(yīng)過程 從中斷請求發(fā)生直到被響應(yīng),準(zhǔn)備去執(zhí)行中斷服務(wù)程從中斷請求發(fā)生直到被響應(yīng),準(zhǔn)備去執(zhí)行中斷服務(wù)程序,此過程即中斷響應(yīng)過程。中斷響應(yīng)過程一般包括如下幾序,此過程即中斷響應(yīng)過程。中斷響應(yīng)過程一般包括如下幾個階段:個階段:1 1、中斷采樣并置位、中斷采樣

18、并置位 中斷采樣過程:中斷采樣過程:CPUCPU在每個機器周期在每個機器周期S5P2S5P2期間期間順序?qū)樞驅(qū)χ袛嘣床蓸?、置中斷?biāo)志。中斷源采樣、置中斷標(biāo)志。2 2、查詢標(biāo)志、查詢標(biāo)志 在中斷采樣后的下一個周期的在中斷采樣后的下一個周期的S6S6按優(yōu)先級順序查按優(yōu)先級順序查詢中斷標(biāo)志。詢中斷標(biāo)志。第5章 單片機C語言與匯編語言混合編程 3 3、響應(yīng)中斷、響應(yīng)中斷 在滿足中斷響應(yīng)條件情況下,若中斷標(biāo)志為在滿足中斷響應(yīng)條件情況下,若中斷標(biāo)志為1 1,在接下在接下來周期來周期S1S1開始開始按優(yōu)先級順序進行中斷處理。按優(yōu)先級順序進行中斷處理。中斷響應(yīng)過程的操作步驟:中斷響應(yīng)過程的操作步驟: 硬件自

19、動生成長調(diào)用指令硬件自動生成長調(diào)用指令LCALL addr16LCALL addr16,addr16addr16為為各中斷源的各中斷源的中斷程序入口地址中斷程序入口地址。 PCPC的內(nèi)容(即斷點地址)壓入堆棧。的內(nèi)容(即斷點地址)壓入堆棧。先低位地址,先低位地址,后高位地址,并修改堆棧指針后高位地址,并修改堆棧指針SPSP。 將中斷源的中斷入口地址裝入程序計數(shù)器將中斷源的中斷入口地址裝入程序計數(shù)器PCPC,執(zhí)行中,執(zhí)行中斷服務(wù)程序斷服務(wù)程序。第5章 單片機C語言與匯編語言混合編程三、中斷響應(yīng)的時間三、中斷響應(yīng)的時間 一般來說,一般來說,中斷的響應(yīng)時間最短為中斷的響應(yīng)時間最短為3 3個機器周期,

20、最長個機器周期,最長為為8 8個機器周期。個機器周期。 一般中斷請求標(biāo)志位查詢占一般中斷請求標(biāo)志位查詢占1 1個機器周期個機器周期。而機器周期。而機器周期又恰好是指令的最后一個機器周期。執(zhí)行此指令后,又恰好是指令的最后一個機器周期。執(zhí)行此指令后,CPUCPU將響應(yīng)中斷,產(chǎn)生硬件長調(diào)用指令。將響應(yīng)中斷,產(chǎn)生硬件長調(diào)用指令。 長調(diào)用長調(diào)用LCALLLCALL指令需要指令需要2 2個機器周期個機器周期。這樣,中斷響應(yīng)。這樣,中斷響應(yīng)時間為時間為3 3個機器周期。個機器周期。第5章 單片機C語言與匯編語言混合編程第5章 單片機C語言與匯編語言混合編程第5章 單片機C語言與匯編語言混合編程TCOND7D

21、6D5D4D3D2D1D0(88H)TF1TR1TF0TR0IE1IT1IE0IT0IT0(IT1):外部中斷0(或1)觸發(fā)方式控制位。IT0(或IT1)被設(shè)置為0,則選擇外部中斷為電平觸發(fā)方式;IT0(或IT1)被設(shè)置為1,則選擇外部中斷為邊沿觸發(fā)方式。在電平觸發(fā)方式時,CPU在每個機器周期的S5P2采樣P3.2(或P3.3),若P3.2(或P3.3)引腳為高電平,則IE0(IE1)清0,若P3.2(或P3.3)引腳為低電平,則IE0(IE1)置1,向CPU請求中斷;CPU響應(yīng)后能夠由硬件自動將IE0(或IE1)清零。在邊沿觸發(fā)方式時,若第一個機器周期采樣到P3.2(或P3.3)引腳為高電平

22、,第二個機器周期采樣到P3.2(或P3.3)引腳為低電平時,由IE0(或IE1)置1,向CPU請求中斷。第5章 單片機C語言與匯編語言混合編程 對于電平觸發(fā)方式,只要P3.2(或P3.3)引腳為低電平,IE0(或IE1)就置1,請求中斷,CPU響應(yīng)后不能夠由硬件自動將IE0(或IE1)清零。如果在中斷服務(wù)程序返回時,P3.2(或P3.3)引腳還為低電平,則又會中斷,這樣就會出一次請求,中斷多次的情況。為避免這種情況,只有在中斷服務(wù)程序返回前撤消P3.2(或P3.3)的中斷請求信號,即使P3.2(或P3.3)為高電平。通常通過下圖所示外電路來實現(xiàn) . INTx8051 P1.0 Q D SCLK

23、外部中斷請求信號第5章 單片機C語言與匯編語言混合編程 外部中斷請求信號通過D觸發(fā)器加到單片機P3.2(或P3.3)引腳上。當(dāng)外部中斷請求信號使D觸發(fā)器的CLK端發(fā)生正跳變時,由于D端接地,Q端輸出0,向單片機發(fā)出中斷請求。CPU響應(yīng)中斷后,利用一根口線P1.0作應(yīng)答線。 并在中斷服務(wù)程序中加以下兩條指令來撤除中斷請求。ANL P1,#0FEHORL P1,#01H第5章 單片機C語言與匯編語言混合編程5.4 5.4 中斷應(yīng)用舉例中斷應(yīng)用舉例一、中斷程序安排一、中斷程序安排1 1、 主程序主程序 MCS-51MCS-51單片機復(fù)位后,(單片機復(fù)位后,(PCPC)=0000H=0000H,主程序

24、只分配,主程序只分配0000H-0002H0000H-0002H共共3 3個單元。經(jīng)常個單元。經(jīng)常在在0000H0000H單元設(shè)置一條單元設(shè)置一條LJMPLJMP指指令,轉(zhuǎn)向主程序的入口處令,轉(zhuǎn)向主程序的入口處。而真正的主程序一般安排在中斷。而真正的主程序一般安排在中斷區(qū)域之后。區(qū)域之后。2 2、 各中斷服務(wù)程序各中斷服務(wù)程序 每個中斷服務(wù)程序在固定的位置由系統(tǒng)分配相鄰的每個中斷服務(wù)程序在固定的位置由系統(tǒng)分配相鄰的8 8個個單元單元用于存儲程序。用于存儲程序。第5章 單片機C語言與匯編語言混合編程程序組織的一般結(jié)構(gòu):程序組織的一般結(jié)構(gòu):ORGORG0000H0000HLJMPLJMPMAINM

25、AIN ORGORG0003H0003HLJMPLJMPINT_0INT_0ORGORG 0030H0030HMAIN: MAIN: .; ;主程序區(qū)主程序區(qū). ; ;進行初始化進行初始化SJMP $ SJMP $ ; ;等待中斷等待中斷INT_0INT_0:.; ;外部中斷外部中斷0 0服務(wù)子服務(wù)子程序程序.RETIRETI第5章 單片機C語言與匯編語言混合編程二、中斷初始化步驟二、中斷初始化步驟 89C5289C52單片機中,共有單片機中,共有6 6個中斷源,個中斷源,中斷的初始化主要是中斷的初始化主要是對由對由5 5個特殊功能寄存器個特殊功能寄存器TCONTCON、T2CONT2CON、

26、SCONSCON、IEIE和和IPIP的設(shè)置。的設(shè)置。中斷初始化部分一般放在主程序中。中斷初始化部分一般放在主程序中。中斷系統(tǒng)初始化步驟:中斷系統(tǒng)初始化步驟:1 1、開相應(yīng)中斷源的中斷、開相應(yīng)中斷源的中斷2 2、設(shè)定所有中斷源的中斷優(yōu)先級、設(shè)定所有中斷源的中斷優(yōu)先級3 3、若為外部中斷,則應(yīng)規(guī)定低電平還是、若為外部中斷,則應(yīng)規(guī)定低電平還是 負邊沿的中斷方式負邊沿的中斷方式第5章 單片機C語言與匯編語言混合編程三、中斷服務(wù)程序流程設(shè)計三、中斷服務(wù)程序流程設(shè)計 MCS-51MCS-51結(jié)束到中斷請求后,在條件滿足的情況下,響應(yīng)結(jié)束到中斷請求后,在條件滿足的情況下,響應(yīng)中斷并轉(zhuǎn)到對應(yīng)的中斷服務(wù)程序入

27、口處執(zhí)行中斷并轉(zhuǎn)到對應(yīng)的中斷服務(wù)程序入口處執(zhí)行 。中斷程序中斷程序主要由如下所示幾部分組成:主要由如下所示幾部分組成:1 1、保護現(xiàn)場、保護現(xiàn)場 中斷響應(yīng)后,系統(tǒng)已自動將斷點進行保護。中斷響應(yīng)后,系統(tǒng)已自動將斷點進行保護。 保護現(xiàn)場,主要針對中斷程序中的寄存器和存儲單保護現(xiàn)場,主要針對中斷程序中的寄存器和存儲單元。其位置在中斷服務(wù)程序前段。元。其位置在中斷服務(wù)程序前段。第5章 單片機C語言與匯編語言混合編程2 2、關(guān)中斷和開中斷、關(guān)中斷和開中斷 89C5289C52允許中斷嵌套允許中斷嵌套。為了在保護現(xiàn)場或恢復(fù)現(xiàn)場時,。為了在保護現(xiàn)場或恢復(fù)現(xiàn)場時,由于由于CPUCPU響應(yīng)其它中斷請求,而使現(xiàn)場

28、破壞,一般在保護和恢響應(yīng)其它中斷請求,而使現(xiàn)場破壞,一般在保護和恢復(fù)現(xiàn)場時,復(fù)現(xiàn)場時,CPUCPU不響應(yīng)外界的中斷請求,即關(guān)中斷。不響應(yīng)外界的中斷請求,即關(guān)中斷。 在保護現(xiàn)場和恢復(fù)現(xiàn)場前,關(guān)中斷;在保護現(xiàn)場和在保護現(xiàn)場和恢復(fù)現(xiàn)場前,關(guān)中斷;在保護現(xiàn)場和恢復(fù)現(xiàn)場后,再根據(jù)需要使恢復(fù)現(xiàn)場后,再根據(jù)需要使CPUCPU開中斷。開中斷。 第5章 單片機C語言與匯編語言混合編程3 3、中斷請求撤除、中斷請求撤除 CPUCPU響應(yīng)某中斷請求后,在響應(yīng)某中斷請求后,在中斷返回前中斷返回前,應(yīng)該,應(yīng)該撤消撤消該該中斷請求。中斷請求。中斷請求撤除方法如下:中斷請求撤除方法如下: 定時器定時器0 0、1 1溢出中斷

29、請求的撤除:允許溢出中斷請求的撤除:允許中斷的情況下,中斷的情況下,響應(yīng)中斷后,硬件會自動清除中斷請求標(biāo)志響應(yīng)中斷后,硬件會自動清除中斷請求標(biāo)志TFxTFx。 定時器定時器/ /計數(shù)器計數(shù)器2 2請求的撤除:請求的撤除:T2T2中斷請求標(biāo)志位中斷請求標(biāo)志位TF2TF2和和EXF2EXF2不能自動復(fù)位,須不能自動復(fù)位,須軟件復(fù)位軟件復(fù)位。 串行口中斷的撤除:串行口中斷的撤除:串行口中斷請求標(biāo)志位串行口中斷請求標(biāo)志位TITI和和RIRI,必須必須軟件復(fù)位軟件復(fù)位。第5章 單片機C語言與匯編語言混合編程 外部中斷的撤除外部中斷的撤除:外部中斷為:外部中斷為邊沿觸發(fā)邊沿觸發(fā)方式時,響應(yīng)方式時,響應(yīng)中斷

30、后,中斷后,硬件自動清除硬件自動清除IE0IE0或或IE1IE1。 外部中斷為電平觸發(fā)方式時外部中斷為電平觸發(fā)方式時。響應(yīng)中斷后,。響應(yīng)中斷后,硬件會自動硬件會自動清除清除IE0IE0或或IE1IE1。但由于加到或引腳的外部中斷請求信號并但由于加到或引腳的外部中斷請求信號并未撤除,中斷請求標(biāo)志未撤除,中斷請求標(biāo)志IE0IE0或或IE1IE1會再次被置會再次被置1 1,所以在,所以在CPUCPU響應(yīng)中斷后應(yīng)立即撤除或引腳上的低電平。響應(yīng)中斷后應(yīng)立即撤除或引腳上的低電平。 一般采用加一個一般采用加一個D D觸發(fā)器和幾條指令的方法來解決觸發(fā)器和幾條指令的方法來解決這個問題這個問題。第5章 單片機C語

31、言與匯編語言混合編程4 4、中斷源的識別、中斷源的識別 串行口中斷串行口中斷: :接收請求標(biāo)志接收請求標(biāo)志RIRI和發(fā)送中斷請求標(biāo)志位和發(fā)送中斷請求標(biāo)志位TITI共用中斷入口地址(共用中斷入口地址(0023H0023H),中斷允許位),中斷允許位ESES和中斷優(yōu)先級和中斷優(yōu)先級選擇位選擇位PSPS。 定時器定時器/ /計數(shù)器計數(shù)器2:2:中斷請求標(biāo)志中斷請求標(biāo)志TF2TF2和和EXF2EXF2,共用一個,共用一個中斷矢量地址(中斷矢量地址(002BH002BH),中斷允許位),中斷允許位ET2ET2和中斷優(yōu)先級選擇和中斷優(yōu)先級選擇位位PT2PT2。 在中斷服務(wù)程序中注意區(qū)分是哪種中斷引起的中斷

32、請在中斷服務(wù)程序中注意區(qū)分是哪種中斷引起的中斷請求,并清除其中斷請求標(biāo)志。求,并清除其中斷請求標(biāo)志。第5章 單片機C語言與匯編語言混合編程5 5、恢復(fù)現(xiàn)場、恢復(fù)現(xiàn)場 在結(jié)束中斷服務(wù)程序,在結(jié)束中斷服務(wù)程序,返回斷點處前返回斷點處前要要恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場。6 6、中斷返回、中斷返回 當(dāng)當(dāng)CPUCPU執(zhí)行到執(zhí)行到RETIRETI指令時,將指令時,將當(dāng)前棧頂當(dāng)前棧頂內(nèi)容彈出到內(nèi)容彈出到PCPC, ,恢恢復(fù)斷點復(fù)斷點。注意:中斷服務(wù)程序的最后一條指令,必須為注意:中斷服務(wù)程序的最后一條指令,必須為RETIRETI返回返回指令,不能為指令,不能為RETRET指令指令。第5章 單片機C語言與匯編語言混合編程例例3 3 如圖所示,將如圖所示,將P1P1口的口的P1.4P1.4P1.7P1.7作為作為輸入輸入位,位,P1.0P1.0P1.3P1.3作為作為輸出輸出位。位。要求利用要求利用89C5289C52將將開關(guān)所設(shè)的數(shù)據(jù)讀入開關(guān)所設(shè)的數(shù)據(jù)讀入單片機內(nèi),并依次單片機內(nèi),并依次通過通過P1.0P1.0P1.3P1.3輸出輸出,驅(qū)動發(fā)光二極管,以檢查,驅(qū)動發(fā)光二極管,以檢查P1.4P1.4P1.7P1.7輸入的電平情況(

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論