單片機原理及應(yīng)用第五章第一次課程中斷_第1頁
單片機原理及應(yīng)用第五章第一次課程中斷_第2頁
單片機原理及應(yīng)用第五章第一次課程中斷_第3頁
單片機原理及應(yīng)用第五章第一次課程中斷_第4頁
單片機原理及應(yīng)用第五章第一次課程中斷_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機原理及應(yīng)用花中秋河北工業(yè)大學(xué)電子科學(xué)技術(shù)系

單片機原理及應(yīng)用第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2第五章中斷控制、定時/計數(shù)器與串行口(5.1MCS-51中斷系統(tǒng))1中斷系統(tǒng)概述1.1中斷定義和作用1.2中斷源及分類1.3中斷嵌套1.4中斷系統(tǒng)功能2中斷系統(tǒng)的結(jié)構(gòu)2.1中斷源和中斷標(biāo)志2.2中斷請求和響應(yīng)2.3中斷系統(tǒng)的初始化3MCS-51對外中斷源的擴展3.1TO/T1對外擴展源3.28259A對外擴展中斷源4MCS-51中斷系統(tǒng)的應(yīng)用4課時單片機原理及應(yīng)用3第五章中斷系統(tǒng)、定時器/計數(shù)器與串口1.1定時器/計數(shù)器概述1.2定時/計數(shù)器結(jié)構(gòu)1.3定時/計數(shù)器的工作方式1.4定時/計數(shù)器的應(yīng)用(5.2MCS-51定時器/計數(shù)器)第五章中斷控制、定時/計數(shù)器與串行口2課時單片機原理及應(yīng)用4第五章中斷系統(tǒng)、定時器/計數(shù)器與串口1.1串行通信概念5.1.1串行通信的種類5.1.2串行通信數(shù)據(jù)傳輸方向1.2串行通信控制及初始化5.2.1串行口的結(jié)構(gòu)5.2.2串行口控制寄存器SCON1.3串行口工作方式及應(yīng)用(5.3串行通信系統(tǒng))第五章中斷控制、定時/計數(shù)器與串行口2課時單片機原理及應(yīng)用51中斷系統(tǒng)概述第五章中斷系統(tǒng)、定時器/計數(shù)器與串口一、中斷的概念計算機具有實時處理能力,能對外界發(fā)生的事件進行及時處理,這是依靠它們的中斷系統(tǒng)來實現(xiàn)的。中斷是現(xiàn)代計算機的一個重要功能,是計算發(fā)展史上的一個里程碑。使用中斷系統(tǒng)可以提高CPU的工作效率,可以提高單片機對數(shù)據(jù)處理的失效。

CPU在處理某一事件A時,發(fā)生了另一事件B請求CPU迅速去處理(中斷發(fā)生);CPU暫時中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù));待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷。單片機原理及應(yīng)用6第五章中斷系統(tǒng)、定時器/計數(shù)器與串口1中斷系統(tǒng)概述執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點中斷請求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回MCS-51單片機的中斷系統(tǒng)結(jié)構(gòu)單片機原理及應(yīng)用7第五章中斷系統(tǒng)、定時器/計數(shù)器與串口1中斷系統(tǒng)概述引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷請求。CPU暫時中斷原來的事務(wù)A,轉(zhuǎn)去處理事件B。對事件B處理完畢后,再回到原來被中斷的地方(即斷點),稱為中斷返回。實現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)(中斷機構(gòu))。單片機原理及應(yīng)用8第五章中斷系統(tǒng)、定時器/計數(shù)器與串口1中斷系統(tǒng)概述單片機原理及應(yīng)用9第五章中斷系統(tǒng)、定時器/計數(shù)器與串口1中斷系統(tǒng)概述單片機原理及應(yīng)用10第五章中斷系統(tǒng)、定時器/計數(shù)器與串口1中斷系統(tǒng)概述單片機原理及應(yīng)用11第五章中斷系統(tǒng)、定時器/計數(shù)器與串口1中斷系統(tǒng)概述單片機原理及應(yīng)用121中斷系統(tǒng)概述軟件排隊的中斷單片機原理及應(yīng)用13第五章中斷系統(tǒng)、定時器/計數(shù)器與串口1中斷系統(tǒng)概述二、中斷技術(shù)的優(yōu)點

