版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第5章單片機中斷系統(tǒng)5.1中斷源 5.2中斷控制 5.3中斷過程 5.3.1中斷請求 5.3.2中斷響應(yīng) 5.3.3中斷處理 5.3.4中斷返回 5.4外部中斷源擴展 5.5全自動洗衣機“啟動/暫停”控制Ptoteus仿真 中斷概念中斷概念單片機正在處理某項事務(wù)(如執(zhí)行洗衣程序)的時候,系統(tǒng)發(fā)生了緊急事件(如衣物纏繞),需要處理;單片機暫停當前正在處理的工作,而轉(zhuǎn)去處理這個緊急事件;待緊急事件處理完成后,再回到原來中斷的地方,繼續(xù)處理原來被中斷的事務(wù),這個過程稱作中斷?!鹬袛噙^程中斷請求、中斷響應(yīng)、中斷處理、中斷返回○中斷作用1.通過中斷系統(tǒng),單片機可以同時控制多個外設(shè)并行操作。2.通過中斷系統(tǒng),單片機可以方便實現(xiàn)實時處理,及時處理隨機事件。3.通過中斷系統(tǒng),可以及時處理系統(tǒng)故障,如掉電、運算溢出等5.1中斷源能夠向CPU申請中斷的事件叫中斷源。外部中斷源INT0/INT1內(nèi)部中斷源T0/T1/串行口中斷矢量中斷源中斷標志中斷矢量引腳優(yōu)先次序INT0外部中斷0IE00003HP3.2高低定時/計數(shù)器0中斷TF0000BHP3.4INT1外部中斷1IE10013HP3.3定時/計數(shù)器1中斷TF1001BHP3.5串行中斷TI/RI0023H5.2中斷控制
8051單片機設(shè)有四個特殊功能寄存器:定時控制寄存器TCON串行控制寄存器SCON中斷屏蔽寄存器IE中斷優(yōu)先級寄存器IP1.定時控制寄存器TCONTCON的字節(jié)地址為88H,位地址為88H~8FHIT0/IT1:外部中斷0/1請求觸發(fā)方式控制位。1為脈沖觸發(fā),下降沿有效。0為電平觸發(fā),低電平有效。IE0/IE1:外中斷/請求標志位。當CPU采樣到(INT0/INT1)端出現(xiàn)有效中斷請求時,IE0(IE1)位由硬件置“1”。當中斷響應(yīng),轉(zhuǎn)向中斷服務(wù)程序后,由硬件把IE0(或IE1)清零。TR0/TR1:定時/計數(shù)器運行控制位。TF0/TF1:定時/計數(shù)溢出標志位。用于定時/計數(shù)器控制。
TCOND7D6D5D4D3D2D1D0位名稱TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H功能T1中斷標志T1啟動控制T0中斷標志T0啟動控制中斷標志觸發(fā)方式中斷標志觸發(fā)方式電平中斷單片機在每個機器周期的S5P2檢查中斷源口線一次,檢測到低電平,即置位中斷請求標志,向CPU請求中斷。中斷標志寄存器不鎖存電平觸發(fā)中斷請求信號。單片機把每個機器周期的S5P2采樣到的外部中斷源口線的電平邏輯直接賦值到中斷標志寄存器。但當中斷請求被阻塞而沒有得到及時響應(yīng)時,將被丟失。電平觸發(fā)中斷請求不能及時撤銷,將引起重復(fù)中斷邊沿中斷單片機在上一個機器周期檢測到中斷源口線為高電平,下一個機器周期檢測到低電平,即置位中斷標志,請求中斷。中斷標志寄存器鎖存邊沿中斷請求。中斷口線上一個從高到低的跳變將記錄在標志寄存器中,直到CPU響應(yīng)并轉(zhuǎn)向該中斷服務(wù)程序時,由硬件自動清除。因此當CPU正在執(zhí)行同級中斷(甚至是外部中斷本身)或高級中斷時,產(chǎn)生的外部中斷(負跳變)同樣將被記錄在中斷標志寄存器中。2.串行中斷控制寄存器SCON串行控制寄存器SCON的字節(jié)地址為98H,位地址為98H-9FHTI:串行口發(fā)送中斷請求標志位。當發(fā)送完一幀串行數(shù)據(jù)后,由硬件置“1”;在中斷響應(yīng),轉(zhuǎn)向中斷服務(wù)程序后,接口硬件不能自動將TI或RI清零,需用戶用軟件清零,來撤消中斷。中斷撤消必須在下一個中斷到來之前完成。RI:串行口接收中斷請求標志位。當接收完一幀串行數(shù)據(jù)后,由硬件置“1”;在中斷響應(yīng),轉(zhuǎn)向中斷服務(wù)程序后,需用軟件清“0”。串行中斷請求由TI和RI的邏輯或得到。
TCOND7D6D5D4D3D2D1D0位名稱SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能方式選擇方式選擇多機通訊控制接收允許發(fā)送第9位接收第9位串行發(fā)送中斷串行接收中斷3.中斷屏蔽寄存器IE中斷屏蔽寄存器IE用于控制各中斷源的中斷開放或關(guān)閉。字節(jié)地址為0A8H,位地址為0A8H-0AFHEA:中斷允許總控位。EA=0,屏蔽所有的中斷請求;EA=1,開放所有中斷請求。EA的作用是使中斷允許形成兩級控制。ES:串行口中斷允許位。ES=0,禁止串行口中斷;ES=1允許串行口中斷。ET1:定時器/計數(shù)器T1的溢出中斷允許位。ET1=0,禁止T1中斷;ET1=1,允許T1中斷。EX1:外部中斷1()的中斷允許位。EX1=0,禁止外部中斷1中斷;EX1=1,允許外部中斷1中斷。ET0:定時器/計數(shù)器T0的溢出中斷允許位。ET0=0,禁止T0中斷;ET0=1,允許T0中斷。EX0:外部中斷0()的中斷允許位。EX0=0,禁止外部中斷0中斷;EX0=1允許外部中斷0中斷。IED7D6D5D4D3D2D1D0位名稱EA
ESET1EX1ET0EX0位地址AFH
ACHABHAAHA9HA8H中斷源CPU
串口T1T0
4.中斷優(yōu)先級控制寄存器IPMCS-51單片機的中斷源可以設(shè)置為兩個優(yōu)先級:高優(yōu)先級和低優(yōu)先級,從而實現(xiàn)兩級中斷嵌套。優(yōu)先級控制可以通過修改中斷優(yōu)先級控制寄存器IP的內(nèi)容實現(xiàn)。IP的字節(jié)地址為0B8H,位地址為0BFH~0B8H
PS:串行口中斷優(yōu)先級控制位。“0”為低優(yōu)先級,“1”為高優(yōu)先級。PT1:定時器/計數(shù)器1(T1)的中斷優(yōu)先級控制位?!?”為低優(yōu)先級,“1”為高優(yōu)先級。PX1:外部中斷1的中斷優(yōu)先級控制位?!?”為低優(yōu)先級,“1”為高優(yōu)先級。PT0:定時器/計數(shù)器0(T0)的中斷優(yōu)先級控制位。“0”為低優(yōu)先級,“1”為高優(yōu)先級。PX0:外部中斷0的中斷優(yōu)先級控制位?!?”為低優(yōu)先級,“1”為高優(yōu)先級。同一級別中,優(yōu)先權(quán)次序遵從自然優(yōu)先級,從高到低依次為:INT0、T0、INT1、T1、RI/TI。IPD7D6D5D4D3D2D1D0位名稱
PSPT1PX1PT0PX0位地址
BCHBBHBAHB9HB8H中斷源
串口T1T0中斷優(yōu)先級遵循下列原則:正在進行中斷服務(wù)的中斷過程不能被新的同級或更低優(yōu)先級的中斷請求所中斷,一直到該中斷服務(wù)程序結(jié)束,返回主程序且執(zhí)行了主程序中的一條指令后,CPU才響應(yīng)新的同級或低級中斷請求。正在進行的低優(yōu)先級中斷服務(wù)程序能被高優(yōu)先級中斷請求所中斷,實現(xiàn)兩級中斷嵌套。高級中斷結(jié)束后,返回低級中斷服務(wù)。CPU同時接收到幾個中斷請求時,首先響應(yīng)高優(yōu)先級的中斷請求,同一優(yōu)先級內(nèi)部,按照自然優(yōu)先級響應(yīng)。5.3中斷過程5.3.1中斷請求中斷請求就是中斷源向CPU申請中斷的過程,即建立中斷請求標志位IE0、IE1、TF0、TF1、TI/RI的過程外部中斷請求:經(jīng)由引腳P3.2、P3.3向CPU申請中斷的過程。外部中斷請求有兩種方式:低電平觸發(fā)和下降沿觸發(fā)。通過設(shè)置觸發(fā)方式控制位IT0、IT1進行選擇。IT0=0,表示為低電平觸發(fā)方式;IT0=1,表示為下降沿觸發(fā)方式。IT1的情況類似。外部中斷請求標志存放在IE0/IE1中。IE0為中斷請求標志位。當有中斷請求時IE0置1。IE1的情況類似。內(nèi)部中斷請求:當T0計數(shù)產(chǎn)生溢出時,由硬件置位TF0。當CPU響應(yīng)中斷后,再由硬件將TF0清0。T1的情況類似。當串行口發(fā)送結(jié)束時,使TI=1;當串行口接收結(jié)束時,使RI=1。CPU響應(yīng)中斷后,由軟件將TI/RI位清0。5.3.2中斷響應(yīng)CPU對中斷請求進行判斷,形成中斷矢量,轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序的過程叫中斷響應(yīng)。一、CPU響應(yīng)中斷的基本條件有中斷源提出中斷請求;中斷總允許位EA=1,即CPU中斷開放;申請中斷的中斷源的中斷允許位為1,即中斷源開放;CPU沒有響應(yīng)同級或更高優(yōu)先級的中斷;當前指令執(zhí)行結(jié)束;如果正在執(zhí)行的指令是RETI或是訪問IE、IP指令。CPU在執(zhí)行RETI或訪問IE、IP指令后,至少還需要再執(zhí)行一條其它指令后才會響應(yīng)中斷請求。二、中斷響應(yīng)過程單片機在每個機器周期的S5P2期間,順序采樣每個中斷源,建立中斷請求標志。在下一個機器周期按優(yōu)先級查詢中斷標志,如查詢到有中斷標志為1,則按優(yōu)先級進行中斷響應(yīng)。硬件將程序計數(shù)器PC的當前內(nèi)容壓入堆棧保護,然后將對應(yīng)的中斷矢量裝入程序計數(shù)器PC,使程序轉(zhuǎn)向相應(yīng)的中斷。這相當于執(zhí)行一條長調(diào)用指令。中斷響應(yīng)過程中斷響應(yīng)過程:保護斷點地址;
把程序轉(zhuǎn)向中斷服務(wù)程序的入口地址(通常稱矢量地址)執(zhí)行中斷服務(wù)程序。中斷響應(yīng)特別注意:這些工作是硬件自動完成的!
斷點地址中斷服務(wù)子程序的入口地址程序存儲器ROM0000H:復(fù)位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時器0溢出中斷入口0013H:外部中斷1入口001BH:定時器1溢出中斷入口使用時,通常在這些入口地址處存放一條長跳轉(zhuǎn)LCALLaddr16指令,使程序跳轉(zhuǎn)到用戶安排的中斷服務(wù)程序起始地址上去!5個固定的中斷源矢量地址程序存儲器ROM0000H:復(fù)位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時器0溢出中斷入口0013H:外部中斷1入口001BH:定時器1溢出中斷入口002AH包含T0中斷服務(wù)子程序的程序結(jié)構(gòu):
ORG0000H AJMPMAIN
ORG000BH AJMPINTT0
ORG0100HMAIN:MOVA,#08..INTT0:MOVA,#03..RETIENDAJMPMAINAJMPINTT05.3.3
中斷處理中斷服務(wù)程序從入口地址開始執(zhí)行,直到返回指令RETI為止,這個過程稱為中斷處理(執(zhí)行中斷服務(wù))。中斷服務(wù)子程序一般包括兩部分內(nèi)容,一是保護和恢復(fù)現(xiàn)場,二是中斷源服務(wù)(中斷事務(wù)處理)。中斷響應(yīng)入口地址RETI保護現(xiàn)場INTT0:PUSHACC PUSHDPHPUSHDPLPUSHPSW
中斷源服務(wù)
POPPSW
POPDPLPOPDPHPOPACCRETI保護現(xiàn)場恢復(fù)現(xiàn)場關(guān)中斷保護現(xiàn)場開中斷中斷服務(wù)恢復(fù)現(xiàn)場開中斷中斷返回斷點地址由堆棧彈出保護和恢復(fù)現(xiàn)場之后開中斷,是為了允許響應(yīng)更高級別的中斷。保護現(xiàn)場和恢復(fù)現(xiàn)場的過程中不允許中斷,以免現(xiàn)場遭到破壞。關(guān)中斷RETI指令功能:把斷點地址從堆棧取出,送到PC。并清除優(yōu)先級狀態(tài)觸發(fā)器。特別注意:不能用RET指令代替RETI指令!中斷響應(yīng)中斷返回RETI5.3.4中斷返回5.3.5中斷請求撤消外部中斷INT0、INT1的中斷請求標志位IE0、IE1在CPU響應(yīng)中斷后,由硬件清0撤消。定時/計數(shù)器T0、T1溢出標志TF0、TF1在CPU響應(yīng)中斷后,由硬件清0撤消。串行口發(fā)送結(jié)束/接收結(jié)束TI/RI在CPU響應(yīng)中斷后,由軟件清0撤消。5.3.6中斷響應(yīng)時間中斷響應(yīng)時間是指CPU檢測到中斷請求信號到轉(zhuǎn)入中斷服務(wù)程序所需要的時間。若中斷檢測時正好是一條指令的最后1個機器周期,且不是RETI或訪問IE、IP指令,則CPU執(zhí)行2個機器周期的長調(diào)用轉(zhuǎn)移指令即可執(zhí)行中斷服務(wù)程序,共1+2=3個機器周期。若中斷檢測時CPU正在執(zhí)行RETI或訪問IE、IP指令的第一個機器周期,需2個機器周期完成上述操作,若緊接著的下一條指令是乘法,則需4個機器周期,之后CPU執(zhí)行一條2個機器周期的長調(diào)用轉(zhuǎn)移指令才可執(zhí)行中斷服務(wù)程序,故共需8個機器周期。5.4外部中斷源擴展MCS-51單片機只提供了兩個外部中斷請求輸入端,在實際應(yīng)用中,如果需要使用多于兩個的外部中斷源,就必須進行外部中斷源的擴展。常用的幾種外部中斷源擴展方法是:利用單片機中的定時器/計數(shù)器T0、T1來擴展;外接硬件電路并配合查詢程序擴展;外接中斷控制芯片(如8259)進行擴展。
1.用定時器/計數(shù)器擴展外部中斷源將定時器/計數(shù)器T0、T1設(shè)置為計數(shù)方式工作方式2負跳變觸發(fā)初值設(shè)為0FFH允許中斷當計數(shù)輸入端發(fā)生一個負跳變時,計數(shù)器加1,便發(fā)生溢出,從而產(chǎn)生中斷。
ORG0100H
MOVTMOD,#06H;設(shè)置定時器T0為工作方式2、計數(shù)模式MOVTH0,#0FFH;設(shè)置計數(shù)器初值MOVTL0,#0FFH
SETBET0;允許定時器中斷
SETBEA;CPU開中斷
SETBTR0;啟動定時器T0初始化程序如下:2.查詢方式擴展外部中斷源多個中斷源通過一個中斷請求引腳申請中斷中斷源內(nèi)部采用查詢方式確定
例:通過OC門實現(xiàn)外部中斷源擴展的基本原理如下圖所示參考程序如下:
ORG0003H
LJMPINTER_PRO
ORG0100H
INTER_PRO:
JNBP1.0,SUB0_PRO
JNBP1.1,SUB1_PRO
......
JNBP1.7,SUB7_PRO3.中斷控制芯片(如8259)進行擴展
當需要擴展的外部中斷源比較多時,可以使用專用中斷控制器8259實現(xiàn)。一個8259可以直接擴展8個中斷源,經(jīng)級聯(lián)后,最多可以擴展64個中斷源。堆棧設(shè)置觸發(fā)方式設(shè)置中斷開放優(yōu)先級設(shè)置中斷應(yīng)用8件事在入口放轉(zhuǎn)移指令保護/恢復(fù)現(xiàn)場開關(guān)中斷中斷標志撤銷【例】按鍵中斷控制LEDORG0000H
AJMPMAIN
ORG0003H
CLREAAJMPPINT0
ORG0100H MAIN:MOVSP,#3FH
SETBEA
SETBEX0
CLRIT0 H:SJMPH
ORG0200H PINT0:CPLP2.0 WAIT:JNBP3.2,WAIT SETBEA RETI END 例
兩級中斷ORG0000H ;在0000H單元存放轉(zhuǎn)移指令
LJMPSTART ;轉(zhuǎn)移到主程序
ORG0003H ;外部中斷INT0入口
LJMPEXT0 ;轉(zhuǎn)移到外部中斷0的中斷服務(wù)程序
ORG0013H ;外部中斷INT1入口
LJMPEXT1 ;轉(zhuǎn)移到外部中斷1的中斷服務(wù)程序
ORG0030H ;主程序從0030H開始存放START:MOVIE,#10000101B ;CPU、INT0、INT1中斷開放
MOVIP,#00000100B ;INT1高中斷優(yōu)先級
MOVTCON,#00000101B ;INT0、INT1為下降沿觸發(fā)
MOVSP,#3FH ;重置堆棧LOOP:MOVP1,#03H ;點亮2只LEDAJMPLOOP ;等待中斷EXT0:PUSHACC ;堆棧保護
PUSHPSW MOVR2,#0AH ;閃爍10次LOOP1:MOVP1,#00H ;使LED0、LED1滅
LCALLDELAY
MOVP1,#01H ;使LED0亮
LCALLDELAY DJNZR2,LOOP1 ;循環(huán)10次
POPPSW POPACC RETIEXT1:PUSHACC ;堆棧保護
PUSHPSW MOVR3,#0AH ;閃爍10次LOOP2:MOVP1,#00H ;使LED0、LED1滅
LCALLDELAY
MOVP1,#02H ;使LED1亮
LCALLDELAYDJNZR3,LOOP2 ;循環(huán)10次
POPPSWPOPACCRETI ;中斷返回DELAY:MOVR5,#20 ;延時200ms子程序
DLY1:MOVR6,#200 DLY2:MOVR7,#200DJNZR7,$DJNZR6,DLY2DJNZR5,DLY1RET ;中斷返回
ENDPtoteus仿真
全自動洗衣機工作過程中,當遇到意外事件發(fā)生,如衣物纏繞,或需要干預(yù)洗衣進程時,如需要添加消毒液,就需要暫停當前洗衣進程,處理這些事件。假設(shè)全自動洗衣機有8個流程,用8個指示燈表示;用8個按鍵進行選擇控制。當某個流程工作時,對應(yīng)的指示燈點亮。當按下按鍵K時,中斷正在進行的流程,對應(yīng)的流程指示燈閃爍,洗衣機進入等待狀態(tài);再次按下K時,指示燈停止閃爍,變成點亮狀態(tài),表示洗衣機恢復(fù)原來被中斷的洗衣流程。ORG0000H;在0000H單元存放轉(zhuǎn)移指令
AJMPMAIN;轉(zhuǎn)移至主程序
ORG0003H;INT0中斷入口
AJMPWBI;轉(zhuǎn)中斷服務(wù)程序
ORG0030H;主程序
MAIN:MOVP2,#00H;全燈滅
SETBIT0;邊沿觸發(fā)中斷
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 手工制作在小學數(shù)學幾何圖形教學中
- 人教部編版四年級語文上冊口語交際《安慰》精美課件
- 【暑假閱讀】小升初非連續(xù)性文本閱讀銜接講義 專題07 車票路線類(有答案解析)
- 福建省福州市平潭縣新世紀學校2023-2024學年高三學生寒假自主學習調(diào)查數(shù)學試題
- 2024年盤錦資格證客運題庫
- 2024年西藏道路運輸客運從業(yè)資格證考試題庫
- 2024年通化客運從業(yè)資格模擬考試
- 2024年湘西客運資格證題庫
- 2024年鎮(zhèn)江公交車從業(yè)資格證考試題庫
- 2024年黑龍江客運資格證題庫及答案
- 限制被執(zhí)行人駕駛令申請書
- 鋁合金船的建造課件
- 邊坡土石方開挖施工方案
- 八年級上冊語文課后習題及答案匯編(部分不全)
- 玻璃廠應(yīng)急預(yù)案
- 安全帽生產(chǎn)與使用管理規(guī)范
- 貨車進入車間安全要求
- 新版深度學習完整整套教學課件
- 2023學年完整公開課版冰雕史話
- BIM大賽題庫含答案
- 羅馬人的故事(全15冊)(修訂版)
評論
0/150
提交評論