單片機語言編程中斷_第1頁
單片機語言編程中斷_第2頁
單片機語言編程中斷_第3頁
單片機語言編程中斷_第4頁
單片機語言編程中斷_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機語言編程中斷ppt課件目前一頁\總數(shù)六十七頁\編于二十點第5章MCS-51單片機中斷系統(tǒng)目錄5.1中斷概述5.2中斷系統(tǒng)結(jié)構(gòu)及控制5.3中斷響應(yīng)過程及處理過程5.4中斷應(yīng)用舉例目前二頁\總數(shù)六十七頁\編于二十點

本章主要討論MCS-51單片機中斷系統(tǒng)。 內(nèi)容主要有:MCS-51單片機中斷系統(tǒng)結(jié)構(gòu)、中斷控制、中斷優(yōu)先級、中斷處理過程,以及中斷的應(yīng)用。 通過本章的學(xué)習(xí),應(yīng)該理解中斷系統(tǒng)結(jié)構(gòu)、中斷響應(yīng)的條件和中斷處理過程; 掌握中斷控制、中斷優(yōu)先級,靈活的應(yīng)用中斷解決實際問題。第5章MCS-51單片機的中斷系統(tǒng)目前三頁\總數(shù)六十七頁\編于二十點5.1中斷概述主要內(nèi)容5.1.1微機的輸入/輸出幾種控制方式5.1.2中斷的相關(guān)概念目前四頁\總數(shù)六十七頁\編于二十點5.1.1微機的輸入/輸出幾種控制方式

單片機系統(tǒng)中,CPU和外部設(shè)備之間不斷進(jìn)行信息的傳輸。通常CPU和外設(shè)之間的信息傳送方式有以下幾種:

程序控制方式 中斷方式 直接存儲器存?。―MA)方式目前五頁\總數(shù)六十七頁\編于二十點5.1.1微機的輸入/輸出方式

1、程序控制方式

可以分為以下兩種方式。

(1)無條件傳送方式

外設(shè)始終處于就緒狀態(tài),CPU不必查詢外設(shè)的狀態(tài),直接進(jìn)行信息傳輸,稱為無條件傳送方式。 此種信息傳送方式只適用于簡單的外設(shè)。如開關(guān)和數(shù)碼段顯示器等。目前六頁\總數(shù)六十七頁\編于二十點5.1.1微機的輸入/輸出方式

(2)條件傳送方式

CPU通過執(zhí)行程序不斷讀取并測試外部設(shè)備狀態(tài),如果輸入設(shè)備處于準(zhǔn)備好狀態(tài)或輸出設(shè)備為空閑狀態(tài)時,則CPU執(zhí)行傳送信息操作。由于條件傳送方式需要CPU不斷地查詢外部設(shè)備的狀態(tài),然后才進(jìn)行信息傳送,所以也稱為“查詢式傳送”。目前七頁\總數(shù)六十七頁\編于二十點5.1.1微機的輸入/輸出方式 2、中斷方式

外部設(shè)備與CPU之間以中斷信號作為數(shù)據(jù)交換的控制信號。 當(dāng)外部設(shè)備需要與CPU進(jìn)行數(shù)據(jù)交換時,由接口部件向CPU發(fā)出一個請求信號,CPU響應(yīng)這一中斷請求后,在中斷服務(wù)程序中完成一個字節(jié)或多個字節(jié)的信息交換。

中斷方式具有并行工作、實時傳輸、充分利用CPU效率等特點。目前八頁\總數(shù)六十七頁\編于二十點5.1.1微機的輸入/輸出方式

中斷傳送仍由CPU通過程序來傳送,每次都要執(zhí)行指令進(jìn)行斷點、現(xiàn)場的保護(hù)和恢復(fù)。對于高速I/O,就顯得速度太慢了。

3、DMA方式(直接存儲器存取)

DMA控制方式主要用于存儲器和外設(shè)之間直接傳送、塊傳輸。