隨著計算機技術(shù)的應(yīng)用,人們發(fā)現(xiàn)中斷技術(shù)不僅解決了快速主機與慢速I/O設(shè)備的數(shù)據(jù)傳送問題,而且還具有如下優(yōu)點:分時操作:CPU可以分時為多個I/O設(shè)備服務(wù),提高了計算機的利用率;實時響應(yīng):CPU能夠及時處理應(yīng)用系統(tǒng)的隨機事件,系統(tǒng)的實時性大大增強;可靠性高:CPU具有處理設(shè)備故障及掉電等突發(fā)性事件的能力,從而使系統(tǒng)可靠性提高。單片機原理及應(yīng)用14第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2中斷系統(tǒng)的結(jié)構(gòu)本節(jié)專門討論MCS-51內(nèi)部的中斷系統(tǒng),分析這些系統(tǒng)的功能和作用?,F(xiàn)分成如下六個方面講授:中斷源和中斷標(biāo)志中斷請求的控制中斷的響應(yīng)中斷的響應(yīng)時間中斷請求的撤除中斷系統(tǒng)的初始化單片機原理及應(yīng)用15第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2中斷系統(tǒng)的結(jié)構(gòu)16

8051的中斷系統(tǒng)有5個中斷源,2個優(yōu)先級,可實現(xiàn)二級中斷嵌套。17

一、8051的中斷源

1、(P3.2)。可由IT0(TCON.0)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測到P3.2引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志IE0(TCON.1)置1,向CPU申請中斷。2、(P3.3)??捎蒊T1(TCON.2)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測到P3.3引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志IE1(TCON.3)置1,向CPU申請中斷。3、TF0(TCON.5),片內(nèi)定時/計數(shù)器T0溢出中斷請求標(biāo)志。當(dāng)定時/計數(shù)器T0發(fā)生溢出時,置位TF0,并向CPU申請中斷。4、TF1(TCON.7),片內(nèi)定時/計數(shù)器T1溢出中斷請求標(biāo)志。當(dāng)定時/計數(shù)器T1發(fā)生溢出時,置位TF1,并向CPU申請中斷。5、RI(SCON.0)或TI(SCON.1),串行口中斷請求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時置位RI或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時置位TI,向CPU申請中斷。

單片機原理及應(yīng)用182中斷系統(tǒng)的結(jié)構(gòu)IT0(TCON.0):外部中斷0觸發(fā)方式控制位。當(dāng)IT0=0時,為電平觸發(fā)方式。當(dāng)IT0=1時,為邊沿觸發(fā)方式(下降沿有效)。IE0(TCON.1):外部中斷0中斷請求標(biāo)志位。IT1(TCON.2):外部中斷1觸發(fā)方式控制位。IE1(TCON.3):外部中斷1中斷請求標(biāo)志位。TF0(TCON.5):定時/計數(shù)器T0溢出中斷請求標(biāo)志位。TF1(TCON.7):定時/計數(shù)器T1溢出中斷請求標(biāo)志位。

單片機原理及應(yīng)用19第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2中斷系統(tǒng)的結(jié)構(gòu)單片機原理及應(yīng)用202SCON的中斷標(biāo)志RI(SCON.0):串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由硬件置位RI。同樣,RI必須由軟件清除。TI(SCON.1):串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時,就啟動了發(fā)送過程。每發(fā)送完一個串行幀,由硬件置位TI。CPU響應(yīng)中斷時,不能自動清除TI,TI必須由軟件清除。

2中斷系統(tǒng)的結(jié)構(gòu)單片機原理及應(yīng)用212中斷系統(tǒng)的結(jié)構(gòu)EX0(IE.0):外部中斷0允許位;ET0(IE.1):定時/計數(shù)器T0中斷允許位;EX1(IE.2):外部中斷0允許位;ET1(IE.3):定時/計數(shù)器T1中斷允許位;ES(IE.4):串行口中斷允許位;EA(IE.7):CPU中斷允許(總允許)位。1中斷的允許控制

