微機原理與應(yīng)用-05 中斷系統(tǒng)_第1頁
微機原理與應(yīng)用-05 中斷系統(tǒng)_第2頁
微機原理與應(yīng)用-05 中斷系統(tǒng)_第3頁
微機原理與應(yīng)用-05 中斷系統(tǒng)_第4頁
微機原理與應(yīng)用-05 中斷系統(tǒng)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章MCS-51的中斷系統(tǒng)主要內(nèi)容中斷的概念中斷系統(tǒng)結(jié)構(gòu)及中斷控制中斷處理過程外部中斷源的應(yīng)用§5-1中斷的概念

1.輸入輸出方式無條件傳送

不需要測試外部設(shè)備的狀態(tài),CPU可以根據(jù)需要隨時進行數(shù)據(jù)傳送操作查詢傳送CPU在傳輸數(shù)據(jù)之前進行查詢DMA方式 直接存儲器存取方式,CPU讓出數(shù)據(jù)總線,使得外部設(shè)備和存儲器之間直接傳輸。中斷方式實現(xiàn)計算機對外界發(fā)生的事件進行及時實時處理。2.中斷的概念計算機暫時中止正在執(zhí)行的主程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,并在中斷服務(wù)程序執(zhí)行完了之后能自動回到原主程序處繼續(xù)執(zhí)行,這個過程叫做“中斷”。某人看書 執(zhí)行主程序 日常事務(wù)電話鈴響 中斷信號INT=0中斷請求暫??磿?/p>

暫停執(zhí)行主程序中斷響應(yīng)書中作記號當(dāng)前PC入棧 保護斷點電話談話 執(zhí)行I/O程序中斷服務(wù)繼續(xù)看書 返回主程序 中斷返回2.中斷的概念日常事務(wù)主程序中斷服務(wù)程序中斷系統(tǒng):實現(xiàn)處理功能的硬件和軟件系統(tǒng)中斷源:產(chǎn)生中斷的請求源中斷請求:中斷源向CPU提出處理要求斷點:原來程序被中斷的地方中斷服務(wù):對中斷事件響應(yīng)的處理過程中斷返回:結(jié)束中斷服務(wù)程序,返回被中斷的主程序3.中斷的產(chǎn)生I/O設(shè)備:I/O設(shè)備向CPU發(fā)出中斷請求數(shù)據(jù)通道中的中斷源:如磁盤、磁帶等硬件故障:如電源掉電、存儲出錯等實時時鐘與計數(shù)為調(diào)試程序而設(shè)置的中斷4.中斷的功能分時操作。在多項外部設(shè)備同時提出中斷請求情況下,CPU能根據(jù)輕重緩急響應(yīng)外設(shè)的中斷請求;CPU可以分時為多個I/O設(shè)備服務(wù),提高了計算機的利用率;

CPU與外部設(shè)備并行工作,以中斷方式相聯(lián)系,提高工作效率;實時響應(yīng)。根據(jù)現(xiàn)場隨時變化的各種參數(shù)、信息,做出實時監(jiān)控;對突發(fā)事故,做出緊急處理;可靠性高。CPU具有處理設(shè)備故障及掉電等突發(fā)性事件的能力,從而使系統(tǒng)可靠性提高。§5-2中斷系統(tǒng)的結(jié)構(gòu)一.中斷源信號2個外部中斷請求:INT0、INT12個定時器計數(shù)器溢出中斷請求:T0、T11個串行口1串行幀數(shù)據(jù)發(fā)送、接收結(jié)束中斷請求:TI、RI二.中斷允許控制總允許開關(guān):EA源允許開關(guān):ES、ET1、EX1、ET0、EX0三.2級中斷優(yōu)先級控制優(yōu)先級選擇開關(guān):PS、PT1、PX1、PT0、PX0P3.2P3.3P3.4P3.5P3.0P3.1一.中斷控制寄存器§5-3中斷系統(tǒng)的控制

1.中斷標(biāo)志位TF1、TF0、IE1、IE0——TCON;RI、TI——SCON=1,有中斷請求;=0,無中斷請求。CPU響應(yīng)中斷后,中斷標(biāo)志位自動清零,但TI/RI標(biāo)志位須軟件清零。

