第05章MCS-51單片機中斷系統(tǒng).ppt_第1頁
第05章MCS-51單片機中斷系統(tǒng).ppt_第2頁
第05章MCS-51單片機中斷系統(tǒng).ppt_第3頁
第05章MCS-51單片機中斷系統(tǒng).ppt_第4頁
第05章MCS-51單片機中斷系統(tǒng).ppt_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、中斷的概念 MCS-51的中斷系統(tǒng) 中斷源和中斷標(biāo)志 中斷的允許和優(yōu)先權(quán) 中斷的處理過程 外部中斷源的擴展 中斷的應(yīng)用,第章中斷系統(tǒng),本章內(nèi)容,Single Chip Microcomputer,中斷的基本概念,日常生活中斷的例子 單片機中的中斷概念 中斷技術(shù)的優(yōu)點,日常中斷的例子,返回,你正在專心看書,突然電話鈴響,于是你記下正在看的書的頁數(shù),去接電話,接完電話后再回來接著看書。,計算機中的中斷概念,返回,中斷是指當(dāng)CPU正在處理某項事務(wù)的時候,如果系統(tǒng)發(fā)生了緊急事件,要求CPU暫停當(dāng)前正在處理的工作而去處理這個緊急事件,待事件處理完成后,再回到原來中斷的地方,繼續(xù)執(zhí)行原來被中斷的程序,這個

2、過程 。 將能引起中斷的事件稱為中斷源。 CPU現(xiàn)行運行的程序稱為主程序。 處理隨機事件的程序稱為中斷服務(wù)子程序。,中斷過程動畫演示,中斷技術(shù)的優(yōu)點,分時操作 CPU可以同多個外設(shè)“同時”工作 實時處理 CPU及時處理隨機事件 故障處理 電源掉電、存儲出錯、運算溢出,MCS-51中斷系統(tǒng),中斷源 中斷標(biāo)志 中斷允許 中斷優(yōu)先級 MCS-51中斷系統(tǒng)結(jié)構(gòu) 中斷寄存器,MCS-51的中斷系統(tǒng)中斷源,8051單片機有5個中斷請求源:,單片機,MCS-51的中斷系統(tǒng)中斷標(biāo)志,CPU,主程序,INT0,INT1,T0,T1,串口,IE0,TF0,IE1,TF1,中斷源,中斷標(biāo)志位,每一個中斷源都有相應(yīng)的

3、中斷標(biāo)志位; 某一個中斷源申請中斷,相應(yīng)中斷標(biāo)志位置1。,中斷矢量,0003H,000BH,0013H,001BH,0023H,MCS-51的中斷系統(tǒng)中斷允許,CPU,主程序,INT0,INT1,T0,T1,串口,IE0,TF0,IE1,TF1,中斷源,中斷標(biāo)志位,EA總中斷允許位,EA=1開放所有中斷,EA=0,禁止所有中斷; 某一個中斷源還有相應(yīng)的中斷允許位,1允許相應(yīng)中斷源的中斷,0禁止相應(yīng)中斷源的中斷。,中斷允許,ES,ET0,EX0,EX1,ET1,EA,MCS-51的中斷系統(tǒng)中斷優(yōu)先級,CPU,主程序,INT0,INT1,T0,T1,串口,IE0,TF0,IE1,TF1,中斷源,中

4、斷標(biāo)志位,單片機中有兩個中斷優(yōu)先級,即高優(yōu)先級中斷和低優(yōu)先級中斷,前者優(yōu)先權(quán)高于后者(在程序中設(shè)置,相應(yīng)位=1,為高優(yōu)先級); 同一優(yōu)先級別的中斷源按照自然優(yōu)先級順序確定優(yōu)先級別(硬件形成,無法改變)。,中斷允許,ES,ET0,EX0,EX1,ET1,EA,自然優(yōu)先級,優(yōu)先控制,PS,PT0,PX0,PX1,PT1,IE0,TCON,SCON,TF0,IE1,TF1,T0,T1,TI,RI,TXD,RXD,ES,ET0,EX0,EX1,ET1,EA,自然優(yōu)先級,矢量地址,高級中斷請求,自然優(yōu)先級,矢量地址,低級中斷請求,PX0,PT0,PX1,PT1,PS,IE,IP,MCS-51的中斷控制系