CPU對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。

單片機原理及應(yīng)用222中斷系統(tǒng)的結(jié)構(gòu)2中斷優(yōu)先級控制

80C51單片機有兩個中斷優(yōu)先級,即可實現(xiàn)二級中斷服務(wù)嵌套。每個中斷源的中斷優(yōu)先級都是由中斷優(yōu)先級寄存器IP中的相應(yīng)位的狀態(tài)來規(guī)定的

。PX0(IP.0)外部中斷0優(yōu)先級設(shè)定位;PT0(IP.1)定時/計數(shù)器T0優(yōu)先級設(shè)定位;PX1(IP.2)外部中斷0優(yōu)先級設(shè)定位;PT1(IP.3)定時/計數(shù)器T1優(yōu)先級設(shè)定位;PS(IP.4)串行口優(yōu)先級設(shè)定位。單片機原理及應(yīng)用23第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2中斷系統(tǒng)的結(jié)構(gòu)3中斷的響應(yīng)單片機原理及應(yīng)用24第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2中斷系統(tǒng)的結(jié)構(gòu)3中斷的響應(yīng)

同一優(yōu)先級中的中斷申請不止一個時,則有中斷優(yōu)先權(quán)排隊問題。同一優(yōu)先級的中斷優(yōu)先權(quán)排隊,由中斷系統(tǒng)硬件確定的自然優(yōu)先級形成,其排列如所示:單片機原理及應(yīng)用252中斷系統(tǒng)的結(jié)構(gòu)3中斷的響應(yīng)80C51單片機的中斷優(yōu)先級有三條原則:

CPU同時接收到幾個中斷時,首先響應(yīng)優(yōu)先級別最高的中斷請求。正在進行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷。正在進行的低優(yōu)先級中斷服務(wù),能被高優(yōu)先級中斷請求所中斷。為了實現(xiàn)上述后兩條原則,中斷系統(tǒng)內(nèi)部設(shè)有兩個用戶不能尋址的優(yōu)先級狀態(tài)觸發(fā)器。其中一個置1,表示正在響應(yīng)高優(yōu)先級的中斷,它將阻斷后來所有的中斷請求;另一個置1,表示正在響應(yīng)低優(yōu)先級中斷,它將阻斷后來所有的低優(yōu)先級中斷請求。單片機原理及應(yīng)用262中斷系統(tǒng)的結(jié)構(gòu)設(shè)置改變IE的內(nèi)容,可由位操作指令來實現(xiàn),即:

SETBbit;

CLRbit。例:若允許片內(nèi)2個定時器/計數(shù)器中斷,禁止其它中斷源的中斷請求。編寫設(shè)置IE的相應(yīng)程序段(1)用位操作指令來編寫如下程序段:

CLRES ;禁止串行口中斷

CLREX1 ;禁止外部中斷1中斷

CLREX0 ;禁止外部中斷0中斷

SETBET0;允許定時器/計數(shù)器T0中斷

SETBET1;允許定時器/計數(shù)器T1中斷

SETBEA;CPU開中斷(2)用字節(jié)操作指令來編寫:

MOVIE,#8AH

或者用:

MOV0A8H,#8AH

;A8H為IE寄存器字節(jié)地址3中斷的響應(yīng)單片機原理及應(yīng)用272中斷系統(tǒng)的結(jié)構(gòu)例:設(shè)置IP寄存器的初始值,使2個外中斷請求為高優(yōu)先級,其它中斷請求為低優(yōu)先級。(1)用位操作指令

SETBPX0;2個外中斷為高優(yōu)先級

SETBPX1 CLRPS;串口為低優(yōu)先級中斷

CLRPT0;2個定時器/計數(shù)器低優(yōu)先級中斷

CLRPT1(2)用字節(jié)操作指令

