第五章-AT89S51中斷系統(tǒng)_第1頁
第五章-AT89S51中斷系統(tǒng)_第2頁
第五章-AT89S51中斷系統(tǒng)_第3頁
第五章-AT89S51中斷系統(tǒng)_第4頁
第五章-AT89S51中斷系統(tǒng)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第五章

AT89S51的中斷系統(tǒng)5.1

中斷概述5.2中斷系統(tǒng)結(jié)構(gòu)5.3中斷的應(yīng)用及編程§5.1中斷概述什么叫中斷?在日常生活中:中斷即中途打斷某一正在進行的工作,而去處理另外的緊急事件,待處理完后,再繼續(xù)原來的工作。在計算機中:計算機在運行某個進程的過程中,由于其他原因,有必要中止正在執(zhí)行的進程,而去執(zhí)行引起中斷的事件進程,待處理完畢后,再回到被中止進程的被打斷的地方繼續(xù)執(zhí)行,這種情況稱為“中斷”。中斷的定義簡單說:

中斷是指計算機暫時停止原程序的執(zhí)行轉(zhuǎn)而執(zhí)行中斷服務(wù)程序,并在服務(wù)完成后自動返回原程序的過程。執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點中斷請求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回日常生活中的中斷與計算機中斷的比較:某人看書 執(zhí)行主程序 日常事務(wù)電話鈴響 中斷信號如INT0=0

中斷請求暫??磿?/p>

暫停執(zhí)行主程序中斷響應(yīng)書中作記號當(dāng)前PC入棧 保護斷點電話談話 執(zhí)行中斷程序 中斷服務(wù)繼續(xù)看書 返回主程序 中斷返回中斷的作用

可以說,沒有中斷技術(shù),就沒有現(xiàn)在的計算機的高速發(fā)展和應(yīng)用,現(xiàn)在的計算機正是利用中斷技術(shù)改善機器性能和提高計算機的處理能力的。由于采用了中斷技術(shù),解決了快速CPU和慢速外設(shè)之間的矛盾;使得計算機能夠及時處理控制系統(tǒng)中許多隨機發(fā)生的突發(fā)事件;具備了處理故障的能力,提高了自身的可靠性;具有了并行運行多個任務(wù)的能力。§5.2AT89S51的中斷系統(tǒng)

5.2.1中斷請求源

5.2.2中斷控制

5.2.3中斷處理過程

5.2.4中斷嵌套

5.2.5中斷請求的撤除是指能夠?qū)崿F(xiàn)中斷功能的那部分硬件電路和軟件程序。對AT89S51的中斷系統(tǒng)用一句話講叫:

“五源中斷,兩級管理”5.2.1中斷請求源(“五源中斷”)

8051的五個中斷源:

外部中斷

:INT0(由P3.2輸入)(2個)INT1(由P3.3輸入)內(nèi)部中斷:片內(nèi)定時/計數(shù)器T0

(3個)

片內(nèi)定時/計數(shù)器T1

片內(nèi)串行口中斷請求AT89S51P0口地址和數(shù)據(jù)總線P1口通用口P2口地址總線P3口RXDTXDINT0INT1T0T1WRRDVCCVSSRSTEA/VPPPSENALE/PROGXTAL1XTAL2

XTAL1輸入端

XTAL2輸出端2.時鐘引腳引腳轉(zhuǎn)義引腳功能說明P3.0RXD串行數(shù)據(jù)接收端P3.1TXD串行數(shù)據(jù)發(fā)送端P3.2INT0外部中斷0請求P3.3INT1外部中斷1請求P3.4T0定時/計數(shù)器0外部輸入P3.5T1定時/計數(shù)器1外部輸入P3.6WR外部數(shù)據(jù)存儲器寫選通P3.7RD外部數(shù)據(jù)存儲器讀選通

P3口第二功能:圖2-1

