單片機(jī)C語言編程(中斷)PPT5_第1頁
單片機(jī)C語言編程(中斷)PPT5_第2頁
單片機(jī)C語言編程(中斷)PPT5_第3頁
單片機(jī)C語言編程(中斷)PPT5_第4頁
單片機(jī)C語言編程(中斷)PPT5_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第5章 MCS-51單片機(jī)中斷系統(tǒng),本章制作:劉曉霞,第5章 MCS-51單片機(jī)中斷系統(tǒng),目 錄 5.1 中斷概述 5.2 中斷系統(tǒng)結(jié)構(gòu)及控制 5.3 中斷響應(yīng)過程及處理過程 5.4 中斷應(yīng)用舉例,本章主要討論MCS-51單片機(jī)中斷系統(tǒng)。 內(nèi)容主要有:MCS-51單片機(jī)中斷系統(tǒng)結(jié)構(gòu)、中斷控制、中斷優(yōu)先級(jí)、中斷處理過程,以及中斷的應(yīng)用。 通過本章的學(xué)習(xí),應(yīng)該理解中斷系統(tǒng)結(jié)構(gòu)、中斷響應(yīng)的條件和中斷處理過程; 掌握中斷控制、中斷優(yōu)先級(jí),靈活的應(yīng)用中斷解決實(shí)際問題。,第5章 MCS-51單片機(jī)的中斷系統(tǒng),5.1 中斷概述,主要內(nèi)容 5.1.1 微機(jī)的輸入/輸出幾種控制方式 5.1.2 中斷的相關(guān)概念,

2、5.1.1 微機(jī)的輸入/輸出幾種控制方式,單片機(jī)系統(tǒng)中,CPU和外部設(shè)備之間不斷進(jìn)行信息的傳輸。通常CPU和外設(shè)之間的信息傳送方式有以下幾種: 程序控制方式 中斷方式 直接存儲(chǔ)器存取(DMA)方式,5.1.1 微機(jī)的輸入/輸出方式,1、 程序控制方式 可以分為以下兩種方式。 (1)無條件傳送方式 外設(shè)始終處于就緒狀態(tài),CPU不必查詢外設(shè)的狀態(tài),直接進(jìn)行信息傳輸,稱為無條件傳送方式。 此種信息傳送方式只適用于簡單的外設(shè)。如開關(guān)和數(shù)碼段顯示器等。,5.1.1 微機(jī)的輸入/輸出方式,(2)條件傳送方式 CPU通過執(zhí)行程序不斷讀取并測(cè)試外部設(shè)備狀態(tài),如果輸入設(shè)備處于準(zhǔn)備好狀態(tài)或輸出設(shè)備為空閑狀態(tài)時(shí),則

3、CPU執(zhí)行傳送信息操作。 由于條件傳送方式需要CPU不斷地查詢外部設(shè)備的狀態(tài),然后才進(jìn)行信息傳送,所以也稱為“查詢式傳送”。,5.1.1 微機(jī)的輸入/輸出方式,2、 中斷方式 外部設(shè)備與CPU之間以中斷信號(hào)作為數(shù)據(jù)交換的控制信號(hào)。 當(dāng)外部設(shè)備需要與CPU進(jìn)行數(shù)據(jù)交換時(shí),由接口部件向CPU發(fā)出一個(gè)請(qǐng)求信號(hào),CPU響應(yīng)這一中斷請(qǐng)求后,在中斷服務(wù)程序中完成一個(gè)字節(jié)或多個(gè)字節(jié)的信息交換。 中斷方式具有并行工作、實(shí)時(shí)傳輸、充分利用CPU效率等特點(diǎn)。,5.1.1 微機(jī)的輸入/輸出方式,中斷傳送仍由CPU通過程序來傳送,每次都要執(zhí)行指令進(jìn)行斷點(diǎn)、現(xiàn)場(chǎng)的保護(hù)和恢復(fù)。對(duì)于高速I/O,就顯得速度太慢了。 3、DM

