《單片機原理及接口技術》第五章中斷系統(tǒng)_第1頁
《單片機原理及接口技術》第五章中斷系統(tǒng)_第2頁
《單片機原理及接口技術》第五章中斷系統(tǒng)_第3頁
《單片機原理及接口技術》第五章中斷系統(tǒng)_第4頁
《單片機原理及接口技術》第五章中斷系統(tǒng)_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第五章中斷系統(tǒng)中斷的基本概念MCS-51的中斷系統(tǒng)中斷源和中斷標志中斷的允許和優(yōu)先權中斷的處理過程外部中斷源的擴展中斷的應用無條件傳送(顯示器)查詢傳送(打印機、A/D轉換器)直接數據存?。―MA)方式DirectMemoryAccess

(需DMA控制器)中斷傳送5.1微機的輸入/輸出方式日常中斷的例子返回你正在專心看書,突然電話鈴響,于是你記下正在看的書的頁數,去接電話,接完電話后再回來接著看書。5.2中斷的基本概念計算機中的中斷概念返回CPU掛起正在執(zhí)行的程序而轉去處理特殊的事件的操作。將能引起中斷的事件稱為中斷源。CPU現(xiàn)行運行的程序稱為主程序。處理隨機事件的程序稱為中斷服務子程序。

中斷技術的優(yōu)點分時操作

——CPU可以同多個外設“同時”工作實時處理

——CPU及時處理隨機事件故障處理

——電源掉電、存儲出錯、運算溢出

5.389C51中斷系統(tǒng)結構中斷源中斷標志中斷允許中斷優(yōu)先級MCS-51中斷系統(tǒng)結構中斷寄存器

MCS-51的中斷系統(tǒng)——中斷源89C51單片機有5個中斷請求源:單片機INT0或外部輸入中斷源INT0(P3.2)INT1或外部輸入中斷源INT1(P3.3)T0定時器T0的溢出T1定時器T1的溢出串行口串行口發(fā)送或接收中斷源

MCS-51的中斷系統(tǒng)——中斷標志CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中斷源中斷標志位每一個中斷源都有相應的中斷標志位;某一個中斷源申請中斷,相應中斷標志位置1。

MCS-51的中斷系統(tǒng)——中斷允許CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中斷源中斷標志位

EA——總中斷允許位,EA=1開放所有中斷,EA=0,禁止所有中斷;某一個中斷源還有相應的中斷允許位,1允許相應中斷源的中斷,0禁止相應中斷源的中斷。中斷允許ESET0EX0EX1ET1EA

MCS-51的中斷系統(tǒng)——中斷優(yōu)先級CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TISI中斷源中斷標志位

單片機中有兩個中斷優(yōu)先級,即高優(yōu)先級中斷和低優(yōu)先級中斷,前者優(yōu)先權高于后者(在程序中設置,相應位=1,為高優(yōu)先級);同一優(yōu)先級別的中斷源按照自然優(yōu)先級順序確定優(yōu)先級別(硬件形成,無法改變)。中斷允許ESET0EX0EX1ET1EA自然優(yōu)先級高低優(yōu)先控制PSPT0PX0PX1PT1IE0TCONSCONINT0IT0=0IT0=1INT1IT1=0IT1=1TF0IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然優(yōu)先級矢量地址高級中斷請求自然優(yōu)先級矢量地址低級中斷請求PX0PT0PX1PT1PSIEIPMCS-51的中斷系統(tǒng)結構圖中斷標志位中斷源允許總允許中斷優(yōu)先級作用:控制中斷類型、中斷的開關、中斷的優(yōu)先級TCON(6位)SCON(2位)IEIP

均可位尋址或字節(jié)尋址四個中斷控制寄存器(都是SFR)TCON寄存器——T0和T1控制寄存器TF1

TF0

IE1IT1IE0IT0TCONT1溢出中斷標志(TCON.7):

T1啟動計數后,計滿溢出由硬件置位TF1=1,向CPU請求中斷,此標志一直保持到CPU響應中斷后,才由硬件自動清0。也可用軟件查詢該標志,并由軟件清0。76543210TF1

TF0