AT89S51單片機片內(nèi)結(jié)構(gòu)AT89S51的硬件組成單片機INT0或INT1或T0T1串行口外部中斷內(nèi)部中斷電平觸發(fā)跳變觸發(fā)/有了中斷請求,如何通知CPU?通過中斷請求標(biāo)志位來通知CPU外部中斷源、定時/計數(shù)器的中斷請求標(biāo)志位分布在定時器控制寄存器TCON中串行口中斷標(biāo)志位分布在串行口控制寄存器SCON中D7D6D5D4D3D2D1D0TF1TF0IE1IT1IE0IT0中斷請求標(biāo)志觸發(fā)方式選擇0低電平1下降沿1.定時器控制寄存器TCONTCONIT0:外部中斷0觸發(fā)類型控制位

IT0=0時:INT0低電平觸發(fā)(電平觸發(fā))IT0=1時:INT0負邊沿觸發(fā)(跳變觸發(fā))IT1:外部中斷1觸發(fā)類型控制位用法同IT0

注:IT0,IT1可由軟件置“1”或清“0”。D7D6D5D4D3D2D1D0TF1TF0IE1IT1IE0IT0TCONIE0:外部中斷0請求標(biāo)志當(dāng)IT0=0即電平觸發(fā)方式時,每個機器周期的S5P2采樣INT0,若INT0為低電平,將直接觸發(fā)外部中斷;當(dāng)IT0=1即邊沿觸發(fā)方式時,當(dāng)?shù)谝粋€機器周期采樣到INT0為高電平,第二個機器周期采樣到INT0為低電平時,由硬件置位IE0,并以此來向CPU請求中斷,當(dāng)CPU響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序時由硬件清零IE0。IE1:外部中斷1請求標(biāo)志,用法同IE0TR0:

定時器T0的啟??刂莆?由軟件置位/清除來控制其開啟/關(guān)閉。若使TR0=1,則定時器T0開始計數(shù);若使TR0=0,則定時器T0停止計數(shù)。TR1:

定時器T1的啟??刂莆?,用法同TR0。D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0TCONTF0:定時/計數(shù)器0溢出中斷請求標(biāo)志位在啟動T0計數(shù)后,定時/計數(shù)器0從初值開始加1計數(shù),當(dāng)最高位產(chǎn)生溢出時,由硬件置位TF0,向CPU申請中斷,CPU響應(yīng)TF0中斷后清零該標(biāo)志位,TF0也可用軟件清零(查詢方式)。TF1:定時/計數(shù)器1溢出中斷請求標(biāo)志位D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0TCON2.串行口控制寄存器SCON串行口中斷分為兩種:串行口發(fā)送中斷串行口接收中斷D7D6D5D4D3D2D1D0TIRI串行中斷請求標(biāo)志SCONTI=1:有發(fā)送中斷RI=1:有接收中斷5.2.2中斷控制(“兩級管理”)對中斷允許的控制:中斷允許控制寄存器IE

對中斷優(yōu)先級的控制:中斷優(yōu)先級控制寄存器IP

D7D6D5D4D3D2D1D0EAESET1EX1ET0EX00禁止,1允許D7D6D5D4D3D2D1D0PSPT1PX1PT0PX00低級別,1高級別總的開關(guān)中斷控制位EA:EA=0:所有中斷請求被屏蔽。

EA=1:CPU開放中斷,但五個中斷源的中斷請求是否允許,還要由IE中的5個中斷請求允許控制位決定。1.中斷允許控制寄存器IED7D6D5D4D3D2D1D0EAESET1EX1ET0EX0IE(1)EA:中斷允許總控制位

0:CPU屏蔽所有的中斷請求;

1:CPU開放所有中斷。(2)ES:串行口中斷允許位

0:禁止串行口中斷;

1:允許串行口中斷。(3)ET1:定時/計數(shù)器T1的溢出中斷允許位

0:禁止T1溢出中斷;

1:允許T1溢出中斷。

D7D6D5D4D3D2D1D0EAESET1EX1ET0EX0IE(4)EX1:外部中斷1中斷允許位

