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

下載本文檔

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

文檔簡介

第五章MCS-51單片機的中斷系統(tǒng)

5.1中斷的基本概念5.2MCS-51單片機的中斷系統(tǒng)及管理5.3中斷處理過程5.4中斷系統(tǒng)應(yīng)用5.1中斷的基本概念

所謂中斷,是指CPU對系統(tǒng)中或系統(tǒng)外發(fā)生的某個事件的一種響應(yīng)過程,即CPU暫時停止正在執(zhí)行的程序轉(zhuǎn)而執(zhí)行預(yù)先安排好的處理該事件的服務(wù)子程序(中斷服務(wù)子程序),當(dāng)處理完畢后,CPU又自動返回原來的程序繼續(xù)運行。圖5-1中斷流程

從中斷的執(zhí)行過程看來,計算機的中斷過程與子程序的調(diào)用有相似之處,但是它們之間有本質(zhì)的區(qū)別:

首先,子程序的執(zhí)行是程序員事先安排好的,在程序中通過調(diào)用指令來執(zhí)行的,而中斷服務(wù)子程序的執(zhí)行則是由隨機事件引起的,程序員也不知道何時中斷服務(wù)子程序會被執(zhí)行;

其次,子程序一般與主程序有關(guān),它的執(zhí)行受到主程序或上一級子程序的控制,而中斷服務(wù)子程序一般是用來處理隨機事件的,與被中斷的程序沒有關(guān)系。圖5-2MCS-51單片機的中斷系統(tǒng)結(jié)構(gòu)示意圖5.2.1中斷源

所謂中斷源,是指引起中斷的原因和發(fā)出中斷申請的來源。MCS-51單片機有5個中斷源,可分為3類:1.外部輸入中斷源(外中斷)2個2.定時\計數(shù)器溢出中斷源(定時\計數(shù)器中斷)2個3.串行口中斷請求源(串行中斷)1個。5.2.2中斷請求標(biāo)志寄存器

1.TCON寄存器的中斷標(biāo)志TCON是一個8位的定時器/計數(shù)器控制寄存器,字節(jié)地址為88H,可位尋址。其8個位中有6個位與中斷有關(guān):2.SCON中的中斷標(biāo)志SCON是一個8位的串行控制寄存器,字節(jié)地址為98H,可位尋址。其8個位中有2個位是中斷標(biāo)志位:5.2.3中斷的控制1.中斷允許控制MCS-51單片機中的特殊功能寄存器IE是中斷允許寄存器,它控制CPU對中斷源的開放或屏蔽,以及每個中斷源是否允許中斷。IE是個8位寄存器,字節(jié)地址為A8H,可位尋址。其各位的定義如下:圖5-6兩級中斷嵌套過程示意圖MCS-51單片機的中斷系統(tǒng)運行時遵循以下幾條規(guī)則:(1)正在進行的中斷過程不能被新的同級或低先級的中斷請求所中斷。(2)正在進行的低先級中斷能被高優(yōu)先級的中斷請求所中斷,實現(xiàn)兩級中斷嵌套。(3)CPU同時接時到幾個中斷請求時,首先響應(yīng)優(yōu)先級最高的中斷請求。若同時接收到幾個同一優(yōu)先級的中斷請求,CPU通過硬件查詢按自然優(yōu)先級確定響應(yīng)的先后順序,用戶無法決定。

表5-1自然優(yōu)先級順序

中斷源中斷級別外部中斷0T0溢出中斷外部中斷1T1溢出中斷串行口中斷最高

最低5.3中斷處理過程

5.3.1中斷請求MCS-51單片機的5個中斷源的中斷請求均由硬件自動完成,中斷請求完成后,相應(yīng)的中斷請求標(biāo)志位被硬件置1。定時/計數(shù)器和串行口的中斷請求信號在單片機內(nèi)部自動產(chǎn)生,而外部中斷1和外部中斷0的中斷請求信號則需從引腳INT0和INT1輸入,中斷系統(tǒng)在每個機器周期的S5P2對引腳信號進行采樣,根據(jù)采樣的結(jié)果設(shè)置中斷標(biāo)志位。5.3.2中斷查詢和響應(yīng)1.中斷查詢MCS-51單片機在每個機器周期的s6狀態(tài)按照中斷優(yōu)先級的高低順序?qū)χ袛鄻?biāo)志位進行查詢,即CPU對TCON和SCON的各標(biāo)志位的狀態(tài)進行測試,以確定是否有中斷請求以及是哪個中斷源的中斷請求。中斷查詢在指令執(zhí)行的每個機器周期中不停重復(fù)進行,若查詢到有標(biāo)志位被置位且滿足響應(yīng)的條件,則CPU將在下個機器周期的S1狀態(tài)進行響應(yīng)。2.中斷響應(yīng)