DMA請求總線:當(dāng)某一外部設(shè)備需要輸入/輸出一批數(shù)據(jù)時,向DMA控制器發(fā)出請求,DMA控制器接收到這一請求后,向CPU發(fā)出總線請求信號。目前九頁\總數(shù)六十七頁\編于二十點5.1.1微機的輸入/輸出方式

DMA控制數(shù)據(jù)傳輸:CPU響應(yīng)DMA的請求,把總線使用權(quán)交給DMA控制器,DMA將外設(shè)數(shù)據(jù)讀入、并直接寫入存儲器,或?qū)?shù)據(jù)從存儲器讀出并直接送給外設(shè)。傳送過程不需要CPU參與。

DMA釋放總線:當(dāng)一批數(shù)據(jù)傳送后,DMA控制器再向CPU發(fā)出“結(jié)束總線請求”,CPU響應(yīng)請求,收回總線使用權(quán)。

DMA方式速度高、效率高,可以與CPU并行工作。目前十頁\總數(shù)六十七頁\編于二十點 1、中斷的概念

CPU在正常運行的時候,外部或者內(nèi)部發(fā)生了請求CPU迅速去處理的事件,CPU暫時中斷當(dāng)前的程序,去處理所發(fā)生的事件,處理完事件后,再返回到原來被中斷的程序繼續(xù)運行。此過程稱為中斷。5.1.2中斷的相關(guān)概念

目前十一頁\總數(shù)六十七頁\編于二十點 2、中斷源引起CPU中斷的設(shè)備和事件就是中斷源。

3、中斷請求中斷源向CPU發(fā)出的請求處理信號,即中斷請求或中斷申請。

4、中斷響應(yīng)

CPU暫時中止正在處理的事情,轉(zhuǎn)去處理突發(fā)事件的過程,稱為中斷響應(yīng)。5.1.2中斷的相關(guān)概念

目前十二頁\總數(shù)六十七頁\編于二十點 5、其他概念

中斷系統(tǒng):實現(xiàn)中斷功能的部件稱為,又稱中斷機構(gòu)。

中斷服務(wù)程序:CPU響應(yīng)中斷后,處理中斷事件的程序。

斷點:CPU響應(yīng)中斷請求,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序時的PC值,即為斷點地址。

中斷返回:CPU執(zhí)行完中斷服務(wù)程序后回到斷點的過程。5.1.2中斷的相關(guān)概念

目前十三頁\總數(shù)六十七頁\編于二十點6、中斷的功能中斷是計算機的一項重要技術(shù),計算機引入中斷后,大大提高了它的工作效率和處理問題的靈活性,主要功能有以下幾個方面。 使CPU與外設(shè)同步工作 實現(xiàn)實時處理 故障及時處理5.1.2中斷的相關(guān)概念

目前十四頁\總數(shù)六十七頁\編于二十點5.2中斷系統(tǒng)的結(jié)構(gòu)及控制主要內(nèi)容5.2.1MCS-51的中斷結(jié)構(gòu)5.2.2MCS-51的中斷源目前十五頁\總數(shù)六十七頁\編于二十點5.2.1MCS-51單片機的中斷結(jié)構(gòu)

中斷系統(tǒng)構(gòu)成:增強單片機主要由5個特殊功能寄存器、相關(guān)硬件電路等組成。有6個中斷源,兩個中斷優(yōu)先級。

特殊功能寄存器主要用于:控制中斷的開放和關(guān)閉、保存中斷信息、設(shè)置中斷的優(yōu)先級別。

硬件查詢電路主要用于:判定6個中斷源的優(yōu)先級別。

MCS-51增強型單片機的中斷結(jié)構(gòu)如圖5-2所示。目前十六頁\總數(shù)六十七頁\編于二十點

圖5-2增強型單片機的中斷系統(tǒng)結(jié)構(gòu)目前十七頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51的中斷源 MCS-51中斷系統(tǒng)主要是對6個中斷源進(jìn)行管理,依次為: 外部中斷0(P3.2) 外部中斷1(P3.3) 定時器/計數(shù)器0溢出中斷 定時器/計數(shù)器1溢出中斷 定時器/計數(shù)器2溢出中斷 串行口中斷