0:禁止外部中斷1中斷;

1:允許外部中斷1中斷。(5)ET0:定時/計數(shù)器T0的溢出中斷允許位

0:禁止T0溢出中斷;

1:允許T0溢出中斷。(6)EX0:外部中斷0中斷允許位。

0:禁止外部中斷0中斷;

1:允許外部中斷0中斷。

D7D6D5D4D3D2D1D0EAESET1EX1ET0EX0IE

1:高優(yōu)先級中斷

0:低優(yōu)先級中斷

(1)PS—串行口中斷優(yōu)先級控制位

(2)PT1—定時器T1中斷優(yōu)先級控制位(3)PX1—外部中斷1中斷優(yōu)先級控制位(4)PT0—定時器T0中斷優(yōu)先級控制位(5)PX0—外部中斷0中斷優(yōu)先級控制位2.中斷優(yōu)先級控制寄存器IPD7D6D5D4D3D2D1D0PSPT1PX1PT0PX0IP為什么要有中斷優(yōu)先級?CPU同一時間只能響應(yīng)一個中斷請求。若同時來了兩個或兩個以上中斷請求,就必須有先有后。為此將5個中斷源分成高級、低級兩個級別,高級優(yōu)先,由IP控制。若同時來了兩個或兩個以上優(yōu)先級相同的中斷請求時,則由“同級內(nèi)的中斷優(yōu)先順序”確定。

中斷源中斷標(biāo)志優(yōu)先級順序

INT0IE0最高定時器T0TF0INT1IE1

定時器T1TF1串行口中斷TI或RI最低出現(xiàn)同級中斷請求時按以下順序:中斷優(yōu)先原則:(概括為四句話)1、低級不打斷高級2、高級不睬低級3、同級不能打斷4、同級同時中斷,事先約定MCS-51中斷系統(tǒng)內(nèi)部結(jié)構(gòu)

5.2.3中斷處理過程中斷處理過程可分為四個階段:(一)中斷采樣(二)中斷查詢

(三)中斷響應(yīng)(四)中斷返回(一)中斷采樣

采樣是中斷處理的第一步,主要針對外部中斷請求信號。所謂采樣,就是在每個機器周期的S5P2期間對INT0和INT1引腳進行檢測,根據(jù)檢測的結(jié)果,設(shè)置相應(yīng)中斷標(biāo)志位IE0或IE1的狀態(tài)。(二)中斷查詢

MCS-51系列單片機,在每個機器周期的最后一個狀態(tài)S6期間,都要按先后順序?qū)Ω鱾€中斷標(biāo)志位進行查詢,以確定是否有中斷發(fā)生。若有則在下個機器周期S1期間按優(yōu)先級進行中斷處理。

中斷查詢由硬件自動完成,查詢順序:

IE0(外部中斷0)→TF0(T0)→IE1(外部中斷1)→TF1(T1)

→RI和TI(串行口收發(fā)中斷)(三)中斷響應(yīng)中斷響應(yīng)就是對中斷源提出的中斷請求的接受,當(dāng)CPU查詢到有效的中斷請求時,緊接著就進行中斷的響應(yīng)。1.中斷響應(yīng)的條件:

1)有中斷源發(fā)出中斷請求2)系統(tǒng)處于開中斷狀態(tài),即EA=13)申請中斷的中斷源中斷允許,即相應(yīng)的中斷允許標(biāo)志位為1。

1)CPU正處理相同級別或更高級別的中斷;

2)正在執(zhí)行指令還未到最后一個機器周期;

