單片機技術(shù)與項目訓(xùn)練 課件 第4章 單片機中斷系統(tǒng)_第1頁
單片機技術(shù)與項目訓(xùn)練 課件 第4章 單片機中斷系統(tǒng)_第2頁
單片機技術(shù)與項目訓(xùn)練 課件 第4章 單片機中斷系統(tǒng)_第3頁
單片機技術(shù)與項目訓(xùn)練 課件 第4章 單片機中斷系統(tǒng)_第4頁
單片機技術(shù)與項目訓(xùn)練 課件 第4章 單片機中斷系統(tǒng)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機中斷系統(tǒng)第4章

中斷系統(tǒng)是為了使單片機對外部或內(nèi)部隨機發(fā)生的事件能及時處理而設(shè)置的。中斷功能的存在在很大程度上增強了單片機處理突發(fā)事件的能力。本章從中斷的概念、中斷系統(tǒng)結(jié)構(gòu)、中斷允許與中斷優(yōu)先級的控制、響應(yīng)中斷請求的條件、外部中斷的響應(yīng)時間、外部中斷的觸發(fā)方式選擇、中斷服務(wù)子程序的設(shè)計和多外部中斷源擴展設(shè)計等方面對中斷進行介紹。引言目錄中斷概述1外部中斷應(yīng)用2本章小結(jié)3本章習(xí)題4行業(yè)PPT模板/hangye/4.1

中斷概述4.1.1中斷的概念

CPU在處理某一事件A時,發(fā)生了另一事件B請求CPU迅速去處理(中斷發(fā)生);

CPU暫時中斷當前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù));待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷。

(a)中斷流程

(b)中斷嵌套流程4.1.28051系列單片機中斷系統(tǒng)及與中斷有關(guān)的SFR1、8051系列單片機的中斷系統(tǒng)

8051系列單片機共有5個中斷源:兩個外部中斷和、兩個定時/計數(shù)器T0和T1,以及一個串口(分為兩個優(yōu)先級)。4.1.28051系列單片機中斷系統(tǒng)及與中斷有關(guān)的SFRIT0(TCON.0),外部中斷0觸發(fā)方式控制位。當IT0=0時,為電平觸發(fā)方式。當IT0=1時,為邊沿觸發(fā)方式(下降沿有效)。IE0(TCON.1),外部中斷0中斷請求標志位。IT1(TCON.2),外部中斷1觸發(fā)方式控制位。IE1(TCON.3),外部中斷1中斷請求標志位。TF0(TCON.5),定時/計數(shù)器T0溢出中斷請求標志位TF1(TCON.7),定時/計數(shù)器T1溢出中斷請求標志位。TCOND7D6D5D4D3D2D1D0位定義TF1—TF0—IE1IT1IE0IT02、與中斷系統(tǒng)有關(guān)的SFR(1)TCON(TimerControl)——中斷控制寄存器TCON中含有與定時器和外部中斷有關(guān)的標志位。TCON的字節(jié)地址是88H,可以進行位尋址和位操作。(2)IE(InterruptEnable)——中斷允許控制寄存器

CPU對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。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中斷允許(總允許)位。4.1.28051系列單片機中斷系統(tǒng)及與中斷有關(guān)的SFRIED7D6D5D4D3D2D1D0位定義EA——ESET1EX1ET0EX0(3)IP(InterruptPriority)——中斷優(yōu)先級控制寄存器8051單片機有兩個中斷優(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è)定位;PT2(IP.5),定時/計數(shù)器T2優(yōu)先級設(shè)定位。4.1.28051系列單片機中斷系統(tǒng)及與中斷有關(guān)的SFRIPD7D6D5D4D3D2D1D0位定義———PSPT1PX1PT0PX0

中斷源有請求時會產(chǎn)生請求標志,如果中斷是被允許的,那么CPU會響應(yīng)該中斷,響應(yīng)中斷時,PC轉(zhuǎn)移到該中斷向量地址(也稱入口地址)處運行程序。8051單片機中斷源的入口地址固定在程序存儲器開頭的一段范圍內(nèi)(0003H~002BH),具體地址如下表所示。中斷源入口地址中斷編號0003H0T0000BH10013H2T1001BH3串口0023H43.中斷源向量地址4.1.28051系列單片機中斷系統(tǒng)及與中斷有關(guān)的SFR4.1.3中斷處理過程

中斷是一個過程,整個過程可以分為以下幾步:中斷請求、中斷響應(yīng)、中斷服務(wù)和中斷返回。1、中斷請求