CPU主要是通過標(biāo)志寄存器、控制寄存器、優(yōu)先級寄存器對中斷源進(jìn)行管理。目前十八頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源

(1)與中斷標(biāo)志相關(guān)的SFR

主要有:定時器/計數(shù)器T0、T1控制寄存器TCON

串行口控制寄存器SCON

定時器/計數(shù)器2控制寄存器T2CON(第6章介紹)

(2)中斷控制寄存器:TCON、IE

(3)中斷優(yōu)先級寄存器:IP目前十九頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源 1、串行口控制寄存器SCON

字節(jié)地址98H??梢晕粚ぶ?,

格式如下:TI(SCON.1):串行口發(fā)送中斷標(biāo)志。串行口發(fā)送完一幀,由硬件置位。響應(yīng)中斷后,必須用軟件清0。RI(SCON.0):串行口接收中斷標(biāo)志。SCON(98H)D7D6D5D4D3D2D1D0TIRI圖5-4串行口控制寄存器

目前二十頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源

串行口接收完一幀,由硬件置位。響應(yīng)中斷后,必須用軟件清0。例如:CLRTI;

目前二十一頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源 2、T0、T1的控制寄存器TCON TCON格式如下:TCON(88H)D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0圖5-3定時器的控制寄存器TCON可位尋址。復(fù)位后TCON=00H。TF1(TCON.7):T1溢出標(biāo)志位 當(dāng)T1計滿溢出時,由內(nèi)部硬件置位; 中斷響應(yīng)后自動清0。目前二十二頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源TF0:T0溢出標(biāo)志位

功能同TF1。IT1:外中斷1觸發(fā)方式設(shè)置位

IT1=0,外中斷1為低電平觸發(fā)

CPU在每一個機器周期的S5P2期間對P3.3引腳采樣,若P3.3為低電平,則使IE1置1,否則IE1清0。目前二十三頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源

IT1=1,外中斷1為下降沿觸發(fā)

采樣:CPU在每一個機器周期的S5P2期間對P3.3引腳采樣,若上一個機器周期檢測為高電平,緊挨著的下一個機器周期為低電平,則使IE1置1。

IT0:外中斷0觸發(fā)方式控制位。功能同IT1。目前二十四頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源IE1:外中斷1中斷請求標(biāo)志位 外部中斷1引腳有請求信號置1;

IE1的清0方式問題:與外中斷的觸發(fā)方式有關(guān) (1)低電平觸發(fā),則P3.3引腳為高電平自動對IE1清0;

(2)下降沿觸發(fā),則CPU響應(yīng)中斷由硬件自動對IE1清0。IE0:外部中斷0中斷請求標(biāo)志位

功能同IE1。目前二十五頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源 3、中斷允許寄存器IE可以位尋址,其格式如圖5-5所示:IE(A8H)D7D6D5D4D3D2D1D0EA—ET2ESET1EX1ET0EX0圖5-5中斷允許寄存器

目前二十六頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源EA(IE.7):中斷允許總控位。

EA=0,屏蔽所有的中斷請求; EA=1,開放中斷總控制位。ET2(IE.5):定時器/計數(shù)器2的中斷允許位

ET2=0,禁止T2中斷;

ET2=1,允許T2中斷。ES(IE.4):串行口中斷允許位。目前二十七頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源 ES=0,禁止串行口中斷;

ES=1,允許串行口中斷。

ET1(IE.3):定時器/計數(shù)器1中斷允許

ET1=0,禁止T1中斷;

ET1=1,允許T1中斷。