3)正在執(zhí)行的指令是RETI或訪問IP、IE指令,則執(zhí)行完上述指令后,還應(yīng)再執(zhí)行一條指令,才會響應(yīng)新中斷。響應(yīng)的具體條件:滿足以上條件時,CPU一般會響應(yīng)中斷。但如果有下列情況之一時,中斷響應(yīng)被暫時擱置,中斷查詢結(jié)果即被取消。2.中斷響應(yīng)過程中斷響應(yīng)過程包括保護斷點和將程序轉(zhuǎn)向中斷服務(wù)程序的入口地址。具體過程如下:首先,中斷系統(tǒng)通過硬件自動生成長調(diào)用指令(LCALL),該指令將自動把斷點地址壓入堆棧保護。然后,將對應(yīng)的中斷入口地址裝入PC,使程序轉(zhuǎn)向該中斷入口地址,執(zhí)行中斷服務(wù)程序。單片機的中斷為固定入口式中斷,即一響應(yīng)中斷就轉(zhuǎn)入固定入口地址執(zhí)行中斷服務(wù)程序。具體入口如下:中斷源入口地址INT00003HT0000BHINT10013HT1001BHRI/TI0023H在這些單元中往往是一些跳轉(zhuǎn)指令,跳到真正的中斷服務(wù)程序,這是因為給每個中斷源安排的空間只有8個單元。

3.中斷處理中斷處理就是執(zhí)行中斷服務(wù)程序。中斷服務(wù)程序從中斷入口地址開始執(zhí)行,到返回指令RETI為止。一般包括兩部分內(nèi)容:一是保護現(xiàn)場,二是完成中斷源請求的服務(wù)。保護現(xiàn)場包括保護:累計器A、PSW、及其他一些寄存器。4.中斷響應(yīng)時間所謂中斷響應(yīng)時間是指:CPU檢測到中斷請求信號到轉(zhuǎn)入中斷服務(wù)程序入口所需要的機器周期數(shù)。MCS-51單片機響應(yīng)中斷的最短時間為3個機器周期,時間最長需要8個機器周期。

(1)最快響應(yīng)時間以外部中斷的電平觸發(fā)為最快。從查詢中斷請求信號到中斷服務(wù)程序需要三個機器周期:

1個周期(查詢)+2個周期(長調(diào)用LCALL)(2)最長時間若當(dāng)前指令是RET、RETI和IP、IE指令,緊接著下一條是乘除指令發(fā)生,則最長為8個周期:2個周期執(zhí)行當(dāng)前指令(其中含有1個周期查詢)+4個周期乘除指令+2個周期長調(diào)用=8個周期。為什么要計算中斷響應(yīng)時間?

關(guān)系到MCS-51對外中斷的響應(yīng)速度,在系統(tǒng)設(shè)計中十分重要。中斷響應(yīng)時間是選擇處理器的指標(biāo)?。ㄋ模┲袛喾祷豏ETI指令是專用于中斷服務(wù)程序的返回指令,占兩個機器周期。RETI指令的作用:除正確返回中斷斷點處繼續(xù)執(zhí)行主程序外,并告之中斷系統(tǒng),表示已結(jié)束中斷服務(wù)程序的執(zhí)行,恢復(fù)中斷邏輯可以接受新的中斷請求。中斷源發(fā)中斷請求中斷響應(yīng)條件滿足中斷受阻把PC斷點地址壓入堆棧相應(yīng)中斷源的入口地址送PCYNYN硬件自動完成中斷處理流程保護現(xiàn)場和恢復(fù)現(xiàn)場的過程中不允許中斷,以免現(xiàn)場遭到破壞。保護和恢復(fù)現(xiàn)場之后的開中斷是為了允許有更高級中斷打斷此中斷服務(wù)程序。

5.2.4中斷嵌套

在某一瞬間,CPU因響應(yīng)某一中斷源的中斷請求而正在執(zhí)行它的中斷服務(wù)程序時,若CPU此時的中斷是開放的,那它必然可以把正在執(zhí)行的中斷服務(wù)程序暫停下來轉(zhuǎn)而響應(yīng)和處理中斷優(yōu)先權(quán)更高中斷源的中斷請求,等到處理完后再轉(zhuǎn)回繼續(xù)執(zhí)行原來的中斷服務(wù)程序,這就是中斷嵌套。