4、A方式(直接存儲(chǔ)器存取) DMA控制方式主要用于存儲(chǔ)器和外設(shè)之間直接傳送、塊傳輸。 DMA請(qǐng)求總線:當(dāng)某一外部設(shè)備需要輸入/輸出一批數(shù)據(jù)時(shí),向DMA控制器發(fā)出請(qǐng)求,DMA控制器接收到這一請(qǐng)求后,向CPU發(fā)出總線請(qǐng)求信號(hào)。,5.1.1 微機(jī)的輸入/輸出方式,DMA控制數(shù)據(jù)傳輸:CPU響應(yīng)DMA的請(qǐng)求,把總線使用權(quán)交給DMA控制器,DMA將外設(shè)數(shù)據(jù)讀入、并直接寫入存儲(chǔ)器,或?qū)?shù)據(jù)從存儲(chǔ)器讀出并直接送給外設(shè)。傳送過程不需要CPU參與。 DMA釋放總線:當(dāng)一批數(shù)據(jù)傳送后, DMA控制器再向CPU發(fā)出“結(jié)束總線請(qǐng)求”,CPU響應(yīng)請(qǐng)求,收回總線使用權(quán)。 DMA方式速度高、效率高,可以與CPU并行工作。,1

5、、中斷的概念 CPU在正常運(yùn)行的時(shí)候,外部或者內(nèi)部發(fā)生了請(qǐng)求CPU迅速去處理的事件,CPU暫時(shí)中斷當(dāng)前的程序,去處理所發(fā)生的事件,處理完事件后,再返回到原來被中斷的程序繼續(xù)運(yùn)行。此過程稱為中斷。,5.1.2 中斷的相關(guān)概念,2、中斷源 引起CPU中斷的設(shè)備和事件就是中斷源。 3、中斷請(qǐng)求 中斷源向CPU發(fā)出的請(qǐng)求處理信號(hào),即中斷請(qǐng)求或中斷申請(qǐng)。 4、中斷響應(yīng) CPU暫時(shí)中止正在處理的事情,轉(zhuǎn)去處理突發(fā)事件的過程,稱為中斷響應(yīng)。,5.1.2 中斷的相關(guān)概念,5、其他概念 中斷系統(tǒng):實(shí)現(xiàn)中斷功能的部件稱為,又稱中斷機(jī)構(gòu)。 中斷服務(wù)程序:CPU響應(yīng)中斷后,處理中斷事件的程序。 斷點(diǎn):CPU響應(yīng)中斷請(qǐng)

6、求,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序時(shí)的PC值,即為斷點(diǎn)地址。 中斷返回:CPU執(zhí)行完中斷服務(wù)程序后回到斷點(diǎn)的過程。,5.1.2 中斷的相關(guān)概念,6、中斷的功能 中斷是計(jì)算機(jī)的一項(xiàng)重要技術(shù),計(jì)算機(jī)引入中斷后,大大提高了它的工作效率和處理問題的靈活性,主要功能有以下幾個(gè)方面。 使CPU與外設(shè)同步工作 實(shí)現(xiàn)實(shí)時(shí)處理 故障及時(shí)處理,5.1.2 中斷的相關(guān)概念,5.2 中斷系統(tǒng)的結(jié)構(gòu)及控制,主要內(nèi)容 5.2.1 MCS-51的中斷結(jié)構(gòu) 5.2.2 MCS-51的中斷源,5.2.1 MCS-51單片機(jī)的中斷結(jié)構(gòu),中斷系統(tǒng)構(gòu)成:增強(qiáng)單片機(jī)主要由5個(gè)特殊功能寄存器、相關(guān)硬件電路等組成。有6個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí)。 特