EX1(IE.2):外部中斷1中斷允許位 EX1=0,禁止外部中斷1中斷; EX1=1,允許外部中斷1中斷。目前二十八頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源ET0(IE.1):定時器/計數(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=0x8f;目前二十九頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源(2)用C語言位操作指令EX0=1; //允許外部中斷0中斷ET0=1; //允許定時/計數(shù)器0中斷EX1=1; //允許外部中斷1中斷ET1=1; //允許定時/計數(shù)器1中斷EA=1 //開總中斷控制

匯編語言(1)用字節(jié)操作指令:MOVIE,#8FH

(2)用位操作指令:目前三十頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源SETBEX0 ;允許外部中斷0中斷SETBET0 ;允許定時/計數(shù)器0中斷SETBEX1 ;允許外部中斷1中斷SETBET1 ;允許定時/計數(shù)器1中斷SETBEA ;開總中斷控制位4、中斷優(yōu)先級控制寄存器IPMCS-51單片機有6個中斷源,每個中斷源有兩級優(yōu)先級控制:高優(yōu)先級和低優(yōu)先級,以便CPU對所有的中斷實現(xiàn)兩級中斷嵌套。對IP設(shè)置可讓中斷源處于不同的優(yōu)先級。目前三十一頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源 IP復(fù)位后為00H。其格式如下圖所示。IP(B8H)D7D6D5D4D3D2D1D0——PT2PSPT1PX1PT0PX0圖5-6中斷優(yōu)先級控制寄存器

PT2(IP.5):T2中斷優(yōu)先級控制位

PT2=0,設(shè)置為低優(yōu)先級;

PT2=1,設(shè)置為高優(yōu)先級。目前三十二頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源PS(IP.4):串行口中斷優(yōu)先級控制位

PS=0,設(shè)置為低優(yōu)先級;

PS=1,設(shè)置為高優(yōu)先級。PT1(IP.3):T1的中斷優(yōu)先級控制位 功能同PT2。PX1(IP.2):外中斷1中斷優(yōu)先級控制位

PX1=0,設(shè)置為低優(yōu)先級;

PX1=1,設(shè)置為高優(yōu)先級。目前三十三頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源PT0(IP.1):T0中斷優(yōu)先級控制位 功能同PT1。PX0(IP.0):外中斷0中斷優(yōu)先級控制位

功能同PX1。

89C52單片機的中斷優(yōu)先級采用了自然優(yōu)先級和人工設(shè)置高、低優(yōu)先級的策略。中斷處于同一級別時,就由自然優(yōu)先級確定。開機時,每個中斷都處于低優(yōu)先級,中斷優(yōu)先級可以通過程序來設(shè)定,由中斷優(yōu)先級寄存器IP來統(tǒng)一管理。如下圖所示:

目前三十四頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源系統(tǒng)優(yōu)先級規(guī)則圖:

表5-1中斷優(yōu)先級的排列順序中斷源自然優(yōu)先級順序外部中斷0定時器/計數(shù)器0外部中斷1定時器/計數(shù)器1串行口中斷定時器/計數(shù)器2最高最低目前三十五頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源中斷優(yōu)先級規(guī)則:(1)對同時發(fā)生多個中斷申請

不同優(yōu)先級的中斷同時申請:先高后低相同優(yōu)先級的中斷同時申請:按序執(zhí)行(2)不同時發(fā)生多個中斷申請

正處理低優(yōu)先級中斷又接到高級別中斷:高打斷低正處理高優(yōu)先級中斷又接到低級別中斷:高不理低

目前三十六頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源

在上述規(guī)則中,當(dāng)CPU正在處理一個中斷請求時,又出現(xiàn)了另一個優(yōu)先級比它高的中斷請求,就暫時中止執(zhí)行優(yōu)先級較低的中斷源的服務(wù)程序,保護(hù)當(dāng)前斷點,轉(zhuǎn)去處理更高的中斷請求,服務(wù)完畢,回到原來被中止的中斷程序繼續(xù)執(zhí)行。此過程為中斷嵌套。兩級中斷嵌套的處理過程如圖5-7所示。目前三十七頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源思考:當(dāng)系統(tǒng)正在處理定時器0中斷的過程中,定時器1和外部中斷0有中斷請求,描述CPU的中斷處理過程?目前三十八頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源例5-2

設(shè)定時器和串行口中斷為高優(yōu)先級,兩個外部中斷為低優(yōu)先級,試設(shè)置IP的值。解:C語言程序IP=0x3a;匯編語言程序:(1)使用字節(jié)操作指令:MOVIP,#3AH(2)使用位操作指令:CLR PX0 ;設(shè)置外部中斷0為低級中斷目前三十九頁\總數(shù)六十七頁\編于二十點5.2.2MCS-51單片機的中斷源CLR PX1 ;置外部中斷1為低級中斷SETB PT0 ;置定時器/計數(shù)器0為高級中斷SETB PT1 ;置定時器/計數(shù)器0為高級中斷SETB PS ;置串行口中斷為高優(yōu)先級SETB PT2 ;置定時器/計數(shù)器2為高級中斷由于復(fù)位后IP=00H,外部中斷在此可以不設(shè)置。目前四十頁\總數(shù)六十七頁\編于二十點5.3中斷響應(yīng)及處理過程主要內(nèi)容5.3.1中斷響應(yīng)的過程5.3.2中斷的處理和返回過程目前四十一頁\總數(shù)六十七頁\編于二十點5.3.1中斷響應(yīng)的過程一、中斷響應(yīng)條件(1)中斷源有中斷請求;(2)中斷總允許位EA=1;(3)發(fā)出中斷請求的中斷源的中斷允許控制位為1。在滿足以上條件的基礎(chǔ)上,若有下列任何一種情況存在,硬件生成的長調(diào)用指令“LCALL”將被封鎖。

目前四十二頁\總數(shù)六十七頁\編于二十點5.3.1中斷響應(yīng)的過程(1)CPU正在執(zhí)行一個同級或高優(yōu)先級的中斷服務(wù)程序;(2)正在執(zhí)行的指令尚未執(zhí)行完;(3)正在執(zhí)行中斷返回指令RETI或者對寄存器IE、IP進(jìn)行讀/寫的指令。

CPU在執(zhí)行完上述指令之后,要再執(zhí)行一條指令,才能響應(yīng)中斷請求。目前四十三頁\總數(shù)六十七頁\編于二十點5.3.1中斷響應(yīng)的過程二、中斷響應(yīng)過程從中斷請求發(fā)生直到被響應(yīng),準(zhǔn)備去執(zhí)行中斷服務(wù)程序,此過程即中斷響應(yīng)過程。中斷響應(yīng)過程一般包括如下幾個階段:

1、中斷采樣并置位

中斷采樣過程:CPU在每個機器周期S5P2期間順序?qū)χ袛嘣床蓸?、置中斷?biāo)志。