5、統(tǒng)結(jié)構(gòu)圖,中斷標(biāo)志位,中斷源允許,總允許,中斷優(yōu)先級,TCON寄存器中斷請求控制寄存器,TCON,IT0/IT1:外部中斷0/1請求觸發(fā)方式控制位。1為脈沖觸 發(fā),下降沿有效。0為電平觸發(fā),低電平有效。 IE0/IE1:外中斷/請求標(biāo)志位。當(dāng)CPU采樣到()端出現(xiàn)有效中斷請求時,IE0(IE1)位由硬件置“1”。當(dāng)中斷響應(yīng)完成轉(zhuǎn)向中斷服務(wù)程序后,由硬件把IE0(或IE1)清零。 TR0/TR1:定時器運行控制位。0停止定時器/計數(shù)器工作,1啟動定時器/計數(shù)器開始工作。,TCON寄存器中斷請求控制寄存器,注意:該寄存器可以位尋址。,TF0/TF1:計數(shù)溢出標(biāo)志位。當(dāng)計數(shù)器產(chǎn)生計數(shù)溢 出時,相應(yīng)的

6、溢出標(biāo)志位由硬件置“1”。當(dāng)轉(zhuǎn)向中斷服務(wù)后,由硬件自動清“0”。計數(shù)溢出標(biāo)志位的使用有兩種情況:采用中斷方式時,作中斷請求標(biāo)志位來使用;采用查詢方式時,作查詢狀態(tài)位來使用。,返回,TI (SCON.1)串行發(fā)送中斷標(biāo)志。 RI (SCON.0)串行接收中斷標(biāo)志。,SCON寄存器串行中斷控制寄存器,SCON 98H,注意:該寄存器可以位尋址。,IE寄存器中斷屏蔽寄存器,IE A8H,例:允許定時器T0中斷: SETB EA SETB ET0 或 MOV IE,#82H,注意:該寄存器可以位尋址。,PS:串行口的中斷優(yōu)先級控制位。“0”為低優(yōu)先級,“1”為高優(yōu)先級。 PT1:定時器/計數(shù)器T1的中

7、斷優(yōu)先級控制位?!?”為低優(yōu)先級,“1”為高優(yōu)先級。 PT1:定時器/計數(shù)器T1的中斷優(yōu)先級控制位?!?”為低優(yōu)先級,“1”為高優(yōu)先級。 PT0:定時器/計數(shù)器T0的中斷優(yōu)先級控制位?!?”為低優(yōu)先級,“1”為高優(yōu)先級。 PX0:外部中斷0的中斷優(yōu)先級控制位?!?”為低優(yōu)先級,“1”為高優(yōu)先級。 同級中優(yōu)先權(quán)次序從高到低依次為:、T0、T1、RI/TI。,IP寄存器中斷優(yōu)先級控制寄存器,IP B8H,IP寄存器中斷優(yōu)先級控制寄存器,51單片機有兩個中斷優(yōu)先級高級和低級 專用寄存器IP為中斷優(yōu)先級寄存器,用戶可用軟件設(shè)定 相應(yīng)位為1,對應(yīng)的中斷源被設(shè)置為高優(yōu)先級,相應(yīng)位為0,對應(yīng)的中斷源被設(shè)置為

8、低優(yōu)先級 系統(tǒng)復(fù)位時,均為低優(yōu)先級 該寄存器可以位尋址,中斷處理過程,中斷處理過程分為三個階段:中斷響應(yīng)、中斷處理和中斷返回。 中斷響應(yīng) 中斷處理(又稱中斷服務(wù)) 中斷返回 中斷請求的撤除,CPU響應(yīng)中斷的基本條件,有中斷源提出中斷請求; 中斷總允許位EA1,即CPU中斷開放; 申請中斷的中斷源的中斷允許位為1,即中斷沒有被屏蔽; CPU沒有響應(yīng)同級或更高優(yōu)先級的中斷; 當(dāng)前指令執(zhí)行結(jié)束; 如果正在執(zhí)行的指令是RETI或訪問IE、IP指令。CPU在執(zhí)行RETI或訪問IE、IP指令后,至少還需要再執(zhí)行一條其它指令后才會響應(yīng)中斷請求。,中斷響應(yīng),中斷響應(yīng):在滿足CPU的中斷響應(yīng)條件之后,CPU對中