7、殊功能寄存器主要用于:控制中斷的開放和關(guān)閉、保存中斷信息、設(shè)置中斷的優(yōu)先級(jí)別。 硬件查詢電路主要用于:判定6個(gè)中斷源的優(yōu)先級(jí)別。 MCS-51增強(qiáng)型單片機(jī)的中斷結(jié)構(gòu)如圖5-2所示。,圖5-2 增強(qiáng)型單片機(jī)的中斷系統(tǒng)結(jié)構(gòu),5.2.2 MCS-51的中斷源,MCS-51中斷系統(tǒng)主要是對(duì)6個(gè)中斷源進(jìn)行管理,依次為: 外部中斷0(P3.2) 外部中斷1(P3.3) 定時(shí)器/計(jì)數(shù)器0溢出中斷 定時(shí)器/計(jì)數(shù)器1溢出中斷 定時(shí)器/計(jì)數(shù)器2溢出中斷 串行口中斷 CPU主要是通過標(biāo)志寄存器、控制寄存器、優(yōu)先級(jí)寄存器對(duì)中斷源進(jìn)行管理。,5.2.2 MCS-51單片機(jī)的中斷源,(1)與中斷標(biāo)志相關(guān)的SFR 主要有:

8、定時(shí)器/計(jì)數(shù)器T0、T1控制寄存器TCON 串行口控制寄存器SCON 定時(shí)器/計(jì)數(shù)器2控制寄存器T2CON(第6章介紹) (2)中斷控制寄存器:TCON、IE (3)中斷優(yōu)先級(jí)寄存器:IP,5.2.2 MCS-51單片機(jī)的中斷源,1、串行口控制寄存器SCON 字節(jié)地址98H??梢晕粚ぶ?, 格式如下: TI(SCON1):串行口發(fā)送中斷標(biāo)志。 串行口發(fā)送完一幀,由硬件置位。響應(yīng)中斷后,必須用軟件清 0。 RI(SCON0):串行口接收中斷標(biāo)志。,5.2.2 MCS-51單片機(jī)的中斷源,串行口接收完一幀,由硬件置位。響應(yīng)中斷后,必須用軟件清0。 例如:CLR TI;,5.2.2 MCS-51單片機(jī)

9、的中斷源,2、T0、T1 的控制寄存器TCON TCON格式如下:,TCON可位尋址。復(fù)位后TCON=00H。 TF1(TCON.7):T1溢出標(biāo)志位 當(dāng)T1計(jì)滿溢出時(shí),由內(nèi)部硬件置位; 中斷響應(yīng)后自動(dòng)清 0。,5.2.2 MCS-51單片機(jī)的中斷源,TF0:T0溢出標(biāo)志位 功能同TF1。 IT1:外中斷1觸發(fā)方式設(shè)置位 IT1=0,外中斷1為低電平觸發(fā) CPU在每一個(gè)機(jī)器周期的S5P2期間對(duì)P3.3引腳采樣,若P3.3為低電平,則使IE1置1,否則IE1清0。,5.2.2 MCS-51單片機(jī)的中斷源,IT1=1,外中斷1為下降沿觸發(fā) 采樣:CPU在每一個(gè)機(jī)器周期的S5P2期間對(duì)P3.3引腳采