2、查詢標(biāo)志在中斷采樣后的下一個周期的S6按優(yōu)先級順序查詢中斷標(biāo)志。目前四十四頁\總數(shù)六十七頁\編于二十點5.3.1中斷響應(yīng)的過程

3、響應(yīng)中斷在滿足中斷響應(yīng)條件情況下,若中斷標(biāo)志為1,在接下來周期S1開始按優(yōu)先級順序進(jìn)行中斷處理。中斷響應(yīng)過程的操作步驟:硬件自動生成長調(diào)用指令LCALLaddr16,addr16為各中斷源的中斷程序入口地址。

PC的內(nèi)容(即斷點地址)壓入堆棧。先低位地址,后高位地址,并修改堆棧指針SP。將中斷源的中斷入口地址裝入程序計數(shù)器PC,執(zhí)行中斷服務(wù)程序。目前四十五頁\總數(shù)六十七頁\編于二十點5.3.1中斷響應(yīng)過程三、中斷響應(yīng)的時間 一般來說,中斷的響應(yīng)時間最短為3個機器周期,最長為8個機器周期。

一般中斷請求標(biāo)志位查詢占1個機器周期。而機器周期又恰好是指令的最后一個機器周期。執(zhí)行此指令后,CPU將響應(yīng)中斷,產(chǎn)生硬件長調(diào)用指令。