9、斷源中斷請求予以處理。 中斷響應(yīng)過程: 保護(hù)斷點地址;,把程序轉(zhuǎn)向中斷服務(wù)程序的入口地址(通常稱矢量地址)。,特別注意:這些工作是硬件自動完成的!,斷點地址,中斷服務(wù)子程序的入口地址,中斷響應(yīng),中斷服務(wù)子程序入口地址又稱為中斷矢量或中斷向量。,單片機中5個中斷源的矢量地址是固定的,不能改動。,斷點地址,中斷服務(wù)子程序的入口地址,程序存儲器ROM,0000H:復(fù)位后,程序的入口地址(PC=0000H),0023H:串行口中斷入口,0003H:外部中斷0入口,000BH:定時器0溢出中斷入口,0013H:外部中斷1入口,001BH:定時器1溢出中斷入口,002AH,使用時,通常在這些入口地址處存放

10、一條長跳轉(zhuǎn)LCALL addr16指令,使程序跳轉(zhuǎn)到用戶安排的中斷服務(wù)程序起始地址上去!,程序存儲器ROM,0000H:復(fù)位后,程序的入口地址(PC=0000H),0023H:串行口中斷入口,0003H:外部中斷0入口,000BH:定時器0溢出中斷入口,0013H:外部中斷1入口,001BH:定時器1溢出中斷入口,002AH,包含T0中斷服務(wù)子程序的程序結(jié)構(gòu): ORG 0000H AJMP MAIN ORG 000BH AJMP INTT0 ORG 0100H MAIN: . . . INTT0:. . . RETI END,AJMP MAIN,AJMP INTT0,中斷處理,中斷服務(wù)程序從入

11、口地址開始執(zhí)行,直到返回指令RETI為止,這個過程稱為中斷處理(或中斷服務(wù))。 中斷服務(wù)子程序一般包括兩部分內(nèi)容,一是保護(hù)和恢復(fù)現(xiàn)場,二是處理中斷源的請求。,入口地址,RETI,中斷處理,INTT0: PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中斷源服務(wù) POP PSW POP DPL POP DPH POP ACC RETI,保護(hù)現(xiàn)場,恢復(fù)現(xiàn)場,中斷處理過程示意圖,中斷源發(fā)中斷請求,中斷響應(yīng)條件 是否滿足?,中斷是否受阻?,把PC斷點地址壓入堆棧,相應(yīng)中斷源的中斷入口地址送入PC,轉(zhuǎn)向中斷服務(wù)程序,N,Y,Y,N,由硬件 自動完成,關(guān)中斷,保護(hù)現(xiàn)場,中斷服務(wù),開

12、中斷,關(guān)中斷,恢復(fù)現(xiàn)場,開中斷,中斷返回,斷點地址由堆棧彈入PC,中斷服務(wù)程序,中斷返回,中斷返回是指中斷服務(wù)完后,計算機返回到原來暫停的位置(即斷點),繼續(xù)執(zhí)行原來的程序。 中斷返回由專門的中斷返回指令RETI來實現(xiàn)。,中斷返回,RETI指令功能:把斷點地址取出,送回到程序計數(shù)器PC中去。另外,它還通知中斷系統(tǒng)已完成中斷處理,將清除優(yōu)先級狀態(tài)觸發(fā)器。 特別注意:不能用RET指令代替RETI指令!,中斷響應(yīng)時間,中斷響應(yīng)時間是指CPU檢測到中斷請求信號到轉(zhuǎn)入中斷服務(wù)程序所需要的時間。 注:MCS-51單片機響應(yīng)中斷的最短時間為3個機器周期,最長為8個機器周期。若CPU檢測到中斷請求信號時正好是

13、一條指令的最后一個機器周期,且不是RETI或訪問IE、IP指令,則不需等待就可以立即響應(yīng)。,外部中斷源的擴展,單片機僅有兩個外部中斷輸入端. 可用三種方法擴展: 1. 定時器T0,T1。(工作在計數(shù)方式下) 2. 中斷和查詢結(jié)合。 3.外接中斷控制芯片(如8259)進(jìn)行擴展。,1用定時器/計數(shù)器作外部中斷源,MSC-51單片機有兩個定時器/計數(shù)器T0和T1,它們作為計數(shù)器使用時,計數(shù)輸入端T1(T0)發(fā)生負(fù)跳變時將使計數(shù)器加1。利用此特性,適當(dāng)設(shè)置計數(shù)器初值,就可以把計數(shù)輸入端T1(T0)作為外部中斷輸入端。例如,將定時器/計數(shù)器T0設(shè)置為工作方式2計數(shù)模式,計數(shù)初值設(shè)為0FFH,且允許中斷。