10、樣,若上一個(gè)機(jī)器周期檢測(cè)為高電平,緊挨著的下一個(gè)機(jī)器周期為低電平,則使IE1置1。 IT0:外中斷0觸發(fā)方式控制位。 功能同IT1。,5.2.2 MCS-51單片機(jī)的中斷源,IE1:外中斷1中斷請(qǐng)求標(biāo)志位 外部中斷1引腳有請(qǐng)求信號(hào)置1; IE1的清0方式問題:與外中斷的觸發(fā)方式有關(guān) (1)低電平觸發(fā),則P3.3引腳為高電平自動(dòng)對(duì)IE1清0; (2)下降沿觸發(fā),則CPU響應(yīng)中斷由硬件自動(dòng)對(duì)IE1清0。 IE0:外部中斷0中斷請(qǐng)求標(biāo)志位 功能同IE1。,5.2.2 MCS-51單片機(jī)的中斷源,3、中斷允許寄存器IE 可以位尋址,其格式如圖5-5所示:,5.2.2 MCS-51單片機(jī)的中斷源,EA(

11、IE.7):中斷允許總控位。 EA=0,屏蔽所有的中斷請(qǐng)求;EA=1,開放中斷總控制位。 ET2(IE.5):定時(shí)器/計(jì)數(shù)器2的中斷允許位 ET2=0,禁止T2中斷; ET2=1,允許T2中斷。 ES(IE.4):串行口中斷允許位。,5.2.2 MCS-51單片機(jī)的中斷源,ES=0,禁止串行口中斷; ES=1,允許串行口中斷。 ET1(IE.3):定時(shí)器/計(jì)數(shù)器1中斷允許 ET1=0,禁止T1中斷; ET1=1,允許T1中斷。 EX1(IE.2):外部中斷1中斷允許位EX1=0,禁止外部中斷1中斷;EX1=1,允許外部中斷1中斷。,5.2.2 MCS-51單片機(jī)的中斷源,ET0(IE.1):定

12、時(shí)器/計(jì)數(shù)器0中斷允許位 ET0=0,禁止T0中斷; ET0=1,允許T0中斷。 EX0(IE.0):外部中斷0的中斷允許位EX0=0,禁止外部中斷0中斷; EX0=1,允許外部中斷0中斷。 例5-1 假設(shè)允許INT0、INT1、T0、T1中斷,試設(shè)置IE的值。 解:(1)用C語言字節(jié)操作: IE=0 x8f;,5.2.2 MCS-51單片機(jī)的中斷源,(2)用C語言位操作指令 EX0=1;/允許外部中斷0中斷 ET0=1;/允許定時(shí)/計(jì)數(shù)器0中斷 EX1=1;/允許外部中斷1中斷 ET1=1;/允許定時(shí)/計(jì)數(shù)器1中斷 EA = 1/開總中斷控制 匯編語言 (1)用字節(jié)操作指令: MOV IE,

13、#8FH (2)用位操作指令:,5.2.2 MCS-51單片機(jī)的中斷源,SETB EX0;允許外部中斷0中斷 SETB ET0;允許定時(shí)/計(jì)數(shù)器0中斷 SETB EX1;允許外部中斷1中斷 SETB ET1;允許定時(shí)/計(jì)數(shù)器1中斷 SETB EA ;開總中斷控制位 4、中斷優(yōu)先級(jí)控制寄存器IP MCS-51單片機(jī)有6個(gè)中斷源,每個(gè)中斷源有兩級(jí)優(yōu)先級(jí)控制:高優(yōu)先級(jí)和低優(yōu)先級(jí), 以便CPU對(duì)所有的中斷實(shí)現(xiàn)兩級(jí)中斷嵌套。 對(duì) IP設(shè)置可讓中斷源處于不同的優(yōu)先級(jí)。,5.2.2 MCS-51單片機(jī)的中斷源,IP復(fù)位后為00H。其格式如下圖所示。,PT2(IP.5):T2中斷優(yōu)先級(jí)控制位 PT2=0,設(shè)置

14、為低優(yōu)先級(jí); PT2=1,設(shè)置為高優(yōu)先級(jí)。,5.2.2 MCS-51單片機(jī)的中斷源,PS(IP.4):串行口中斷優(yōu)先級(jí)控制位 PS=0,設(shè)置為低優(yōu)先級(jí); PS=1,設(shè)置為高優(yōu)先級(jí)。 PT1(IP.3):T1的中斷優(yōu)先級(jí)控制位 功能同PT2。 PX1(IP.2):外中斷1中斷優(yōu)先級(jí)控制位 PX1=0,設(shè)置為低優(yōu)先級(jí); PX1=1,設(shè)置為高優(yōu)先級(jí)。,5.2.2 MCS-51單片機(jī)的中斷源,PT0(IP.1):T0中斷優(yōu)先級(jí)控制位 功能同PT1。 PX0(IP.0):外中斷0中斷優(yōu)先級(jí)控制位 功能同PX1。 89C52單片機(jī)的中斷優(yōu)先級(jí)采用了自然優(yōu)先級(jí)和人工設(shè)置高、低優(yōu)先級(jí)的策略。中斷處于同一級(jí)別時(shí)