IE1IT1IE0IT0TCON88H外部中斷INT1中斷標志位(TCON.3)

:IE1=1,外部中斷1向CPU申請中斷

外部中斷INT1觸發(fā)方式控制位(TCON.2):

IT1=0,電平觸發(fā)方式

IT1=1,下降沿觸發(fā)方式76543210TCON寄存器——T0和T1控制寄存器注意:該寄存器可以位尋址。返回

TI(SCON.1)——串行發(fā)送中斷標志。RI(SCON.0)——串行接收中斷標志。

TIRISCON寄存器——串行口控制寄存器SCON98H76543210注意:該寄存器可以位尋址。IE寄存器——中斷允許寄存器

IEA8H

EA

ESET1EX1ET0EX0例:允許定時器T0中斷:

SETBEASETBET0

或MOVIE,#82H76543210注意:該寄存器可以位尋址。

51單片機有兩個中斷優(yōu)先級——高級和低級專用寄存器IP為中斷優(yōu)先級寄存器,用戶可用軟件設定相應位為1,對應的中斷源被設置為高優(yōu)先級,相應位為0,對應的中斷源被設置為低優(yōu)先級系統(tǒng)復位時,均為低優(yōu)先級該寄存器可以位尋址

PSPT1PX1PT0PX0IP寄存器——中斷優(yōu)先級寄存器

IPB8H

76543210

中斷處理過程分為三個階段:

中斷響應中斷處理(又稱中斷服務)中斷返回中斷響應中斷返回5.4中斷處理過程在89C51內部,中斷表現(xiàn)為CPU的微查詢操作,89C51的CPU在每個機器周期的S5P2期間順序采樣每個中斷源,在下一個機器周期的S6期間按優(yōu)先級查詢中斷標記,若查詢到某個標記位為1,則在下一個機器周期的S1期間響應相對的中斷,并進行中斷處理。(CPU的自主操作)中斷響應條件中斷響應:在滿足CPU的中斷響應條件之后,CPU對中斷源中斷請求予以處理。CPU響應中斷的條件:有中斷源發(fā)出中斷請求;中斷總允許EA=1,即CPU開中斷;申請中斷的中斷源對應的中斷允許位為1,即中斷沒有被屏蔽;無同級或更高級中斷正在被服務;當前的指令周期已經結束;若現(xiàn)行指令為RETI或者訪問IE或IP指令,則該指令以及緊接著的另一條指令已執(zhí)行完。89C51單片機的中斷優(yōu)先級有三條原則:CPU同時接收到幾個中斷時,首先響應優(yōu)先級別最高的中斷請求。正在進行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷。正在進行的低優(yōu)先級中斷服務,能被高優(yōu)先級中斷請求所中斷。為了實現(xiàn)上述后兩條原則,中斷系統(tǒng)內部設有兩個用戶不能尋址的優(yōu)先級狀態(tài)觸發(fā)器。其中一個置1,表示正在響應高優(yōu)先級的中斷,它將阻斷后來所有的中斷請求;另一個置1,表示正在響應低優(yōu)先級中斷,它將阻斷后來所有的低優(yōu)先級中斷請求。中斷響應(以外部中斷0為例)中斷響應過程:保護斷點地址;中斷響應把程序轉向中斷服務程序的入口地址(通常稱矢量地址)。特別注意:這些工作是硬件自動完成的!

斷點地址中斷服務子程序的入口地址外部中斷0入口地址0003ZD0AJMPORG0003HAJMPZD0ZD0中斷響應中斷服務子程序入口地址又稱為中斷矢量或中斷向量。中斷響應單片機中5個中斷源的矢量地址是固定的,不能改動。斷點地址中斷服務子程序的入口地址程序存儲器ROM0000H:復位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時器0溢出中斷入口0013H:外部中斷1入口001BH:定時器1溢出中斷入口002AH使用時,通常在這些入口地址處存放一條跳轉指令,使程序跳轉到用戶安排的中斷服務程序起始地址上去!程序存儲器ROM0000H:復位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時器0溢出中斷入口0013H:外部中斷1入口001BH:定時器1溢出中斷入口002AH包含T0中斷服務子程序的程序結構:

ORG0000H AJMPMAIN