中斷源只有在有中斷請求時,CPU才可能響應(yīng)它,不同的中斷源產(chǎn)生中斷請求的方式是不同的。中斷源的中斷請求標志由內(nèi)部硬件電路自動置為“1”,CPU在執(zhí)行指令的每個機器周期里都會查詢這些中斷請求標志,如果查詢到某個中斷請求標志為“1”,那么CPU就可能響應(yīng)該中斷源的中斷請求。2、中斷響應(yīng)

有了中斷請求,CPU要響應(yīng)它還必須滿足以下幾個條件。

第一,該中斷源的中斷請求已經(jīng)被允許,即對應(yīng)的中斷允許標志和總的中斷允許標志EA都被設(shè)置為“1”。

第二,CPU此時沒有響應(yīng)同級或高級中斷。如果已經(jīng)有中斷服務(wù)程序在運行,CPU不會響應(yīng)新的同級中斷請求,但可以響應(yīng)高級中斷。如果正在執(zhí)行高級中斷服務(wù)程序,那么單片機也不會響應(yīng)任何中斷。

第三,CPU正處于執(zhí)行某一條指令的最后一個機器周期。如果不是,就只有等到該條指令執(zhí)行完才能響應(yīng)。

第四,如果正在執(zhí)行的指令是對IE、IP進行訪問的指令或中斷返回指令RETI,則只有等該指令執(zhí)行完再執(zhí)行一條其他指令才會響應(yīng)中斷請求。CPU在響應(yīng)某個中斷時,先做了如下操作:

(1)保護斷點地址;

(2)撤除該中斷源的請求標志;

(3)關(guān)閉同級中斷;

(4)將該中斷源的入口地址送給PC,程序?qū)⑥D(zhuǎn)到該程序的入口地址處運行。

3.中斷服務(wù)

中斷服務(wù)就是中斷源請求CPU做的任務(wù),需要編程者用指令來實現(xiàn)。中斷服務(wù)程序的內(nèi)容包括3部分:保護現(xiàn)場、服務(wù)程序主體、恢復(fù)現(xiàn)場,流程如圖所示。4.中斷返回

中斷返回與子程序的返回類似,在匯編語言程序中,需要執(zhí)行一條返回指令RETI。RETI指令的功能如下:

RETI; //①(SP)→PC15~8,SP-1→SP //②(SP)→PC7~0,SP-1→SP

中斷服務(wù)程序中最后執(zhí)行的指令必須是RETI,程序才能正確返回。執(zhí)行RETI指令時,CPU自動完成下面的操作:(1)恢復(fù)斷點地址;

(2)開放同級中斷,允許同級的其他中斷源響應(yīng)。注意:匯編語言在中斷服務(wù)程序中使用RETI指令返回,但在C語言的中斷服務(wù)程序中不使用返回語句,也不能返回任何數(shù)值。

4.1.3中斷處理過程4.1.4中斷響應(yīng)時間

中斷的設(shè)置是為了單片機能及時地處理隨機發(fā)生的事件,但從中斷請求到中斷被響應(yīng)需要一定的時間,只有在響應(yīng)的條件滿足時才能響應(yīng)。

如果在中斷請求階段已經(jīng)有高級中斷或同級中斷在運行,則等待的時間主要決定于正在運行的中斷程序的大小。需要考慮其他中斷程序?qū)Ρ局袛囗憫?yīng)速度的影響,對響應(yīng)速度要求高的中斷源可以設(shè)置為高優(yōu)先級,其他中斷源設(shè)置為低優(yōu)先級,高優(yōu)先級中斷源一般只設(shè)置1個。

如果沒有高級中斷或同級中斷正在運行,則等待的時間取決于中斷請求時執(zhí)行的指令,如果執(zhí)行的是RETI或訪問IE、IP的指令,則需要先等這類指令執(zhí)行完畢,再執(zhí)行一條指令,只有這樣,才能響應(yīng)中斷(如果緊接的指令是乘除法指令,則等待的時間長一些)。響應(yīng)中斷的時間為3~8個機器周期,一般情況下為3~4個機器周期。4.1.5C語言中斷程序結(jié)構(gòu)使用C語言編寫中斷服務(wù)程序十分簡單,只需按照規(guī)定格式來編寫即可。具體格式如下:void中斷函數(shù)名(void)interrupt中斷編號[using寄存器組]{

中斷處理語句;

......

}

以上中斷服務(wù)程序不能有返回值,而且參數(shù)為空。其中,中斷編號根據(jù)所使用的中斷源來確定;寄存器組可以選0~3,也可以不選,由編譯器自動分配。中斷程序處理完畢后自動返回原斷點處。4.2