15、,就由自然優(yōu)先級(jí)確定。開機(jī)時(shí),每個(gè)中斷都處于低優(yōu)先級(jí),中斷優(yōu)先級(jí)可以通過程序來設(shè)定,由中斷優(yōu)先級(jí)寄存器IP來統(tǒng)一管理。 如下圖所示:,5.2.2 MCS-51單片機(jī)的中斷源,系統(tǒng)優(yōu)先級(jí)規(guī)則圖:,5.2.2 MCS-51單片機(jī)的中斷源,中斷優(yōu)先級(jí)規(guī)則: (1)對(duì)同時(shí)發(fā)生多個(gè)中斷申請(qǐng) 不同優(yōu)先級(jí)的中斷同時(shí)申請(qǐng):先高后低 相同優(yōu)先級(jí)的中斷同時(shí)申請(qǐng):按序執(zhí)行 (2)不同時(shí)發(fā)生多個(gè)中斷申請(qǐng) 正處理低優(yōu)先級(jí)中斷又接到高級(jí)別中斷:高打斷低 正處理高優(yōu)先級(jí)中斷又接到低級(jí)別中斷:高不理低,5.2.2 MCS-51單片機(jī)的中斷源,在上述規(guī)則中,當(dāng)CPU正在處理一個(gè)中斷請(qǐng)求時(shí),又出現(xiàn)了另一個(gè)優(yōu)先級(jí)比它高的中斷請(qǐng)求,

16、就暫時(shí)中止執(zhí)行優(yōu)先級(jí)較低的中斷源的服務(wù)程序,保護(hù)當(dāng)前斷點(diǎn),轉(zhuǎn)去處理更高的中斷請(qǐng)求,服務(wù)完畢,回到原來被中止的中斷程序繼續(xù)執(zhí)行。此過程為中斷嵌套。 兩級(jí)中斷嵌套的處理過程如圖5-7所示。,5.2.2 MCS-51單片機(jī)的中斷源,思考:當(dāng)系統(tǒng)正在處理定時(shí)器0中斷的過程中,定時(shí)器1和外部中斷0有中斷請(qǐng)求,描述CPU的中斷處理過程?,5.2.2 MCS-51單片機(jī)的中斷源,例5-2 設(shè)定時(shí)器和串行口中斷為高優(yōu)先級(jí),兩個(gè)外部中斷為低優(yōu)先級(jí),試設(shè)置IP的值。 解:C語言程序 IP=0 x3a; 匯編語言程序: (1)使用字節(jié)操作指令: MOV IP,#3AH (2)使用位操作指令: CLRPX0;設(shè)置外部

17、中斷0為低級(jí)中斷,5.2.2 MCS-51單片機(jī)的中斷源,CLRPX1;置外部中斷1為低級(jí)中斷 SETBPT0;置定時(shí)器/計(jì)數(shù)器0為高級(jí)中斷 SETBPT1;置定時(shí)器/計(jì)數(shù)器0為高級(jí)中斷 SETBPS;置串行口中斷為高優(yōu)先級(jí) SETBPT2;置定時(shí)器/計(jì)數(shù)器2為高級(jí)中斷 由于復(fù)位后IP=00H,外部中斷在此可以不設(shè)置。,5.3 中斷響應(yīng)及處理過程,主要內(nèi)容 5.3.1 中斷響應(yīng)的過程 5.3.2 中斷的處理和返回過程,5.3.1 中斷響應(yīng)的過程,一、中斷響應(yīng)條件 (1)中斷源有中斷請(qǐng)求; (2)中斷總允許位EA=1; (3)發(fā)出中斷請(qǐng)求的中斷源的中斷允許控制位為1。 在滿足以上條件的基礎(chǔ)上,若