2.外部中斷觸發(fā)方式選擇位:IT0、IT1——TCON=1:負跳沿觸發(fā)中斷請求;=0:低電平觸發(fā)中斷請求。

3.中斷允許控制位:EA、ES、ET1、EX1、ET0、EX0——IE=1開中斷;=0關(guān)中斷。

4.中斷優(yōu)先級控制位:PS、PT1、PX1、PT0、PX0——IP2級優(yōu)先級:=1,為高優(yōu)先級;=0,為低優(yōu)先級。 同一優(yōu)先級別按內(nèi)部查詢順序排列優(yōu)先級:

高INT0、T0、INT1、T1、RX/TX低。

5.單片機復(fù)位時TCON、SCON、IE、IP清0,所有中斷請求被禁止,5個中斷源均為低級中斷,按中斷系統(tǒng)硬件確定的自然優(yōu)先級排列:高INT0、T0、INT1、T1、RX/TX低二.中斷的嵌套CPU執(zhí)行主程序CPU執(zhí)行低級中斷服務(wù)程序CPU執(zhí)行高級中斷服務(wù)程序CPU同一時間只能響應(yīng)一個中斷請求,同時多個中斷申請時必須有先有后:?不同優(yōu)先級的中斷同時申請——先高后低?相同優(yōu)先級的中斷同時申請——按序執(zhí)行?正處理低優(yōu)先級中斷又接到高級別中斷——高打斷低?正處理高優(yōu)先級中斷又接到低級別中斷——高不理低§5-4中斷的處理過程中斷請求中斷判優(yōu)中斷條件中斷響應(yīng)中斷處理中斷返回硬件自動完成用戶編程完成1.中斷請求被響應(yīng)的條件一個中斷源的中斷請求被響應(yīng)的基本條件:CPU開中斷:EA=1,允許所有中斷源申請中斷;中斷源的中斷請求標(biāo)志位為1;中斷源的中斷允許標(biāo)志位為1;無同級或更高級的中斷正在被服務(wù);2.中斷被封鎖的情況CPU正在處理一個同級或更高級別的中斷請求。因為此時相應(yīng)的中斷優(yōu)先級狀態(tài)觸發(fā)器被置1

當(dāng)前正執(zhí)行指令,不是該指令的最后一個周期。當(dāng)前正執(zhí)行的指令是返回指令(RETI)(本次中斷還沒有處理完)或訪問IP、IE寄存器(可能會開、關(guān)中斷或改變中斷的優(yōu)先級)的指令,則CPU至少再執(zhí)行一條指令才響應(yīng)中斷。CPU每個機器周期順序檢查每個中斷源,當(dāng)檢測到有中斷請求時,能否響應(yīng)中斷,還要看下述情況是否存在:存在上述情況之一,CPU不對中斷進行響應(yīng)。3.外部中斷的響應(yīng)時間外部中斷響應(yīng)時間:從CPU查詢外部中斷請求標(biāo)志位到轉(zhuǎn)入中斷服務(wù)程序的入口地址所需的時間。對于1個單一中斷:中斷響應(yīng)最短3個機器周期:恰在當(dāng)前正執(zhí)行指令的最后1個機器周期查詢中斷請求標(biāo)志位+執(zhí)行LCALL指令(響應(yīng)中斷時由硬件自動生成)需2個機器周期;中斷響應(yīng)最長8個機器周期:恰在當(dāng)前正執(zhí)行RETI或與IP、IE寄存器有關(guān)的指令需2個機器周期+4(再執(zhí)行一條最長的乘、除法指令)+2(執(zhí)行LCALL指令)4.外部中斷的觸發(fā)方式外部中斷觸發(fā)方式選擇位:IT0、IT1=1:負跳沿觸發(fā)中斷請求;=0:低電平觸發(fā)中斷請求。低電平觸發(fā)方式:外部中斷請求觸發(fā)器的狀態(tài)隨外部中斷輸入電平的變化而變化,適合外部中斷以低電平輸入且中斷程序能使輸入的低電平變?yōu)楦唠娖降那闆r;負跳沿觸發(fā)方式:CPU在前一機器周期采到INT0/INT1引腳為高,后一機器周期采到為低,則外部中斷請求觸發(fā)器被置1并鎖存負跳變,適合以負脈沖(負脈沖寬度至少保持1個機器周期,持續(xù)到中斷發(fā)生)形式輸入的外部中斷請求。5.中斷的撤銷CPU在中斷返回前,把它響應(yīng)的中斷標(biāo)志位(TCON、SCON中的IE0、IE1、TF0、TF1、TI、RI位)復(fù)位成“0”狀態(tài)。中斷源撤消中斷標(biāo)志的方法INT0/INT1負跳沿觸發(fā)中斷時,硬件置位,硬件復(fù)位。中斷請求信號自動撤銷。電平觸發(fā)中斷時,硬件置位,盡管CPU響應(yīng)中斷時可用硬件自動復(fù)位成“0”狀態(tài),但必須人為撤消中斷請求信號(軟硬件結(jié)合)T0/T1由硬件置位和復(fù)位(也可由軟件清零),硬件自動撤消中斷請求。RI/TI由硬件置位,必須由軟件清零(CLRRI,CLRTI)電平方式外部中斷請求信號的軟硬件結(jié)合撤銷(教材P110頁)5.中斷的撤銷所需的負脈沖可通過在中斷服務(wù)程序中增加3條指令得到:0RLP1,#01H;P1.0為1ANLP1,#0FEH;P1.0為0