MOVIP,#05H

或:

MOV0B8H,#05H;B8H為IP寄存器的字節(jié)地址3中斷的響應(yīng)單片機原理及應(yīng)用28第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2中斷系統(tǒng)的結(jié)構(gòu)4中斷的處理過程CPU響應(yīng)中斷的條件是:中斷源有中斷請求;此中斷源的中斷允許位為1;CPU開中斷(即EA=1)。同時滿足時,CPU才有可能響應(yīng)中斷1、中斷響應(yīng)條件和時間

單片機原理及應(yīng)用292中斷系統(tǒng)的結(jié)構(gòu)4中斷的處理過程

CPU執(zhí)行程序過程中,在每個機器周期的S5P2期間,中斷系統(tǒng)對各個中斷源進行采樣。這些采樣值在下一個機器周期內(nèi)按優(yōu)先級和內(nèi)部順序被依次查詢。如果某個中斷標(biāo)志在上一個機器周期的S5P2時被置成了1,那么它將于現(xiàn)在的查詢周期中及時被發(fā)現(xiàn)。接著CPU便執(zhí)行一條由中斷系統(tǒng)提供的硬件LCALL指令,轉(zhuǎn)向被稱作中斷向量的特定地址單元,進入相應(yīng)的中斷服務(wù)程序。

單片機原理及應(yīng)用302中斷系統(tǒng)的結(jié)構(gòu)4中斷的處理過程遇以下任一條件,硬件將受阻,不產(chǎn)生LCALL指令:CPU正在處理同級或高優(yōu)先級中斷;當(dāng)前查詢的機器周期不是所執(zhí)行指令的最后一個機器周期。即在完成所執(zhí)行指令前,不會響應(yīng)中斷,從而保證指令在執(zhí)行過程中不被打斷;正在執(zhí)行的指令為RET、RETI或任何訪問IE或IP寄存器的指令。即只有在這些指令后面至少再執(zhí)行一條指令時才能接受中斷請求。若由于上述條件的阻礙中斷未能得到響應(yīng),當(dāng)條件消失時該中斷標(biāo)志卻已不再有效,那么該中斷將不被響應(yīng)。就是說,中斷標(biāo)志曾經(jīng)有效,但未獲響應(yīng),查詢過程在下個機器周期將重新進行。單片機原理及應(yīng)用312中斷系統(tǒng)的結(jié)構(gòu)4中斷的處理過程若M1周期的S5P2前某中斷生效,在S5P2期間其中斷請求被鎖存到相應(yīng)的標(biāo)志位中去;M2恰逢指令的最后一個機器周期,且該指令不是RETI或訪問IE、IP的指令。于是,M3和M4便可以執(zhí)行硬件LCALL指令,M5周期將進入了中斷服務(wù)程序。80C51的中斷響應(yīng)時間(從標(biāo)志置1到進入相應(yīng)的中斷服務(wù)),至少要3個完整的機器周期。

單片機原理及應(yīng)用322中斷系統(tǒng)的結(jié)構(gòu)

外部中斷的最短的響應(yīng)時間為3個機器周期:(1)中斷請求標(biāo)志位查詢占1個機器周期。(2)子程序調(diào)用指令LCALL轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序入口,需2個機器周期。

外部中斷響應(yīng)的最長的響應(yīng)時間為8個機器周期:(1)發(fā)生在CPU進行中斷標(biāo)志查詢時,剛好是開始執(zhí)行RETI或是訪問IE或IP的指令,則需把當(dāng)前指令執(zhí)行完再繼續(xù)執(zhí)行一條指令后,才能響應(yīng)中斷,當(dāng)前指令執(zhí)行完最長需2個機器周期。(2)接著再執(zhí)行一條指令,按最長指令(乘法指令MUL和除法指令DIV)來算,也只有4個機器周期。(3)加上硬件子程序調(diào)用指令LCALL的執(zhí)行,需要2個機器周期。如果已在處理同級或更高級中斷,響應(yīng)時間無法計算。在一個單一中斷的系統(tǒng)里,AT89C51單片機對外部中斷請求的響應(yīng)的時間總是在3~8個機器周期之間。單片機原理及應(yīng)用33第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2中斷系統(tǒng)的結(jié)構(gòu)4中斷的處理過程將相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器置1(以阻斷后來的同級或低級的中斷請求)。執(zhí)行一條硬件LCALL指令,即把程序計數(shù)器PC的內(nèi)容壓入堆棧保存,再將相應(yīng)的中斷服務(wù)程序的入口地址送入PC。執(zhí)行中斷服務(wù)程序。中斷響應(yīng)過程的前兩步是由中斷系統(tǒng)內(nèi)部自動完成的,而中斷服務(wù)程序則要由用戶編寫程序來完成。