長調(diào)用LCALL指令需要2個機器周期。這樣,中斷響應(yīng)時間為3個機器周期。目前四十六頁\總數(shù)六十七頁\編于二十點5.3.1中斷響應(yīng)過程

響應(yīng)時間最長的情況(8周期):

CPU正在執(zhí)行的是RETI指令、或訪問IP、IE指令;

其后恰好是4個機器周期的指令MUL、或DIV)。 加上執(zhí)行長調(diào)用指令LCALL所需2個機器周期,則需要8個機器周期。如果中斷請求被前面所列三個條件之一所阻止,則所需的響應(yīng)時間就更長。對于實時性要求高的系統(tǒng),應(yīng)該考慮中斷響應(yīng)的時間。目前四十七頁\總數(shù)六十七頁\編于二十點5.3.2中斷處理和返回過程一、中斷處理過程

當(dāng)CPU響應(yīng)中斷后,做中斷處理。首先獲得中斷服務(wù)程序的入口地址。

其次:執(zhí)行中斷服務(wù)程序。中斷源中斷入口外部中斷00003H定時器/計數(shù)器0000BH外部中斷10013H定時器/計數(shù)器1001BH串行口0023H定時器/計數(shù)器2002BH目前四十八頁\總數(shù)六十七頁\編于二十點5.3.2中斷處理和返回過程

中斷服務(wù)程序一般包括三部分內(nèi)容;

保護(hù)現(xiàn)場

中斷處理程序 恢復(fù)現(xiàn)場

現(xiàn)場:是指中斷發(fā)生時單片微機中存儲單元、寄存器、特殊功能寄存器中的數(shù)據(jù)或標(biāo)志位等。 例如A、B、Rn、PSW、DPTR等目前四十九頁\總數(shù)六十七頁\編于二十點5.3.2中斷的處理和返回過程保護(hù)的方法可以有以下幾種: ⑴進(jìn)棧(使用PUSH、POP) ⑵切換工作寄存器 ⑶暫存內(nèi)部存儲器單元 多使用堆棧方法,PUSH、POP成對使用。

目前五十頁\總數(shù)六十七頁\編于二十點5.3.2中斷處理和返回過程

二、中斷返回 使用RETI指令

RETI指令包含兩個功能: 首先將相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器清0,以開放同級別中斷源的中斷請求; 其次,從堆棧區(qū)把斷點地址彈出給程序計數(shù)器PC。

注意:不能用RET指令代替RETI指令。目前五十一頁\總數(shù)六十七頁\編于二十點5.4中斷應(yīng)用舉例主要內(nèi)容1、中斷程序的組織結(jié)構(gòu)2、中斷的初始化過程3、中斷服務(wù)程序的設(shè)計4、中斷程序舉例目前五十二頁\總數(shù)六十七頁\編于二十點5.4中斷應(yīng)用舉例

一、中斷程序安排

1、主程序

MCS-51單片機復(fù)位后,(PC)=0000H,主程序只分配0000H-0002H共3個單元。經(jīng)常在0000H單元設(shè)置一條LJMP指令,轉(zhuǎn)向主程序的入口處。而真正的主程序一般安排在中斷區(qū)域之后。

2、各中斷服務(wù)程序

每個中斷服務(wù)程序在固定的位置由系統(tǒng)分配相鄰的8個單元用于存儲程序。目前五十三頁\總數(shù)六十七頁\編于二十點5.4中斷應(yīng)用舉例

程序組織的一般結(jié)構(gòu):

ORG 0000H LJMP MAIN

ORG 0003H LJMP INT_0

ORG 0030HMAIN: ...... ;主程序區(qū) ......

;進(jìn)行初始化 SJMP$ ;等待中斷INT_0: ...... ;外部中斷0服務(wù)子程序

......

RETI目前五十四頁\總數(shù)六十七頁\編于二十點5.4中斷應(yīng)用舉例

二、中斷初始化步驟

89C52單片機中,共有6個中斷源,中斷的初始化主要是對由5個特殊功能寄存器TCON、T2CON、SCON、IE和IP的設(shè)置。中斷初始化部分一般放在主程序中。目前五十五頁\總數(shù)六十七頁\編于二十點5.4中斷應(yīng)用舉例