18、有下列任何一種情況存在,硬件生成的長調(diào)用指令“LCALL”將被封鎖。,5.3.1 中斷響應(yīng)的過程,(1)CPU正在執(zhí)行一個(gè)同級(jí)或高優(yōu)先級(jí)的中斷服務(wù)程序; (2)正在執(zhí)行的指令尚未執(zhí)行完; (3)正在執(zhí)行中斷返回指令RETI或者對(duì)寄存器IE、IP進(jìn)行讀/寫的指令。 CPU在執(zhí)行完上述指令之后,要再執(zhí)行一條指令,才能響應(yīng)中斷請(qǐng)求。,5.3.1 中斷響應(yīng)的過程,二、中斷響應(yīng)過程 從中斷請(qǐng)求發(fā)生直到被響應(yīng),準(zhǔn)備去執(zhí)行中斷服務(wù)程序,此過程即中斷響應(yīng)過程。中斷響應(yīng)過程一般包括如下幾個(gè)階段: 1、中斷采樣并置位 中斷采樣過程:CPU在每個(gè)機(jī)器周期S5P2期間順序?qū)χ袛嘣床蓸?、置中斷?biāo)志。 2、查詢標(biāo)志 在中

19、斷采樣后的下一個(gè)周期的S6按優(yōu)先級(jí)順序查詢中斷標(biāo)志。,5.3.1 中斷響應(yīng)的過程,3、響應(yīng)中斷 在滿足中斷響應(yīng)條件情況下,若中斷標(biāo)志為1,在接下來周期S1開始按優(yōu)先級(jí)順序進(jìn)行中斷處理。 中斷響應(yīng)過程的操作步驟: 硬件自動(dòng)生成長調(diào)用指令LCALL addr16,addr16為各中斷源的中斷程序入口地址。 PC的內(nèi)容(即斷點(diǎn)地址)壓入堆棧。先低位地址,后高位地址,并修改堆棧指針SP。 將中斷源的中斷入口地址裝入程序計(jì)數(shù)器PC,執(zhí)行中斷服務(wù)程序。,5.3.1 中斷響應(yīng)過程,三、中斷響應(yīng)的時(shí)間 一般來說,中斷的響應(yīng)時(shí)間最短為3個(gè)機(jī)器周期,最長為8個(gè)機(jī)器周期。 一般中斷請(qǐng)求標(biāo)志位查詢占1個(gè)機(jī)器周期。而機(jī)

20、器周期又恰好是指令的最后一個(gè)機(jī)器周期。執(zhí)行此指令后,CPU將響應(yīng)中斷,產(chǎn)生硬件長調(diào)用指令。 長調(diào)用LCALL指令需要2個(gè)機(jī)器周期。這樣,中斷響應(yīng)時(shí)間為3個(gè)機(jī)器周期。,5.3.1 中斷響應(yīng)過程,響應(yīng)時(shí)間最長的情況(8周期): CPU正在執(zhí)行的是RETI指令、或訪問IP、IE指令; 其后恰好是4個(gè)機(jī)器周期的指令MUL、或DIV) 。 加上執(zhí)行長調(diào)用指令LCALL所需2個(gè)機(jī)器周期,則需要8個(gè)機(jī)器周期。 如果中斷請(qǐng)求被前面所列三個(gè)條件之一所阻 止,則所需的響應(yīng)時(shí)間就更長。 對(duì)于實(shí)時(shí)性要求高的系統(tǒng),應(yīng)該考慮中斷響應(yīng)的時(shí)間。,5.3.2 中斷處理和返回過程,一、中斷處理過程 當(dāng)CPU響應(yīng)中斷后,做中斷處理