中斷響應(yīng)過程:

單片機原理及應(yīng)用34第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2中斷系統(tǒng)的結(jié)構(gòu)RETI指令的具體功能是:將中斷響應(yīng)時壓入堆棧保存的斷點地址從棧頂彈出送回PC,CPU從原來中斷的地方繼續(xù)執(zhí)行程序;將相應(yīng)中斷優(yōu)先級狀態(tài)觸發(fā)器清0,通知中斷系統(tǒng),中斷服務(wù)程序已執(zhí)行完畢。注意,不能用RET指令代替RETI指令。在中斷服務(wù)程序中PUSH指令與POP指令必須成對使用,否則不能正確返回斷點。中斷返回:

單片機原理及應(yīng)用352中斷系統(tǒng)的結(jié)構(gòu)4中斷的處理過程

若外部中斷定義為電平觸發(fā)方式,中斷標(biāo)志位的狀態(tài)隨CPU在每個機器周期采樣到的外部中斷輸入引腳的電平變化而變化,這樣能提高CPU對外部中斷請求的響應(yīng)速度。但外部中斷源若有請求,必須把有效的低電平保持到請求獲得響應(yīng)時為止,不然就會漏掉;而在中斷服務(wù)程序結(jié)束之前,中斷源又必須撤消其有效的低電平,否則中斷返回之后將再次產(chǎn)生中斷。

電平觸發(fā)方式適合于外部中斷輸入以低電平輸入且中斷服務(wù)程序能清除外部中斷請求源的情況。例如,并行接口芯片8255的中斷請求線在接受讀或?qū)懖僮骱蠹幢粡?fù)位,因此,以其去請求電平觸發(fā)方式的中斷比較方便。單片機原理及應(yīng)用36第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2中斷系統(tǒng)的結(jié)構(gòu)

若外部中斷定義為邊沿觸發(fā)方式,在相繼連續(xù)的兩次采樣中,一個周期采樣到外部中斷輸入為高電平,下一個周期采樣到為低電平,則在IE0或IE1中將鎖存一個邏輯1。即便是CPU暫時不能響應(yīng),中斷申請標(biāo)志也不會丟失,直到CPU響應(yīng)此中斷時才清零。這樣,為保證下降沿能被可靠地采樣到,外中斷引腳上的高低電平(負脈沖的寬度)均至少要保持一個機器周期(若晶振為12MHz時,為1微秒)。邊沿觸發(fā)方式適合于以負脈沖形式輸入的外部中斷請求,如ADC0809的轉(zhuǎn)換結(jié)束標(biāo)志信號EOC為正脈沖,經(jīng)反相后就可以作為80C51的中斷輸入。4中斷的處理過程單片機原理及應(yīng)用372中斷系統(tǒng)的結(jié)構(gòu)4中斷請求的撤銷1.定時器/計數(shù)器中斷請求的撤消

中斷請求被響應(yīng)后。硬件會自動清TF0或TF1。2.外部中斷請求的撤消

(1)跳沿方式外部中斷請求的撤消是自動撤消的。(2)電平方式外部中斷請求的撤消:

