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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

10、 中斷按照功能通常可以分成:可屏蔽、非屏蔽中斷按照功能通??梢苑殖桑嚎善帘?、非屏蔽和軟件中斷三類和軟件中斷三類1 1、可屏蔽中斷、可屏蔽中斷 程控程控“開中斷開中斷/ /關(guān)中斷關(guān)中斷”。軟件設(shè)置允許。軟件設(shè)置允許/ /禁止禁止CPUCPU響應(yīng)中斷。響應(yīng)中斷。2 2、非屏蔽中斷、非屏蔽中斷 指指CPUCPU對(duì)來自對(duì)來自/NMI/NMI中斷輸入線上的中斷請(qǐng)求是不可中斷輸入線上的中斷請(qǐng)求是不可屏蔽(或控制)的。屏蔽(或控制)的。第5章 單片機(jī)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章 單片機(jī)C語言與匯編語言混合編程低級(jí)中斷請(qǐng)求低級(jí)中斷請(qǐng)求RETI主程序主程序高級(jí)中斷服務(wù)子程序高級(jí)中斷服務(wù)子程序返主程序返主程序高級(jí)中斷請(qǐng)求高級(jí)中斷請(qǐng)求返低級(jí)中斷返低級(jí)中斷RETI低級(jí)中斷服務(wù)子程序低級(jí)中斷服務(wù)子程序低級(jí)中斷服務(wù)子程序低級(jí)中斷服務(wù)子程序第5章 單片機(jī)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對(duì)對(duì)中隊(duì)請(qǐng)求的控制和響應(yīng)、中斷響應(yīng)時(shí)間、中分段撤中隊(duì)請(qǐng)求的控制和響應(yīng)、中斷響應(yīng)時(shí)間、中分段撤除和中斷系統(tǒng)初始化。除和中斷系統(tǒng)初始化。第5章 單片機(jī)C語言與匯編語言混合編程第5章 單片機(jī)C語言與匯編語言混合編程第5章 單片機(jī)C語言與匯編語言混合編程第5章 單片機(jī)C語言與匯編語言混合編程第5章 單片機(jī)C語言與匯編語言混合編程第5章 單片機(jī)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í)/計(jì)數(shù)器計(jì)數(shù)器0中斷中斷 EX1=1;/允許外部中斷允許外部中斷1中斷中斷 ET1=1;/允許定時(shí)允許定時(shí)/計(jì)數(shù)器計(jì)數(shù)器1中斷中斷 EA = 1/開總中斷控制開總中斷控制 匯編語言匯編語言 (1)用字節(jié)操作指令)用字節(jié)操作指令: MOV IE,#8FH (2)用位操作指令)用位操作指令: SETB EX0;允許外部中斷;允許外部中斷0中斷中斷 SETB ET0;允許定時(shí);允許定時(shí)/計(jì)數(shù)器計(jì)數(shù)器0中斷中斷 SETB EX1;允許外部中斷;允許外部中斷1中斷中斷 SETB ET1;允許定時(shí);允許定時(shí)/計(jì)數(shù)器計(jì)數(shù)器1中斷中斷 SETB EA ;

14、開總中斷控制位;開總中斷控制位第5章 單片機(jī)C語言與匯編語言混合編程第5章 單片機(jī)C語言與匯編語言混合編程第5章 單片機(jī)C語言與匯編語言混合編程第5章 單片機(jī)C語言與匯編語言混合編程例例2 2 設(shè)定時(shí)器和串行口中斷為高優(yōu)先級(jí),兩個(gè)外部中斷設(shè)定時(shí)器和串行口中斷為高優(yōu)先級(jí),兩個(gè)外部中斷為低優(yōu)先級(jí),試設(shè)置為低優(yōu)先級(jí),試設(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為低級(jí)中斷為低級(jí)中斷第5章 單片機(jī)C語言與匯編語言混合編程CLRCLRPX1PX1;置外部中斷;置外部中斷1 1為低級(jí)中斷為低級(jí)中斷SETBSETBPT0PT0;置定時(shí)器;置定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0為高級(jí)中斷為高級(jí)中斷SETBSETBPT1PT1;置定時(shí)器;置定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0為高級(jí)中斷為高級(jí)中斷SETBSETBPSPS;置串行口中斷為高優(yōu)先級(jí);置串行口中斷為高優(yōu)先級(jí)SETBSETBPT2PT2;置定時(shí)器;置定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器2 2為高級(jí)中斷為高級(jí)中斷 第5章 單片機(jī)C語言與匯編語言混合編程5.3 5.3 中斷處理中斷處理一、中斷響應(yīng)條件一、

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

32、請(qǐng)?jiān)谥袛喾?wù)程序中注意區(qū)分是哪種中斷引起的中斷請(qǐng)求,并清除其中斷請(qǐng)求標(biāo)志。求,并清除其中斷請(qǐng)求標(biāo)志。第5章 單片機(jī)C語言與匯編語言混合編程5 5、恢復(fù)現(xiàn)場(chǎng)、恢復(fù)現(xiàn)場(chǎng) 在結(jié)束中斷服務(wù)程序,在結(jié)束中斷服務(wù)程序,返回?cái)帱c(diǎn)處前返回?cái)帱c(diǎn)處前要要恢復(fù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)。6 6、中斷返回、中斷返回 當(dāng)當(dāng)CPUCPU執(zhí)行到執(zhí)行到RETIRETI指令時(shí),將指令時(shí),將當(dāng)前棧頂當(dāng)前棧頂內(nèi)容彈出到內(nèi)容彈出到PCPC, ,恢恢復(fù)斷點(diǎn)復(fù)斷點(diǎn)。注意:中斷服務(wù)程序的最后一條指令,必須為注意:中斷服務(wù)程序的最后一條指令,必須為RETIRETI返回返回指令,不能為指令,不能為RETRET指令指令。第5章 單片機(jī)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ù)讀入單片機(jī)內(nèi),并依次單片機(jī)內(nèi),并依次通過通過P1.0P1.0P1.3P1.3輸出輸出,驅(qū)動(dòng)發(fā)光二極管,以檢查,驅(qū)動(dòng)發(fā)光二極管,以檢查P1.4P1.4P1.7P1.7輸入的電平情況(

溫馨提示

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

評(píng)論

0/150

提交評(píng)論