ORG000BH AJMPINTT0

ORG0100HMAIN:...INTT0:...RETIENDAJMPMAINAJMPINTT0中斷響應時間響應時間--從查詢中斷請求標志位到轉向中斷服務入口地址所需的機器周期數。(1)最快響應時間以外部中斷為例,說明中斷響應最短時間。從查詢中斷請求信號到中斷服務程序需要三個機器周期:

1個周期(查詢)+2個周期(長調用LCALL)(2)最長時間若當前指令是RET、RETI和訪問IP、IE指令,緊接著下一條是乘除指令發(fā)生,則最長為8個周期:2個周期執(zhí)行當前指令(其中含有1個周期查詢)+4個周期乘除指令+2個周期長調用=8個周期。中斷處理中斷服務程序從中斷子程序入口地址開始執(zhí)行,直到返回指令RETI為止,這個過程稱為中斷處理(或中斷服務)。中斷服務子程序一般包括兩部分內容,一是保護和恢復現(xiàn)場,二是處理中斷源的請求。中斷響應入口地址RETI中斷處理INTT0:PUSHACC PUSHDPHPUSHDPLPUSHPSW

中斷源服務

POPPSW

POPDPLPOPDPHPOPACCRETI保護現(xiàn)場恢復現(xiàn)場所謂現(xiàn)場是指中斷發(fā)生時單片微機中存儲單元、寄存器、特殊功能寄存器中的數據或標志位等。在89C51中,現(xiàn)場一般包括累加器A、工作寄存器R0~R7以及程序狀態(tài)字PSW、DPTR等?,F(xiàn)場保護一定要位于中斷服務程序的前面。

在結束中斷服務程序返回斷點處之前要恢復現(xiàn)場,與保護現(xiàn)場的方法相對應。而恢復斷點也是由硬件電路自動實現(xiàn)的,中斷服務程序的最后一條指令必須是RETI指令。中斷返回中斷返回是指中斷服務完后,計算機返回到原來暫停的位置(即斷點),繼續(xù)執(zhí)行原來的程序。中斷返回由專門的中斷返回指令RETI來實現(xiàn)。中斷響應中斷返回中斷返回RETI指令功能:把斷點地址取出,送回到程序計數器PC中去。另外,它還通知中斷系統(tǒng)已完成中斷處理,將清除優(yōu)先級狀態(tài)觸發(fā)器。特別注意:不能用RET指令代替RETI指令!中斷響應中斷返回中斷處理過程示意圖中斷源發(fā)中斷請求中斷響應條件是否滿足?中斷是否受阻?

把PC斷點地址壓入堆棧

相應中斷源的中斷入口地址送入PC,轉向中斷服務程序NYYN

由硬件自動完成

關中斷保護現(xiàn)場中斷服務

開中斷

關中斷恢復現(xiàn)場

開中斷中斷返回斷點地址由堆棧彈入PC保護現(xiàn)場和恢復現(xiàn)場的過程中不允許中斷,以免現(xiàn)場遭到破壞。保護和恢復現(xiàn)場之后的開中斷是為了允許有更高級中斷打斷此中斷服務程序。中斷服務程序硬件自動完成中斷請求的撤除

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

定時器0或1溢出:CPU在響應中斷后,硬件清除了有關的中斷請求標志TFO或TF1,即中斷請求是自動撤除的。

邊沿激活的外部中斷:CPU在響應中斷后,也是用硬件自動清除有關的中斷請求標志IE0或IE1。

串行口中斷:CPU響應中斷后,沒有用硬件清除T1、R1,故這些中斷不能自動撤除,而要靠軟件來清除相應的標志。電平觸發(fā)外部中斷撤除方法較復雜。因為在電平觸發(fā)方式中,CPU響應中斷時不會自動清除IE1或IE0標志,所以在響應中斷后應立即撤除INT0或INT1引腳上的低電平。