三、中斷服務(wù)程序流程設(shè)計

MCS-51結(jié)束到中斷請求后,在條件滿足的情況下,響應(yīng)中斷并轉(zhuǎn)到對應(yīng)的中斷服務(wù)程序入口處執(zhí)行。中斷程序主要由如下所示幾部分組成:

1、保護(hù)現(xiàn)場

中斷響應(yīng)后,系統(tǒng)已自動將斷點進(jìn)行保護(hù)。保護(hù)現(xiàn)場,主要針對中斷程序中的寄存器和存儲單元。其位置在中斷服務(wù)程序前段。目前五十六頁\總數(shù)六十七頁\編于二十點5.4中斷應(yīng)用舉例 2、關(guān)中斷和開中斷

89C52允許中斷嵌套。為了在保護(hù)現(xiàn)場或恢復(fù)現(xiàn)場時,由于CPU響應(yīng)其它中斷請求,而使現(xiàn)場破壞,一般在保護(hù)和恢復(fù)現(xiàn)場時,CPU不響應(yīng)外界的中斷請求,即關(guān)中斷。

在保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場前,關(guān)中斷;在保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場后,再根據(jù)需要使CPU開中斷。

思考:如果允許中斷嵌套,什么時間關(guān)中斷和開中斷?目前五十七頁\總數(shù)六十七頁\編于二十點5.4中斷應(yīng)用舉例 3、中斷請求撤除

CPU響應(yīng)某中斷請求后,在中斷返回前,應(yīng)該撤消該中斷請求。中斷請求撤除方法如下:定時器0、1溢出中斷請求的撤除:允許中斷的情況下,響應(yīng)中斷后,硬件會自動清除中斷請求標(biāo)志TFx。定時器/計數(shù)器2請求的撤除:T2中斷請求標(biāo)志位TF2和EXF2不能自動復(fù)位,須軟件復(fù)位。串行口中斷的撤除:串行口中斷請求標(biāo)志位TI和RI,必須軟件復(fù)位。目前五十八頁\總數(shù)六十七頁\編于二十點5.4中斷應(yīng)用舉例

外部中斷的撤除:外部中斷為邊沿觸發(fā)方式時,響應(yīng)中斷后,硬件自動清除IE0或IE1。

外部中斷為電平觸發(fā)方式時。響應(yīng)中斷后,硬件會自動清除IE0或IE1。但由于加到該引腳的外部中斷請求信號并未撤除,中斷請求標(biāo)志IE0或IE1會再次被置1,所以在CPU響應(yīng)中斷后應(yīng)立即撤除該引腳上的低電平。一般采用加一個D觸發(fā)器和幾條指令的方法來解決這個問題。目前五十九頁\總數(shù)六十七頁\編于二十點5.4中斷應(yīng)用舉例 4、中斷源的識別

串行口中斷:接收請求標(biāo)志RI和發(fā)送中斷請求標(biāo)志位TI共用中斷入口地址(0023H),中斷允許位ES和中斷優(yōu)先級選擇位PS。

定時器/計數(shù)器2:中斷請求標(biāo)志TF2和EXF2,共用一個中斷矢量地址(002BH),中斷允許位ET2和中斷優(yōu)先級選擇位PT2。

在中斷服務(wù)程序中注意區(qū)分是哪種中斷引起的中斷請求,并清除其中斷請求標(biāo)志。目前六十頁\總數(shù)六十七頁\編于二十點5.4中斷應(yīng)用舉例 5、恢復(fù)現(xiàn)場

在結(jié)束中斷服務(wù)程序,返回斷點處前要恢復(fù)現(xiàn)場。

6、中斷返回當(dāng)CPU執(zhí)行到RETI指令時,將當(dāng)前棧頂內(nèi)容彈出到PC,恢復(fù)斷點。注意:中斷服務(wù)程序的最后一條指令,必須為RETI返回指令,不能為R

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論