外部中斷的應(yīng)用4.2.1外部中斷應(yīng)用步驟1.硬件

硬件上的中斷比較簡單,只需將低電平或下降沿信號加到相應(yīng)的中斷引腳上即可。用戶要做的就是通過一定的電路把按鍵、系統(tǒng)掉電、A/D轉(zhuǎn)換結(jié)束、傳感器、開關(guān)動作等狀態(tài)轉(zhuǎn)變成有效的中斷請求信號,并加到對應(yīng)的外部中斷的引腳上。2.軟件

外部中斷在軟件上的設(shè)計步驟可以分為3步:初始化、入口地址和服務(wù)程序。(1)初始化。外部中斷初始化內(nèi)容包括中斷觸發(fā)方式選擇、開放“中斷”和中斷優(yōu)先級設(shè)置。外部中斷有低電平觸發(fā)和下降沿觸發(fā)兩種方式,一般選用下降沿觸發(fā)方式。中斷優(yōu)先級設(shè)置是指根據(jù)實際情況,結(jié)合其他中斷源的統(tǒng)一設(shè)置。一般可以不設(shè)置,只有當它用來處理系統(tǒng)優(yōu)先任務(wù)時,才把它設(shè)置為高優(yōu)先級。(2)入口地址。CPU響應(yīng)中斷時會自動轉(zhuǎn)移到中斷源的入口地址處運行程序,因此在使用匯編語言來編寫中斷服務(wù)程序時,就需要把程序放在入口地址處。采用C語言編程不需要入口地址,只需設(shè)置中斷編號。(3)服務(wù)程序。服務(wù)程序是具體的程序內(nèi)容,根據(jù)中斷源中斷要做的事情,編制相應(yīng)的程序。它與子程序有類似的地方,其名稱作為上面轉(zhuǎn)移指令的目的地址,在程序的最后要有RETI指令,服務(wù)程序完成后可以返回斷點處。4.2.2外部中斷應(yīng)用舉例【例4-1】

在LED流水燈電路的基礎(chǔ)上設(shè)計中斷接口電路,將按鍵信號轉(zhuǎn)變成外部中斷的請求信號,如圖4-5所示。要求:按鍵每按一下,LED循環(huán)移一位。

實現(xiàn)原理分析:當按鍵沒有被按下時,P3.2引腳被上拉為高電平。在按鍵被按下的過程中,P3.2引腳有下降沿信號,變?yōu)榈碗娖健o論是低電平還是下降沿,都可以作為中斷的請求信號。voidsetup(void)//初始化設(shè)置子程序{LED=0xfe;

//亮燈初始信息IT0=1;

//外部中斷下降沿觸發(fā)EX0=1;

//允許外部中斷EA=1;

//允許全局中斷}voidINTEX0(void)interrupt0using1

//中斷服務(wù)程序{P1=LED;LED=LED<<1|0x01;//亮燈信息左移一位}4.2.2外部中斷應(yīng)用舉例名稱:INT1的中斷函數(shù)程序功能:實現(xiàn)9~0的遞減顯示voidINTEX1(void)interrupt2{charj;//設(shè)置有符號的變量for(j=9;j>=0;j--)//for循環(huán),共循環(huán)9次

{

display(j);//調(diào)用顯示函數(shù)

delayms(500);//延時0.5s

}}程序功能:實現(xiàn)數(shù)碼管的顯示入口參數(shù):待顯示的數(shù)字voiddisplay(unsignedcharnumber)

//顯示函數(shù){ P0=SEG[number];}【例4-2】

如圖4-6所示,系統(tǒng)上電時,數(shù)碼管從0到9遞增循環(huán)顯示。當按鍵被按下時,用中斷方式控制數(shù)碼管從9到0遞減顯示一次。實現(xiàn)原理分析:在第3章的案例中已經(jīng)介紹過單個數(shù)碼管的循環(huán)遞增顯示原理,與之前不同的是,本例中的數(shù)碼管的顯示被按鍵中斷,顯示的數(shù)據(jù)有變化。這些變化的顯示可以放在中斷服務(wù)程序中實現(xiàn)。4.2.3外部中斷源的擴展

8051單片機的外部中斷只有兩個,有時會不夠用。當有多個外部信號需要使用中斷方式工作時,可以采用擴展的方法。如圖所示。在中斷服務(wù)程序中,首先要判斷是哪個信號產(chǎn)生了中斷請求,可通過讀與之相連的I/O口來判斷。如果某個引腳電平為低,就是該引腳信號引起的中

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論