除了標(biāo)志位清“0”之外,還需在中斷響應(yīng)后把中斷請求信號引腳從低電平強制改變?yōu)楦唠娖?。單片機原理及應(yīng)用38第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2中斷系統(tǒng)的結(jié)構(gòu)串行口中斷請求的撤消:響應(yīng)串行口的中斷后,CPU無法知道是接收中斷還是發(fā)送中斷,還需測試這兩個中斷標(biāo)志位的狀態(tài),以判定是接收操作還是發(fā)送操作,然后才能清除。所以串行口中斷請求的撤消只能用軟件清除

CLRTI;清TI標(biāo)志位

CLRRI;清RI標(biāo)志位4中斷請求的撤銷單片機原理及應(yīng)用39第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2中斷系統(tǒng)的結(jié)構(gòu)5中斷系統(tǒng)的初始化單片機原理及應(yīng)用40第五章中斷系統(tǒng)、定時器/計數(shù)器與串口2中斷系統(tǒng)的結(jié)構(gòu)5中斷系統(tǒng)的初始化單片機原理及應(yīng)用41第五章中斷系統(tǒng)、定時器/計數(shù)器與串口3中斷源的擴展MCS-51只有INT0/INT1兩個外部中斷輸入線,為了使單片機采用中斷方式和更多的外設(shè)工作,MCS-51的外部中斷個數(shù)必須進行擴展。MCS-51對外部中斷源的擴張方法如下三種:借用T0/T1擴張外部中斷源采用查詢法擴張外部中斷源采用8259A擴張外部中斷源單片機原理及應(yīng)用42第五章中斷系統(tǒng)、定時器/計數(shù)器與串口3中斷源的擴展單片機原理及應(yīng)用43第五章中斷系統(tǒng)、定時器/計數(shù)器與串口3中斷源的擴展典型的鍵盤掃描程序單片機原理及應(yīng)用44第五章中斷系統(tǒng)、定時器/計數(shù)器與串口3中斷源的擴展(了解部分)單片機原理及應(yīng)用45第五章中斷系統(tǒng)、定時器/計數(shù)器與串口4中斷系統(tǒng)的應(yīng)用(一)中斷服務(wù)程序的設(shè)計

1、中斷服務(wù)程序設(shè)計的任務(wù)

基本任務(wù):

(1)設(shè)置中斷允許控制寄存器IE。(2)設(shè)置中斷優(yōu)先級寄存器IP。(3)對外中斷源,是采用電平觸發(fā)還是跳沿觸發(fā)。(4)編寫中斷服務(wù)程序,處理中斷請求。

前2條一般放在主程序的初始化程序段中。單片機原理及應(yīng)用46第五章中斷系統(tǒng)、定時器/計數(shù)器與串口4中斷系統(tǒng)的應(yīng)用

例假設(shè)允許外部中斷0中斷,并設(shè)定它為高級中斷,其它中斷源為低級中斷,采用跳沿觸發(fā)方式。在主程序中編寫如下程序段:

SETBEA;CPU開中斷

SETBET0;允許外中斷0產(chǎn)生中斷

SETBPX0;外中斷0為高級中斷

SETBIT0;外中斷0為跳沿觸發(fā)方式單片機原理及應(yīng)用474中斷系統(tǒng)的應(yīng)用2.采用中斷時的主程序結(jié)構(gòu)常用的主程序結(jié)構(gòu)如下:

ORG0000H LJMPMAIN

ORG中斷入口地址

LJMPINT ? ORGXXXXHMAIN:主程序