中斷嵌套的先決條件:1.中斷服務(wù)程序開頭應(yīng)設(shè)置一條開中斷指令。

(因為CPU會因響應(yīng)中斷而自動關(guān)閉中斷)2.要有中斷優(yōu)先權(quán)更高的中斷請求存在。兩者缺一不可,都是實現(xiàn)中斷嵌套的必要條件。MCS-51中斷嵌套示意圖5.2.5中斷請求的撤除

CPU響應(yīng)某中斷請求后,在中斷返回前應(yīng)撤除該中斷請求,否則會引起另一次中斷。

1.

定時/計數(shù)器中斷請求的撤除:由硬件電路自動撤除的

2.

串行口中斷請求的撤除:

要靠軟件來清除相應(yīng)的標(biāo)志

3.

外部中斷請求的撤除:(分兩種情況)

﹡邊沿觸發(fā):自動撤除

﹡電平觸發(fā):硬件、軟件相配合當(dāng)外部請求為電平觸發(fā)方式時,IE1或IE0是依靠檢測INT0或INT1引腳上的低電平而置位的。盡管CPU在響應(yīng)中斷時IE1或IE0被自動復(fù)位“0”,但如果外部中斷源不能及時撤除在INT0或INT1引腳上的低電平,就會再次置位IE1或IE0

。

而在硬件上,CPU對INT0和INT1引腳的信號不能控制,所以這個問題要通過硬件,再配合軟件來解決。§5.3中斷的應(yīng)用及編程

[例1]若要求外部中斷INT1引腳為邊沿觸發(fā)方式,以及處于高中斷優(yōu)先級,編寫中斷系統(tǒng)初始化程序。

解:程序的編制有兩種方法:采用位操作指令進行編制:

SETBbit或CLRbit

字節(jié)型指令編制

方法一:

SETBEA;開中斷

SETBEX1;開INT1中斷

SETBPX1;令I(lǐng)NT1為高優(yōu)先級

SETBIT1;令I(lǐng)NT1為邊沿觸發(fā)方式

方法二:

MOVIE,#84H;開INT1中斷

ORL IP, #04H;令I(lǐng)NT1為高優(yōu)先級

ORLTCON,#04H;令I(lǐng)NT1為邊沿觸發(fā)方式例2:利用8031的外部中斷,實現(xiàn)單步操作。INT08031+5V1K?硬件組成:單步操作的工作原理:(1)根據(jù)MCS-51單片機中斷系統(tǒng)的一個重要特性:在執(zhí)行完中斷處理程序的RETI指令后,必須返回主程序執(zhí)行一條指令,然后才能響應(yīng)新的中斷。

(2)因此,在硬件電路上,只需通過按鍵或微動開關(guān),實現(xiàn)按鍵彈起為高電平,按下為低電平,將此信號與INTx引腳相連,且設(shè)為電平觸發(fā)方式。當(dāng)按下按鍵產(chǎn)生低電平,經(jīng)INTx請求中斷,主機響應(yīng)中斷,進入中斷服務(wù)程序,等待從INTx引腳上接收到一個脈沖(從低→高→低),才結(jié)束中斷服務(wù)程序,返回主程序并執(zhí)行完一條指令后,又立即進入INTx中斷服務(wù)程序,等待下一個脈沖的到來。(3)不斷按鍵,反復(fù)產(chǎn)生脈沖,就可以單步方式執(zhí)行完整個程序段。初始化程序為:CLR IT0;外部中斷0為電平觸發(fā)SETBEA;CPU開中斷SETBPX0;外部中斷0置為高優(yōu)先級SETBEX0;允許外部中斷0中斷

外部中斷0的中斷服務(wù)程序為:

JNB P3.2,$;INT0為低電平等待JB P3.2,$;INT0為高電平等待RETI

練習(xí):試編寫一段對中斷系統(tǒng)初始化的程序,使之允許、T1

溫馨提示

  • 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

提交評論