21、。首先獲得中斷服務(wù)程序的入口地址。 其次:執(zhí)行中斷服務(wù)程序。,5.3.2 中斷處理和返回過程,中斷服務(wù)程序一般包括三部分內(nèi)容; 保護(hù)現(xiàn)場(chǎng) 中斷處理程序 恢復(fù)現(xiàn)場(chǎng) 現(xiàn)場(chǎng):是指中斷發(fā)生時(shí)單片微機(jī)中存儲(chǔ)單元、寄存器、特殊功能寄存器中的數(shù)據(jù)或標(biāo)志位等。 例如A、B、Rn、PSW、DPTR等,5.3.2 中斷的處理和返回過程,保護(hù)的方法可以有以下幾種: 進(jìn)棧(使用PUSH、POP) 切換工作寄存器 暫存內(nèi)部存儲(chǔ)器單元 多使用堆棧方法,PUSH、POP成對(duì)使用。,5.3.2 中斷處理和返回過程,二、中斷返回 使用RETI指令 RETI指令包含兩個(gè)功能: 首先將相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器清0,以開放同級(jí)別中斷源

22、的中斷請(qǐng)求; 其次,從堆棧區(qū)把斷點(diǎn)地址彈出給程序計(jì)數(shù)器PC。 注意:不能用RET指令代替RETI指令。,5.4 中斷應(yīng)用舉例,主要內(nèi)容 1、中斷程序的組織結(jié)構(gòu) 2、中斷的初始化過程 3、中斷服務(wù)程序的設(shè)計(jì) 4、中斷程序舉例,5.4 中斷應(yīng)用舉例,一、中斷程序安排 1、 主程序 MCS-51單片機(jī)復(fù)位后,(PC)=0000H,主程序只分配0000H-0002H共3個(gè)單元。經(jīng)常在0000H單元設(shè)置一條LJMP指令,轉(zhuǎn)向主程序的入口處。而真正的主程序一般安排在中斷區(qū)域之后。 2、 各中斷服務(wù)程序 每個(gè)中斷服務(wù)程序在固定的位置由系統(tǒng)分配相鄰的8個(gè)單元用于存儲(chǔ)程序。,5.4 中斷應(yīng)用舉例,程序組織的一般

23、結(jié)構(gòu): ORG0000H LJMPMAIN ORG0003H LJMPINT_0 ORG 0030H MAIN: .;主程序區(qū) . ;進(jìn)行初始化 SJMP $ ;等待中斷 INT_0:.;外部中斷0服務(wù)子程序 . RETI,5.4 中斷應(yīng)用舉例,二、中斷初始化步驟 89C52單片機(jī)中,共有6個(gè)中斷源,中斷的初始化主要是對(duì)由5個(gè)特殊功能寄存器TCON、T2CON、SCON、IE和IP的設(shè)置。 中斷初始化部分一般放在主程序中。,5.4 中斷應(yīng)用舉例,三、中斷服務(wù)程序流程設(shè)計(jì) MCS-51結(jié)束到中斷請(qǐng)求后,在條件滿足的情況下,響應(yīng)中斷并轉(zhuǎn)到對(duì)應(yīng)的中斷服務(wù)程序入口處執(zhí)行 。中斷程序主要由如下所示幾部分