(1)中斷響應(yīng)的條件

中斷響應(yīng)是CPU對中斷源提出的中斷請求的接受。一個中斷源的中斷請求要被響應(yīng),必須滿足四個條件:首先開放CPU中斷,即中斷允許控制位EA=1;其次,中斷源有中斷請求,即中斷標(biāo)志位被置位;第三,相應(yīng)的中斷充許位被置位,即某個中斷源允許中斷;第四,無同級或高級中斷正在被服務(wù)。

以上是中斷請求被響應(yīng)必須滿足的條件,中斷請求最終能否被響應(yīng),還要看程序執(zhí)行的狀態(tài),若遇到以下情況,中斷請求仍不能被響應(yīng):當(dāng)前正在執(zhí)行的指令還沒有執(zhí)行完;正在執(zhí)行訪問IE、IP的指令或執(zhí)行RETI指令。對后一種情況,只有在執(zhí)行這些指令后至少還要再執(zhí)行一條指令,才能響應(yīng)新的中斷請求。

如果存在以上情況,CPU將丟棄中斷查詢結(jié)果,不能響應(yīng)中斷請求,查詢過程在下個機器周期重新進行。(2)中斷響應(yīng)的過程

當(dāng)CPU查詢到有效的中斷請求且滿足中斷響應(yīng)的條件時,緊接著就進行中斷響應(yīng)。中斷響應(yīng)的主要過程是由硬件自動生成一條長調(diào)用指令“LCALLaddr16”。這里的addr16就是程序存儲器中相應(yīng)的中斷入口地址。例如:對于定時/計數(shù)器0的響應(yīng),硬件自動生成的長調(diào)用指令是:“LCALL000BH”。CPU指行該指令時時,首先將當(dāng)前PC的內(nèi)容壓入堆棧以保護現(xiàn)場,再將相應(yīng)的中斷服務(wù)程序的入口地址裝入PC,使程序轉(zhuǎn)向響應(yīng)中斷請求的中斷入口地址。各中斷源的服務(wù)程序的入口地址是固定的,如表5-2所示。除此之外,還將由硬件自動清除中斷請求標(biāo)志位(TF0、TF1、IE0、IE1)。中斷源中斷入口地址外部中斷0定時/計數(shù)器0外部中斷1定時/計數(shù)器1串行口中斷0003H000BH0013H001BH0023H表5-2中斷入口地址表(3)中斷響應(yīng)的時間

中斷響應(yīng)的時間是指從中斷響應(yīng)有效(標(biāo)志位置1)到轉(zhuǎn)向其中斷服務(wù)程序地址區(qū)的入口地址所需要的時間。

對于單一中斷源中斷系統(tǒng),中斷響應(yīng)時間最少需要3個機器周期:其中查詢中斷請求標(biāo)志位需要一個機器周期,且該機器周期恰好處于正在執(zhí)行的指令的最后一個機器周期,則CPU無需等待即可響應(yīng)中斷請求,執(zhí)行由硬件自動生成的長調(diào)用指令,需要2個機器周期,一共需要3個機器周期。

中斷響應(yīng)時間最長則需要8個機器周期:這種情況出現(xiàn)在CPU進行中斷標(biāo)志查詢時,剛好才開始執(zhí)行訪問IE、IP的指令或執(zhí)行RETI指令,則需把當(dāng)前指令指行完且再繼續(xù)執(zhí)行完一條指令才始開響應(yīng)中斷請求。執(zhí)行RETI指令或訪問IE、IP指令時,需要2個機器周期,而再執(zhí)行一條指令最長需要4個機器周期(如MUL、DIV指令),加上執(zhí)行硬件自動生成的長調(diào)用指令LCALL需要2個機器周期,最長需8個機器周期。(4)中斷請求的撤銷某個中斷請求被響應(yīng)后,應(yīng)該撤銷該中斷請求,以免該中斷請求再次引起中斷。①對于定時/計數(shù)器中斷請求,CPU響應(yīng)中斷后,硬件會自動把中斷標(biāo)志位(TF0或TF1)清0,因此,定時/計數(shù)器中斷請求是自動撤銷的。②對于外部中斷請求,若外部中斷請求信號觸發(fā)方式為脈沖方式,由于脈沖信號過后即消失,CPU響應(yīng)中斷請求后由硬件自動清除中斷請求標(biāo)志位(IE0或IE1),因此脈沖方式的外部中斷請求是自動撤銷的。而對于電平觸發(fā)方式的外部中斷請求,中斷請求標(biāo)志位(IE0或IE1)是由硬件自動完成的,但中斷請求信號的低電平可能繼續(xù)存在,在CPU響應(yīng)中斷后,又會將已清除的中斷標(biāo)志位IE0或IE1重新置位,再次引起中斷,因此,電平觸發(fā)的外部中斷請求的撤銷,除了清除中斷請求標(biāo)志位之外,還應(yīng)立即撤除引腳上(INT0或INT1)上的低電平信號。③對于串行口中斷請求,CPU響應(yīng)中斷后,中斷請求標(biāo)志位RI和TI不會被硬件自動清0,只能使用軟件清0,因此,串行口中斷請求的撤銷只能使用軟件的方法。5.3.3中斷處理1.現(xiàn)場保護和現(xiàn)場恢復(fù)。