┆0RLP1,#01H;P1.0為1利用D觸發(fā)器的置位端SD實現(xiàn)中斷請求的撤銷6.中斷的響應(yīng)過程CPU自動完成:CPU在T機器的S5P2,查詢中斷源,設(shè)置中斷標(biāo)志位;判斷中斷響應(yīng)條件滿足,CPU響應(yīng)中斷;由硬件自動生成LCALL指令(例如對INT1的響應(yīng)產(chǎn)生的LCALL指令為:LCALL0013H),自動把斷點地址壓入堆棧,并將對應(yīng)中斷入口地址裝入PC,執(zhí)行中斷服務(wù)程序。用戶必須完成:中斷初始化:開相應(yīng)中斷源的中斷(IE)、設(shè)定中斷優(yōu)先級(IP)、設(shè)定外部中斷的觸發(fā)方式;在中斷入口地址存放跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶編寫的中斷服務(wù)程序起始地址;開發(fā)設(shè)計中斷服務(wù)程序。1.主程序結(jié)構(gòu)

ORG0000HAJMPMAINORG0003HLJMPINT1O(jiān)RG000BHLJMPINT2┆ORG主程序入口地址MAIN:中斷初始化程序┆HERE:SJMPHERE;原地等待中斷申請(或:執(zhí)行其它任務(wù))ORG中斷服務(wù)程序1入口地址

INT1:┆

RETI

ORG中斷服務(wù)程序2入口地址

INT2:┆

RETI§5-5中斷服務(wù)程序設(shè)計復(fù)位后,PC置成0000H,CPU從0000H單元開始執(zhí)行指令,所以用無條件轉(zhuǎn)移指令跳轉(zhuǎn)到主程序。每個中斷向量地址間隔8個單元,完成中斷程序空間少,在中斷處安排一個無條件轉(zhuǎn)移指令中斷源入口地址INT00003HT0000BHINT10013HT1001BHTI/RI0023H2.中斷初始化§5-5中斷服務(wù)程序設(shè)計例5-1設(shè)置IP寄存器的初始值,使得MCS-51的2個外中斷請求為高優(yōu)先級,其它中斷請求為低優(yōu)先級。

(1)用位操作指令SETBPX0;2個外中斷為高優(yōu)先級SETBPX1CLRPS;串行口、2個定時器/計數(shù)器為低優(yōu)先級中斷CLRPT0

CLRPT1(2)用字節(jié)操作指令

MOVIP,#05H或者用:

MOV0B8H,#05H;B8H為IP寄存器的字節(jié)地址MOVIP,#00000101B;例5-3假設(shè)允許外部中斷0中斷,并設(shè)定它為高級中斷,其它中斷源為低級中斷,采用跳沿觸發(fā)方式。在主程序中應(yīng)有如下程序段:SETBEA;EA位置1,CPU開中斷SETBEX0;EX0位置1,允許外部中斷0產(chǎn)生中斷SETBPX0;PX0位置1,外部中斷0為高級中斷SETBIT0;IT0位置1,外部中斷0為跳沿觸發(fā)方式