INT:中斷服務(wù)程序3.中斷服務(wù)程序的流程如圖所示。單片機原理及應(yīng)用48下面對有關(guān)中斷服務(wù)子程序執(zhí)行過程中的一些問題進行說明。(1)現(xiàn)場保護和現(xiàn)場恢復(fù)現(xiàn)場保護:現(xiàn)場?。為了使中斷服務(wù)子程序的執(zhí)行不破壞這些數(shù)據(jù)或狀態(tài),以免在中斷返回后影響主程序的運行,因此要把它們送入堆棧保存起來?,F(xiàn)場保護一定要位于現(xiàn)場中斷處理程序的前面?,F(xiàn)場恢復(fù):中斷處理結(jié)束后,在返回主程序前,則需要把保存的現(xiàn)場內(nèi)容從堆棧中彈出,以恢復(fù)那些寄存器和存儲器單元中的原有內(nèi)容?,F(xiàn)場恢復(fù)一定要位于中斷處理程序的后面。AT89C51單片機的堆棧操作指令“PUSHdirect”和“POPdirect”,主要是供現(xiàn)場保護和現(xiàn)場恢復(fù)使用的。要保護的內(nèi)容,應(yīng)該由用戶根據(jù)中斷處理程序的具體情況來決定。4中斷系統(tǒng)的應(yīng)用單片機原理及應(yīng)用494中斷系統(tǒng)的應(yīng)用(2)關(guān)中斷和開中斷圖所示為現(xiàn)場保護前和現(xiàn)場恢復(fù)前關(guān)中斷,是為了防止此時有高一級的中斷進入,避免現(xiàn)場被破壞;在現(xiàn)場保護和現(xiàn)場恢復(fù)之后的開中斷是為下一次的中斷做好準備,也為了允許有更高級的中斷進入。這樣,中斷處理可以被打斷,但原來的現(xiàn)場保護和現(xiàn)場恢復(fù)不允許更改,除了現(xiàn)場保護和現(xiàn)場恢復(fù)的片刻外,仍然保持著中斷嵌套的功能。但有的時候,對于一個重要的中斷,必須執(zhí)行完畢,不允許被其他的中斷嵌套。對此可在現(xiàn)場保護之前先關(guān)閉總中斷開關(guān)位,徹底關(guān)閉其他中斷請求,待中斷處理完畢后再開總中斷開關(guān)位。單片機原理及應(yīng)用50第五章中斷系統(tǒng)、定時器/計數(shù)器與串口4中斷系統(tǒng)的應(yīng)用(3)中斷處理是中斷源請求中斷的具體目的。設(shè)計者應(yīng)根據(jù)具體要求,來編寫該部分的程序。(4)中斷返回中斷服務(wù)子程序的最后一條指令必須是返回指令RETI。

CPU執(zhí)行完這條指令后,把響應(yīng)中斷時所置“1”的不可尋址的優(yōu)先級狀態(tài)觸發(fā)器清“0”,然后從堆棧中彈出棧頂上的兩個字節(jié)的斷點地址送到程序計數(shù)器PC,彈出的第1個字節(jié)送入PCH,彈出的第2個字節(jié)送入PCL,CPU從斷點處重新執(zhí)行被中斷的主程序。

單片機原理及應(yīng)用514中斷系統(tǒng)的應(yīng)用例:根據(jù)中斷服務(wù)程序流程,編出中斷服務(wù)程序。假設(shè),現(xiàn)場保護只需將PSW和A的內(nèi)容壓入堆棧中保護。典型的中斷服務(wù)程序如下:

INT: CLREA ;CPU關(guān)中斷

PUSHPSW ;現(xiàn)場保護

PUSHACC ;

SETBEA ;CPU開中斷

中斷處理程序段

CLREA ;CPU關(guān)中斷

POPACC ;現(xiàn)場恢復(fù)

POPPSW SETBEA ;CPU開中斷

RETI ;中斷返回,恢復(fù)斷點單片機原理及應(yīng)用52第五章中斷系統(tǒng)、定時器/計數(shù)器與串口4中斷系統(tǒng)的應(yīng)用幾點說明:(1)現(xiàn)場保護僅涉及到PSW和A的內(nèi)容,如還有其它需保護的內(nèi)容,只需要在相應(yīng)的位置再加幾條PUSH和POP指令即可。(2)“中斷處理程序段”,應(yīng)根據(jù)任務(wù)的具體要求,來編寫。(3)如果本中斷服務(wù)程序不允許被其它的中斷所中斷??蓪ⅰ爸袛嗵幚沓绦蚨巍鼻昂蟮摹癝ETBEA”和“CLREA”兩條指令去掉。(4

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論