24、組成: 1、保護(hù)現(xiàn)場(chǎng) 中斷響應(yīng)后,系統(tǒng)已自動(dòng)將斷點(diǎn)進(jìn)行保護(hù)。 保護(hù)現(xiàn)場(chǎng),主要針對(duì)中斷程序中的寄存器和存儲(chǔ)單元。其位置在中斷服務(wù)程序前段。,5.4 中斷應(yīng)用舉例,2、關(guān)中斷和開中斷 89C52允許中斷嵌套。為了在保護(hù)現(xiàn)場(chǎng)或恢復(fù)現(xiàn)場(chǎng)時(shí),由于CPU響應(yīng)其它中斷請(qǐng)求,而使現(xiàn)場(chǎng)破壞,一般在保護(hù)和恢復(fù)現(xiàn)場(chǎng)時(shí),CPU不響應(yīng)外界的中斷請(qǐng)求,即關(guān)中斷。 在保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)前,關(guān)中斷;在保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)后,再根據(jù)需要使CPU開中斷。 思考:如果允許中斷嵌套,什么時(shí)間關(guān)中斷和開中斷?,5.4 中斷應(yīng)用舉例,3、中斷請(qǐng)求撤除 CPU響應(yīng)某中斷請(qǐng)求后,在中斷返回前,應(yīng)該撤消該中斷請(qǐng)求。中斷請(qǐng)求撤除方法如下: 定時(shí)器

25、0、1溢出中斷請(qǐng)求的撤除:允許中斷的情況下,響應(yīng)中斷后,硬件會(huì)自動(dòng)清除中斷請(qǐng)求標(biāo)志TFx。 定時(shí)器/計(jì)數(shù)器2請(qǐng)求的撤除:T2中斷請(qǐng)求標(biāo)志位TF2和EXF2不能自動(dòng)復(fù)位,須軟件復(fù)位。 串行口中斷的撤除:串行口中斷請(qǐng)求標(biāo)志位TI和RI,必須軟件復(fù)位。,5.4 中斷應(yīng)用舉例,外部中斷的撤除:外部中斷為邊沿觸發(fā)方式時(shí),響應(yīng)中斷后,硬件自動(dòng)清除IE0或IE1。 外部中斷為電平觸發(fā)方式時(shí)。響應(yīng)中斷后,硬件會(huì)自動(dòng)清除IE0或IE1。但由于加到該引腳的外部中斷請(qǐng)求信號(hào)并未撤除,中斷請(qǐng)求標(biāo)志IE0或IE1會(huì)再次被置1,所以在CPU響應(yīng)中斷后應(yīng)立即撤除該引腳上的低電平。 一般采用加一個(gè)D觸發(fā)器和幾條指令的方法來解

26、決這個(gè)問題。,5.4 中斷應(yīng)用舉例,4、中斷源的識(shí)別 串行口中斷:接收請(qǐng)求標(biāo)志RI和發(fā)送中斷請(qǐng)求標(biāo)志位TI共用中斷入口地址(0023H),中斷允許位ES和中斷優(yōu)先級(jí)選擇位PS。 定時(shí)器/計(jì)數(shù)器2:中斷請(qǐng)求標(biāo)志TF2和EXF2,共用一個(gè)中斷矢量地址(002BH),中斷允許位ET2和中斷優(yōu)先級(jí)選擇位PT2。 在中斷服務(wù)程序中注意區(qū)分是哪種中斷引起的中斷請(qǐng)求,并清除其中斷請(qǐng)求標(biāo)志。,5.4 中斷應(yīng)用舉例,5、恢復(fù)現(xiàn)場(chǎng) 在結(jié)束中斷服務(wù)程序,返回?cái)帱c(diǎn)處前要恢復(fù)現(xiàn)場(chǎng)。 6、中斷返回 當(dāng)CPU執(zhí)行到RETI指令時(shí),將當(dāng)前棧頂內(nèi)容彈出到PC,恢復(fù)斷點(diǎn)。 注意:中斷服務(wù)程序的最后一條指令,必須為RETI返回指令,不能為RET指令。,5.4 中斷應(yīng)用舉例,例5-3 如圖5-9所示,將P1口的P1.4P1.7作為輸入位,P1.0P1.3作為輸出位。 要求利用89C52將開關(guān)所設(shè)的數(shù)據(jù)讀入單片機(jī)內(nèi),并依次通過P1.0P1.3輸出,驅(qū)動(dòng)發(fā)光二極管,

溫馨提示

  • 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)論