2.中斷初始化§5-5中斷服務(wù)程序設(shè)計§5-5中斷服務(wù)程序設(shè)計SETBEACLREAPUSHPSWPUSHACCPUSHDPHPUSHDPL

POPDPLPOPDPHPOPACCPOPPSW3.中斷服務(wù)程序保護現(xiàn)場:當(dāng)前PC值,PSW、工作寄存器和SFR等?;謴?fù)現(xiàn)場:完成中斷服務(wù)后,將保存在堆棧中的現(xiàn)場數(shù)據(jù)恢復(fù)。如果當(dāng)前中斷服務(wù)程序不允許被中斷,則其前后的開中斷和關(guān)中斷2條指令可去掉。RETI可去掉響應(yīng)過程:(假設(shè)已使某中斷請求標(biāo)志置1)(1)先使相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器置1;(2)執(zhí)行一個硬件子程序的調(diào)用:1)硬件清零相應(yīng)中斷請求標(biāo)志(TI、RI除外)2)將當(dāng)前PC內(nèi)容壓入堆棧——保護斷點;3)將中斷服務(wù)子程序入口地址送PC——轉(zhuǎn)移。返回過程:(RETI執(zhí)行后)(1)使相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器清0。(2)從堆棧中彈出棧頂?shù)膬蓚€字節(jié)內(nèi)容送PC——恢復(fù)斷點。(3)CPU接著中斷處繼續(xù)執(zhí)行原主程序?!?-5中斷服務(wù)程序設(shè)計3.中斷服務(wù)程序例5-4:中斷舉例用中斷控制完成這一輸入輸出過程,每請求中斷一次,完成一個讀/寫操作單片機讀P1.0口的狀態(tài),把這個狀態(tài)送到P1.7的指示燈去。當(dāng)P1.0為高電平時指示燈亮,當(dāng)P1.0為低電平時則指示燈不亮。RS觸發(fā)器INT0+5VP1.7P1.0+5V+5V&&1KΩ1KΩ8051O(jiān)RG0000HAJMPMAIN;上電自動轉(zhuǎn)向主程序ORG0003H;INT0的入口地址AJMPWINT;指向中斷服務(wù)程序子程序ORG0100H;主程序MAIN:SETBIT0;選擇邊沿觸發(fā)方式SETBEX0;允許外部中斷0SETBEA;允許總中斷HERE:AJMPHERE;主程序踏步ORG0200HWINT:MOVA,#0FFH;

MOVP1,A;P1準(zhǔn)雙向口設(shè)定輸入態(tài)MOVA,P1;取開關(guān)數(shù)RRA;P1.0送P1.7MOVP1,A;輸出驅(qū)動燈泡發(fā)光RETI;中斷返回END中斷返回到何處?例5-5:中斷舉例通過外部中斷1,在中斷服務(wù)中將B寄存器里的內(nèi)容左環(huán)移一位。已知:(B)=01H,要求采用邊沿觸發(fā),低優(yōu)先級。此例的實際意義:在INT1引腳接一個按鈕開關(guān)到地,每按一下按鈕就申請一次中斷,中斷服務(wù)則是依次點亮八盞燈中的一盞P1.0P1.7INT13008051ORG0000HLJMPMAINORG0013H;中斷矢量LJMPINTMAIN:SETBEA;開總中斷允許“開關(guān)”SETBEX1;開外部中斷1允許“開關(guān)”CLRPX1;0優(yōu)先級(也可不要此句)SETBIT1;邊沿觸發(fā)MOVB,#01H;給B寄存器賦初值HERE:SJMPHERE;原地等待中斷申請INT:MOVA,B;自B寄存器中取數(shù)RLA;左環(huán)移一次MOVB,A;存回B,備下次取用MOVP1,A;輸出到P1口RETI;中斷返回當(dāng)外部中斷源多于中斷輸入引腳時,可采取以下措施:1.用定時器計數(shù)輸入信號端T0、T1作外部中斷入口引腳;2.用串行口接收端RXD作外部中斷入口引腳;3.用一個中斷入口接受多個外部中斷源,并加入中斷查詢

溫馨提示

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

最新文檔

評論

0/150

提交評論