所謂現(xiàn)場是指中斷時刻單片機中某些寄存器和存儲單元中的數(shù)據(jù)或狀態(tài)。為了避免中斷服務(wù)子程序的執(zhí)行破壞這些數(shù)據(jù)或狀態(tài),需要把它們存入堆棧當(dāng)中保護起來,以免中斷返回后影響主程序的執(zhí)行,這就是現(xiàn)場保護?,F(xiàn)場保護要在執(zhí)行中斷服務(wù)子程序之前進行。2.關(guān)中斷和開中斷。

對于現(xiàn)場保護和現(xiàn)場恢復(fù)不充許被打斷的情況,可以在現(xiàn)場保護和現(xiàn)場恢復(fù)之前關(guān)中斷,即禁止CPU響應(yīng)中斷,將中斷允許控制位EA清0,以免破壞現(xiàn)場;在現(xiàn)場保護和現(xiàn)場恢復(fù)之后再開中斷,為下一次的中斷做好準(zhǔn)備。5.3.4中斷返回

中斷服務(wù)子程序的最后一條指令必須是返回指令RETI,它是中斷服務(wù)子程序結(jié)束的標(biāo)志。CPU執(zhí)行這條指令時,把響應(yīng)中斷時置1的中斷優(yōu)先級觸發(fā)器清0,然后從堆棧中彈出棧頂上的兩個字節(jié)的斷點地址送程序計數(shù)器PC,使程序回到斷點處重新執(zhí)行被中斷了的程序。由于RETI指令和RET指令兩者功能不同,所以中斷服務(wù)子程序的返回不能使用RET指令。5.4中斷系統(tǒng)應(yīng)用

例5.1如圖5-8所示是單片機控制的數(shù)據(jù)傳輸系統(tǒng)。將P1口設(shè)置成數(shù)據(jù)輸入口,外部設(shè)備每準(zhǔn)備好一個數(shù)據(jù)時發(fā)出一個正脈沖,使D觸發(fā)器Q端置0,向

送入一個低電平中斷請求信號。中斷響應(yīng)后,利用P3.0向D觸發(fā)器的直接置位端SD輸出一個負脈沖,使D觸發(fā)器的Q端置1,撤銷低電平的中斷請求信號,從而撤銷中斷請求。例5-8單片機數(shù)據(jù)傳輸系統(tǒng)示意圖程序如下:

ORG0000HSTART:LJMPMAIN;跑轉(zhuǎn)到主程序ORG0003HLJMPINT0;轉(zhuǎn)向中斷服務(wù)程序ORG0030H;主程序MAIN:CLRIT0;設(shè)置低電平觸發(fā)方式SETBEA;CPU開放中斷SETBEX0;允許外部中斷0中斷MOVDPTR,#1000H;設(shè)置數(shù)據(jù)指針…ORG0100H;中斷服務(wù)子程序INT0:PUSHPSW;現(xiàn)場保護PUSHA;由P3.0輸出負脈沖CLRP3.0NOPNOPSETBP3.0MOVA,P1;輸入數(shù)據(jù)MOVX@DPTR,A;存入數(shù)據(jù)存儲器INCDPTR;修改數(shù)據(jù)指針,指向下一個單元…POPA;現(xiàn)場恢復(fù)POPPSWRETI;中斷返回例5.2某工業(yè)監(jiān)控系統(tǒng),具有溫度、壓力、PH值等多路監(jiān)控功能,中斷源的接口電路如圖5-9所示。對于PH值,在小于7時向CPU申請中斷,CPU響應(yīng)中斷后使P3.0引腳輸出高電平,經(jīng)驅(qū)動,使加緘管道電磁閥接通1秒,以調(diào)整PH值。ORG0030H;外部中斷0的中斷服務(wù)子程入口JBP1.0,INT00;檢測轉(zhuǎn)移指令表JBP1.1,INT01JBP1.2,INT02JBP1.3,INT03ORG0080;PH<7時中斷服務(wù)子程序INT02:PUSHPSW

;現(xiàn)場保護

PUSHASETBPSW.3;工作寄存器設(shè)置為1組,以保護原0組的內(nèi)容SETBP3.0

;接通加堿管道電磁閥ACALLDELAY;調(diào)用1秒延時子程序

溫馨提示

  • 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

提交評論