




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第5章單片機中斷系統5.1中斷源 5.2中斷控制 5.3中斷過程 5.3.1中斷請求 5.3.2中斷響應 5.3.3中斷處理 5.3.4中斷返回 5.4外部中斷源擴展 5.5全自動洗衣機“啟動/暫停”控制Ptoteus仿真 中斷概念中斷概念單片機正在處理某項事務(如執行洗衣程序)的時候,系統發生了緊急事件(如衣物纏繞),需要處理;單片機暫停當前正在處理的工作,而轉去處理這個緊急事件;待緊急事件處理完成后,再回到原來中斷的地方,繼續處理原來被中斷的事務,這個過程稱作中斷。○中斷過程中斷請求、中斷響應、中斷處理、中斷返回○中斷作用1.通過中斷系統,單片機可以同時控制多個外設并行操作。2.通過中斷系統,單片機可以方便實現實時處理,及時處理隨機事件。3.通過中斷系統,可以及時處理系統故障,如掉電、運算溢出等5.1中斷源能夠向CPU申請中斷的事件叫中斷源。外部中斷源INT0/INT1內部中斷源T0/T1/串行口中斷矢量中斷源中斷標志中斷矢量引腳優先次序INT0外部中斷0IE00003HP3.2高低定時/計數器0中斷TF0000BHP3.4INT1外部中斷1IE10013HP3.3定時/計數器1中斷TF1001BHP3.5串行中斷TI/RI0023H5.2中斷控制
8051單片機設有四個特殊功能寄存器:定時控制寄存器TCON串行控制寄存器SCON中斷屏蔽寄存器IE中斷優先級寄存器IP1.定時控制寄存器TCONTCON的字節地址為88H,位地址為88H~8FHIT0/IT1:外部中斷0/1請求觸發方式控制位。1為脈沖觸發,下降沿有效。0為電平觸發,低電平有效。IE0/IE1:外中斷/請求標志位。當CPU采樣到(INT0/INT1)端出現有效中斷請求時,IE0(IE1)位由硬件置“1”。當中斷響應,轉向中斷服務程序后,由硬件把IE0(或IE1)清零。TR0/TR1:定時/計數器運行控制位。TF0/TF1:定時/計數溢出標志位。用于定時/計數器控制。
TCOND7D6D5D4D3D2D1D0位名稱TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H功能T1中斷標志T1啟動控制T0中斷標志T0啟動控制中斷標志觸發方式中斷標志觸發方式電平中斷單片機在每個機器周期的S5P2檢查中斷源口線一次,檢測到低電平,即置位中斷請求標志,向CPU請求中斷。中斷標志寄存器不鎖存電平觸發中斷請求信號。單片機把每個機器周期的S5P2采樣到的外部中斷源口線的電平邏輯直接賦值到中斷標志寄存器。但當中斷請求被阻塞而沒有得到及時響應時,將被丟失。電平觸發中斷請求不能及時撤銷,將引起重復中斷邊沿中斷單片機在上一個機器周期檢測到中斷源口線為高電平,下一個機器周期檢測到低電平,即置位中斷標志,請求中斷。中斷標志寄存器鎖存邊沿中斷請求。中斷口線上一個從高到低的跳變將記錄在標志寄存器中,直到CPU響應并轉向該中斷服務程序時,由硬件自動清除。因此當CPU正在執行同級中斷(甚至是外部中斷本身)或高級中斷時,產生的外部中斷(負跳變)同樣將被記錄在中斷標志寄存器中。2.串行中斷控制寄存器SCON串行控制寄存器SCON的字節地址為98H,位地址為98H-9FHTI:串行口發送中斷請求標志位。當發送完一幀串行數據后,由硬件置“1”;在中斷響應,轉向中斷服務程序后,接口硬件不能自動將TI或RI清零,需用戶用軟件清零,來撤消中斷。中斷撤消必須在下一個中斷到來之前完成。RI:串行口接收中斷請求標志位。當接收完一幀串行數據后,由硬件置“1”;在中斷響應,轉向中斷服務程序后,需用軟件清“0”。串行中斷請求由TI和RI的邏輯或得到。
TCOND7D6D5D4D3D2D1D0位名稱SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能方式選擇方式選擇多機通訊控制接收允許發送第9位接收第9位串行發送中斷串行接收中斷3.中斷屏蔽寄存器IE中斷屏蔽寄存器IE用于控制各中斷源的中斷開放或關閉。字節地址為0A8H,位地址為0A8H-0AFHEA:中斷允許總控位。EA=0,屏蔽所有的中斷請求;EA=1,開放所有中斷請求。EA的作用是使中斷允許形成兩級控制。ES:串行口中斷允許位。ES=0,禁止串行口中斷;ES=1允許串行口中斷。ET1:定時器/計數器T1的溢出中斷允許位。ET1=0,禁止T1中斷;ET1=1,允許T1中斷。EX1:外部中斷1()的中斷允許位。EX1=0,禁止外部中斷1中斷;EX1=1,允許外部中斷1中斷。ET0:定時器/計數器T0的溢出中斷允許位。ET0=0,禁止T0中斷;ET0=1,允許T0中斷。EX0:外部中斷0()的中斷允許位。EX0=0,禁止外部中斷0中斷;EX0=1允許外部中斷0中斷。IED7D6D5D4D3D2D1D0位名稱EA
ESET1EX1ET0EX0位地址AFH
ACHABHAAHA9HA8H中斷源CPU
串口T1T0
4.中斷優先級控制寄存器IPMCS-51單片機的中斷源可以設置為兩個優先級:高優先級和低優先級,從而實現兩級中斷嵌套。優先級控制可以通過修改中斷優先級控制寄存器IP的內容實現。IP的字節地址為0B8H,位地址為0BFH~0B8H
PS:串行口中斷優先級控制位?!?”為低優先級,“1”為高優先級。PT1:定時器/計數器1(T1)的中斷優先級控制位?!?”為低優先級,“1”為高優先級。PX1:外部中斷1的中斷優先級控制位?!?”為低優先級,“1”為高優先級。PT0:定時器/計數器0(T0)的中斷優先級控制位?!?”為低優先級,“1”為高優先級。PX0:外部中斷0的中斷優先級控制位。“0”為低優先級,“1”為高優先級。同一級別中,優先權次序遵從自然優先級,從高到低依次為:INT0、T0、INT1、T1、RI/TI。IPD7D6D5D4D3D2D1D0位名稱
PSPT1PX1PT0PX0位地址
BCHBBHBAHB9HB8H中斷源
串口T1T0中斷優先級遵循下列原則:正在進行中斷服務的中斷過程不能被新的同級或更低優先級的中斷請求所中斷,一直到該中斷服務程序結束,返回主程序且執行了主程序中的一條指令后,CPU才響應新的同級或低級中斷請求。正在進行的低優先級中斷服務程序能被高優先級中斷請求所中斷,實現兩級中斷嵌套。高級中斷結束后,返回低級中斷服務。CPU同時接收到幾個中斷請求時,首先響應高優先級的中斷請求,同一優先級內部,按照自然優先級響應。5.3中斷過程5.3.1中斷請求中斷請求就是中斷源向CPU申請中斷的過程,即建立中斷請求標志位IE0、IE1、TF0、TF1、TI/RI的過程外部中斷請求:經由引腳P3.2、P3.3向CPU申請中斷的過程。外部中斷請求有兩種方式:低電平觸發和下降沿觸發。通過設置觸發方式控制位IT0、IT1進行選擇。IT0=0,表示為低電平觸發方式;IT0=1,表示為下降沿觸發方式。IT1的情況類似。外部中斷請求標志存放在IE0/IE1中。IE0為中斷請求標志位。當有中斷請求時IE0置1。IE1的情況類似。內部中斷請求:當T0計數產生溢出時,由硬件置位TF0。當CPU響應中斷后,再由硬件將TF0清0。T1的情況類似。當串行口發送結束時,使TI=1;當串行口接收結束時,使RI=1。CPU響應中斷后,由軟件將TI/RI位清0。5.3.2中斷響應CPU對中斷請求進行判斷,形成中斷矢量,轉入相應的中斷服務程序的過程叫中斷響應。一、CPU響應中斷的基本條件有中斷源提出中斷請求;中斷總允許位EA=1,即CPU中斷開放;申請中斷的中斷源的中斷允許位為1,即中斷源開放;CPU沒有響應同級或更高優先級的中斷;當前指令執行結束;如果正在執行的指令是RETI或是訪問IE、IP指令。CPU在執行RETI或訪問IE、IP指令后,至少還需要再執行一條其它指令后才會響應中斷請求。二、中斷響應過程單片機在每個機器周期的S5P2期間,順序采樣每個中斷源,建立中斷請求標志。在下一個機器周期按優先級查詢中斷標志,如查詢到有中斷標志為1,則按優先級進行中斷響應。硬件將程序計數器PC的當前內容壓入堆棧保護,然后將對應的中斷矢量裝入程序計數器PC,使程序轉向相應的中斷。這相當于執行一條長調用指令。中斷響應過程中斷響應過程:保護斷點地址;
把程序轉向中斷服務程序的入口地址(通常稱矢量地址)執行中斷服務程序。中斷響應特別注意:這些工作是硬件自動完成的!
斷點地址中斷服務子程序的入口地址程序存儲器ROM0000H:復位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時器0溢出中斷入口0013H:外部中斷1入口001BH:定時器1溢出中斷入口使用時,通常在這些入口地址處存放一條長跳轉LCALLaddr16指令,使程序跳轉到用戶安排的中斷服務程序起始地址上去!5個固定的中斷源矢量地址程序存儲器ROM0000H:復位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時器0溢出中斷入口0013H:外部中斷1入口001BH:定時器1溢出中斷入口002AH包含T0中斷服務子程序的程序結構:
ORG0000H AJMPMAIN
ORG000BH AJMPINTT0
ORG0100HMAIN:MOVA,#08..INTT0:MOVA,#03..RETIENDAJMPMAINAJMPINTT05.3.3
中斷處理中斷服務程序從入口地址開始執行,直到返回指令RETI為止,這個過程稱為中斷處理(執行中斷服務)。中斷服務子程序一般包括兩部分內容,一是保護和恢復現場,二是中斷源服務(中斷事務處理)。中斷響應入口地址RETI保護現場INTT0:PUSHACC PUSHDPHPUSHDPLPUSHPSW
中斷源服務
POPPSW
POPDPLPOPDPHPOPACCRETI保護現場恢復現場關中斷保護現場開中斷中斷服務恢復現場開中斷中斷返回斷點地址由堆棧彈出保護和恢復現場之后開中斷,是為了允許響應更高級別的中斷。保護現場和恢復現場的過程中不允許中斷,以免現場遭到破壞。關中斷RETI指令功能:把斷點地址從堆棧取出,送到PC。并清除優先級狀態觸發器。特別注意:不能用RET指令代替RETI指令!中斷響應中斷返回RETI5.3.4中斷返回5.3.5中斷請求撤消外部中斷INT0、INT1的中斷請求標志位IE0、IE1在CPU響應中斷后,由硬件清0撤消。定時/計數器T0、T1溢出標志TF0、TF1在CPU響應中斷后,由硬件清0撤消。串行口發送結束/接收結束TI/RI在CPU響應中斷后,由軟件清0撤消。5.3.6中斷響應時間中斷響應時間是指CPU檢測到中斷請求信號到轉入中斷服務程序所需要的時間。若中斷檢測時正好是一條指令的最后1個機器周期,且不是RETI或訪問IE、IP指令,則CPU執行2個機器周期的長調用轉移指令即可執行中斷服務程序,共1+2=3個機器周期。若中斷檢測時CPU正在執行RETI或訪問IE、IP指令的第一個機器周期,需2個機器周期完成上述操作,若緊接著的下一條指令是乘法,則需4個機器周期,之后CPU執行一條2個機器周期的長調用轉移指令才可執行中斷服務程序,故共需8個機器周期。5.4外部中斷源擴展MCS-51單片機只提供了兩個外部中斷請求輸入端,在實際應用中,如果需要使用多于兩個的外部中斷源,就必須進行外部中斷源的擴展。常用的幾種外部中斷源擴展方法是:利用單片機中的定時器/計數器T0、T1來擴展;外接硬件電路并配合查詢程序擴展;外接中斷控制芯片(如8259)進行擴展。
1.用定時器/計數器擴展外部中斷源將定時器/計數器T0、T1設置為計數方式工作方式2負跳變觸發初值設為0FFH允許中斷當計數輸入端發生一個負跳變時,計數器加1,便發生溢出,從而產生中斷。
ORG0100H
MOVTMOD,#06H;設置定時器T0為工作方式2、計數模式MOVTH0,#0FFH;設置計數器初值MOVTL0,#0FFH
SETBET0;允許定時器中斷
SETBEA;CPU開中斷
SETBTR0;啟動定時器T0初始化程序如下:2.查詢方式擴展外部中斷源多個中斷源通過一個中斷請求引腳申請中斷中斷源內部采用查詢方式確定
例:通過OC門實現外部中斷源擴展的基本原理如下圖所示參考程序如下:
ORG0003H
LJMPINTER_PRO
ORG0100H
INTER_PRO:
JNBP1.0,SUB0_PRO
JNBP1.1,SUB1_PRO
......
JNBP1.7,SUB7_PRO3.中斷控制芯片(如8259)進行擴展
當需要擴展的外部中斷源比較多時,可以使用專用中斷控制器8259實現。一個8259可以直接擴展8個中斷源,經級聯后,最多可以擴展64個中斷源。堆棧設置觸發方式設置中斷開放優先級設置中斷應用8件事在入口放轉移指令保護/恢復現場開關中斷中斷標志撤銷【例】按鍵中斷控制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單元存放轉移指令
LJMPSTART ;轉移到主程序
ORG0003H ;外部中斷INT0入口
LJMPEXT0 ;轉移到外部中斷0的中斷服務程序
ORG0013H ;外部中斷INT1入口
LJMPEXT1 ;轉移到外部中斷1的中斷服務程序
ORG0030H ;主程序從0030H開始存放START:MOVIE,#10000101B ;CPU、INT0、INT1中斷開放
MOVIP,#00000100B ;INT1高中斷優先級
MOVTCON,#00000101B ;INT0、INT1為下降沿觸發
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 ;循環10次
POPPSW POPACC RETIEXT1:PUSHACC ;堆棧保護
PUSHPSW MOVR3,#0AH ;閃爍10次LOOP2:MOVP1,#00H ;使LED0、LED1滅
LCALLDELAY
MOVP1,#02H ;使LED1亮
LCALLDELAYDJNZR3,LOOP2 ;循環10次
POPPSWPOPACCRETI ;中斷返回DELAY:MOVR5,#20 ;延時200ms子程序
DLY1:MOVR6,#200 DLY2:MOVR7,#200DJNZR7,$DJNZR6,DLY2DJNZR5,DLY1RET ;中斷返回
ENDPtoteus仿真
全自動洗衣機工作過程中,當遇到意外事件發生,如衣物纏繞,或需要干預洗衣進程時,如需要添加消毒液,就需要暫停當前洗衣進程,處理這些事件。假設全自動洗衣機有8個流程,用8個指示燈表示;用8個按鍵進行選擇控制。當某個流程工作時,對應的指示燈點亮。當按下按鍵K時,中斷正在進行的流程,對應的流程指示燈閃爍,洗衣機進入等待狀態;再次按下K時,指示燈停止閃爍,變成點亮狀態,表示洗衣機恢復原來被中斷的洗衣流程。ORG0000H;在0000H單元存放轉移指令
AJMPMAIN;轉移至主程序
ORG0003H;INT0中斷入口
AJMPWBI;轉中斷服務程序
ORG0030H;主程序
MAIN:MOVP2,#00H;全燈滅
SETBIT0;邊沿觸發中斷
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CRIA 29003-2023硫化橡膠耐切削性能試驗方法
- T/CNPPA 3022-2023藥用玻璃容器外觀缺陷評估指南
- T/CNIDA 005-2023核工程邊坡技術規程
- T/CNESA 1202-2020飛輪儲能系統通用技術條件
- T/CNCA 058-2023煤炭行業健康企業評價規范
- T/CIQA 47-2022紅花質量分級
- T/CIIA 028-2022生態系統長期觀測數據產品規范
- T/CGCC 62-2022自動售貨設備運營管理規范
- T/CGAS 027-2023城鎮燃氣智能調壓箱技術規范
- T/CECS 10129-2021塑料扁絲土石籠袋
- 醫療糾紛防范及法律責任課件
- 電動自行車車棚設計施工規劃方案
- 資金流,合同流,發票流,三流一致報告模板
- 《心理健康教育主題班會》主題
- GB 30254-2024高壓三相籠型異步電動機能效限定值及能效等級
- SL+290-2009水利水電工程建設征地移民安置規劃設計規范
- 2024年江蘇中考地理試卷(帶有答案)
- 江蘇省江陰市普通高中2023-2024學年物理高一第二學期期末統考試題含解析
- 唐詩宋詞人文解讀智慧樹知到期末考試答案章節答案2024年上海交通大學
- 小學四年級奧數-還原問題
- 江蘇省2024年中職職教高考文化統考財會專業綜合理論試卷
評論
0/150
提交評論