14、當(dāng)計數(shù)輸入端發(fā)生一個負(fù)跳變時,計數(shù)器加1,便發(fā)生溢出,從而產(chǎn)生中斷。,ORG 0100H MOV TMOD,#06H ;設(shè)置定時 器T0為工作方式2、計數(shù)模式 MOV TH0,#0FFH ;設(shè)置計數(shù)器初值 MOV TL0,#0FFH SETB IT0 ;選擇跳變觸發(fā)方式 SETB ET0 ;允許定時器中斷 SETB EA ;CPU開中斷 SETB TR0 ;啟動定時器T0,初始化程序如下:,以上程序執(zhí)行后,當(dāng)定時器/計數(shù)器T0計數(shù)輸入端發(fā)生負(fù)跳變時,TL0加1,產(chǎn)生溢出,標(biāo)志位TF0置1,向CPU發(fā)出中斷請求,同時TH0的值重新送入TL0,保證下一次中斷過程的順利進(jìn)行。這樣T0端相當(dāng)于脈沖方式

15、的外部中斷請求輸入端。同理T1也可以實現(xiàn)外部中斷源的擴展。 注:用本方法擴展外部中斷源是以占用內(nèi)部定時中斷為代價的。只有當(dāng)定時/計數(shù)器空閑時才能使用。,2查詢方式擴展外部中斷源,當(dāng)外部中斷源較多時,可以采用查詢方式擴展外部中斷源。把多個中斷源通過硬件(或非門)引入外部中斷源輸入端(INT0或INT1),同時將中斷源連接到某I/O接口。這樣,每個中斷源都可能引起中斷,在中斷服務(wù)程序中通過軟件查詢I/O口,便可以確定哪一個是正在申請的中斷源,查詢的次序則由中斷源優(yōu)先級決定,這樣可實現(xiàn)多個外部中斷源的擴展。 例如,通過OC門實現(xiàn)外部中斷源擴展的基本原理如下圖所示。當(dāng)外部擴展中斷源的任何一個中斷申請信

16、號置為低電平時,其對應(yīng)的OC門輸出為低,使有效,申請中斷。有中斷后,軟件查詢P1口狀態(tài),決定是哪一個中斷源。查詢次序決定優(yōu)先級。,參考程序如下:,ORG 0003H LJMP INTER_PRO ORG 0100H INTER_PRO: JNB P1.0 ,SUB0_PRO JNB P1.1, SUB1_PRO . JNB P1.7, SUB7_PRO,.中斷控制芯片(如)進(jìn)行擴展,當(dāng)需要擴展的外部中斷源比較多時,可以使用專用中斷控制器8259實現(xiàn)。一個8259可以直接擴展8個中斷源,經(jīng)級聯(lián)后,最多可以擴展64個中斷源。,中斷應(yīng)用舉例,【例】出租車計價器計程方法是車輪每運轉(zhuǎn)一圈產(chǎn)生一個負(fù)脈沖,

17、從外中斷(P3.2)引腳輸入,行駛里程為輪胎周長運轉(zhuǎn)圈數(shù)。設(shè)輪胎周長為2m,試實時計算出租車行駛里程(單位米),數(shù)據(jù)存32H、31H、30H。 參考程序如下:,ORG 0000H;復(fù)位地址 LJMP STAT;轉(zhuǎn)初始化 ORG 0003H;中斷入口地址 LJMP INT;轉(zhuǎn)中斷服務(wù)程序 ORG 0100H ;初始化程序首地址 STAT: MOV SP,#60H ;置堆棧指針 SETB ITO;置邊沿觸發(fā)方式 MOV IP,#01H;置高優(yōu)先級 MOV IE,#81H;開中斷,MOV 30H,#0;里程計數(shù)器清0 MOV 31H,#0 MOV 32H,#0 LJMP MAIN;轉(zhuǎn)主程序,并等待中斷 ORG 0200H;中斷服務(wù)子程序首地址 INT: PUSH Acc;保護(hù)現(xiàn)場 PUSH PSW MOV A,30H;讀低8位計數(shù)器 ADD A,#2;低8位計數(shù)器加2m MOV 30H,A;回存,CLR A ADDC A,31H;中8位計數(shù)器加進(jìn)位 MOV 31H,A;回存 CLR A ADDC A,32H;高8位計數(shù)器加進(jìn)位 MOV 32H,A;回存 POP PSW;恢復(fù)現(xiàn)場 POP Acc RETI;中斷返回 MAIN: ,題目:

溫馨提示

  • 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

提交評論