CPU對INT0和INT1引腳的信號不能控制,需在引腳外加硬件(如D觸發(fā)器)使其自動撤銷外部中斷請求。電平激活的外部中斷源中斷標志的撤除 電平觸發(fā)方式適合于外部中斷輸入以低電平輸入且中斷服務程序能清除外部中斷請求源的情況。例如,并行接口芯片8255的中斷請求線在接受讀或寫操作后即被復位,因此,以其去請求電平觸發(fā)方式的中斷比較方便。 邊沿觸發(fā)方式適合于以負脈沖形式輸入的外部中斷請求,如ADC0809的轉換結束標志信號EOC為正脈沖,經反相后就可以作為80C51的中斷輸入。外部中斷源的中斷觸發(fā)方式適用范圍編寫中斷服務程序的技巧在中斷服務程序入口處置一條無條件轉移指令軟件保護現(xiàn)場,以免現(xiàn)場信息丟失CPU響應完中斷后,硬件自動清0中斷請求標志,但串行口中斷除外程序中可以禁止高級中斷PUSH和POP應成對使用以RETI結尾中斷系統(tǒng)初始化對IE、IP、TCON、SCON中的控制位進行賦值開相應中斷源的中斷允許位設定所有中斷源的優(yōu)先級若為外部中斷,應規(guī)定中斷觸發(fā)方式練習:請寫出外部中斷1為低電平的中斷系統(tǒng)初始化程序。解:采用位操作指令:SETBEA

SETBEX1

;開外部中斷1SETBPX1

;令外部中斷1高優(yōu)先級CLRIT1;令外部中斷1為電平觸發(fā)采用字節(jié)操作指令:MOVIE,#84H

;開外部中斷1ORLIP,#04H

;令外部中斷1高優(yōu)先級ANLTCON,#0FBH

;令外部中斷1為電平觸發(fā)89C51的外部中斷源僅有兩個,需要時可以擴展。擴展方法:利用定時器擴展中斷加軟件查詢5.5外部中斷擴展方法1、利用定時器擴展外部中斷源方法:(1)把89C51的T0/T1做計數器使用;(2)計數初值設為FFFFH;(3)外部中斷請求信號從P3.4或P3.5輸入。當外部中斷請求信號有效時,使計數器加1而溢出,向CPU發(fā)出中斷請求。設某用戶系統(tǒng)中已使用了兩個外部中斷源,并置定時器T1工作在模式2,作串行口波特率發(fā)生器用。現(xiàn)要求再增加一個外部中斷源,并由P1.0輸出一個5KHz的方波。Fosc=12MHz。分析:目的:1)增加一個外部中斷;2)使P1.0輸出一個方波。條件:1)兩個外部中斷源已被使用2)定時器T1已用于串行口波特率發(fā)生器因此:可利用定時/計數器T0,使之工作在模式3,1)利用TL0擴展外部中斷源2)利用TH0作定時器使用,輸出方波

設置初值:1)TL0=0FFH2)因為輸出方波f=5kHz,故方波周期為200us,用TH0產生100us的定時,故TH0的初值X=256–(定時時間/機器周期)=256-(100us*晶振頻率/12)=156設定T0工作方式,TMOD,TCON.程序:

MOVTMOD,#27H;T0:模式3,計數方式;T1:模式2,定時方式

MOVTL0,#0FFH;一旦加1,馬上溢出,申請中斷

MOVTH0,#156;TH0初值

MOVTH1,#data;根據波特率要求而定

MOVTL1,#data

MOVTCON,#55H;01010101MOVIE,#9FH;開放全部中斷TL0INT:MOVTL0,#0FFH;TL0重新賦值…..

RETITH0INT:MOVTH0,#156;TH0重新賦值

CPLP1.0RETI

2、中斷加查詢擴展外部中斷源各個外中斷經過“線或”接入到INT0或INT1上,高產生中斷請求。

P1.0~P1.3用于查詢。例

如右圖所示的中斷電路可實現(xiàn)系統(tǒng)的故障顯示。當系統(tǒng)的各部分正常工作時,4個故障源的輸入均為低電平,顯示燈全不亮。當有某個部分出故障時,則相應的輸入線由低電平變?yōu)楦唠娖剑鄳陌l(fā)光二極管點亮。程序如下:

ORG0000HSJMPMAINORG0003HSJMPINTERORG0030HMAIN:ANLP1,#55HSETBEX0SETBI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論