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

下載本文檔

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

文檔簡介

1、1第第5章章 MCS-51單片機的中斷系統(tǒng)單片機的中斷系統(tǒng)【本章內(nèi)容】【本章內(nèi)容】本章主要介紹本章主要介紹MCS-51單片機中斷系統(tǒng)的結(jié)構(gòu)、工單片機中斷系統(tǒng)的結(jié)構(gòu)、工作原理、控制方法等。作原理、控制方法等?!卷椖框?qū)動的學習要點】【項目驅(qū)動的學習要點】 應(yīng)用項目中對中斷源的利用。應(yīng)用項目中對中斷源的利用。 應(yīng)用項目中如何通過中斷進行時間調(diào)校。應(yīng)用項目中如何通過中斷進行時間調(diào)校。 應(yīng)用項目中的中斷服務(wù)程序流程圖分析。應(yīng)用項目中的中斷服務(wù)程序流程圖分析。 應(yīng)用項目中的中斷服務(wù)源程序的設(shè)計與分析。應(yīng)用項目中的中斷服務(wù)源程序的設(shè)計與分析。 2第第5章章 MCS-51單片機的中斷系統(tǒng)單片機的中斷系統(tǒng)5.1

2、 MCS-51中斷系統(tǒng)概述中斷系統(tǒng)概述5.2 MCS-51的中斷控制的中斷控制5.3 MCS-51的中斷處理的中斷處理5.4 MCS-51外部中斷源的擴展外部中斷源的擴展練習題練習題35.1 MCS-51中斷系統(tǒng)概述中斷系統(tǒng)概述5.1.1 中斷的概念中斷的概念5.1.2 中斷系統(tǒng)的結(jié)構(gòu)中斷系統(tǒng)的結(jié)構(gòu)5.1.3 中斷源中斷源5.1.4 中斷請求標志中斷請求標志45.1.1 5.1.1 中斷的概念中斷的概念1 1中斷的概念中斷的概念2 2中斷的作用中斷的作用51 1中斷的概念中斷的概念u 當當CPU執(zhí)行完現(xiàn)行程序的當前指令時,如執(zhí)行完現(xiàn)行程序的當前指令時,如果此時發(fā)生某一緊急事件請求果此時發(fā)生某一

3、緊急事件請求CPU對其進行對其進行迅速處理,這種請求稱為迅速處理,這種請求稱為中斷請求中斷請求;u 發(fā)出中斷請求的來源稱為發(fā)出中斷請求的來源稱為中斷源中斷源;u 如果這個中斷請求得到如果這個中斷請求得到CPU的允許,的允許,CPU會暫時中止當前程序的運行,保存斷點(下一會暫時中止當前程序的運行,保存斷點(下一條指令的首地址),轉(zhuǎn)到中斷源對應(yīng)的中斷入條指令的首地址),轉(zhuǎn)到中斷源對應(yīng)的中斷入口,處理發(fā)出中斷請求的緊急事件,這個過程口,處理發(fā)出中斷請求的緊急事件,這個過程稱為稱為響應(yīng)中斷響應(yīng)中斷;61 1中斷的概念中斷的概念u 處理中斷請求的程序稱為處理中斷請求的程序稱為中斷服務(wù)程序中斷服務(wù)程序;u

4、 CPU執(zhí)行完中斷服務(wù)程序后,再回到發(fā)生執(zhí)行完中斷服務(wù)程序后,再回到發(fā)生中斷的斷點繼續(xù)執(zhí)行原來的程序,這個過程稱中斷的斷點繼續(xù)執(zhí)行原來的程序,這個過程稱為為中斷返回中斷返回;u 實現(xiàn)這種控制過程的部件稱為單片機的實現(xiàn)這種控制過程的部件稱為單片機的中中斷系統(tǒng)斷系統(tǒng);u 單片機的上述控制過程就稱為單片機的上述控制過程就稱為中斷中斷,單片,單片機的中斷過程示意圖如圖機的中斷過程示意圖如圖5-1所示。所示。7圖圖5-1 單片機中斷過程示意圖單片機中斷過程示意圖 單片單片機中斷控機中斷控制過程制過程:8(1 1)提高)提高CPUCPU的工作效率的工作效率(2 2)便于實時處理)便于實時處理(3 3)提高

5、系統(tǒng)可靠性)提高系統(tǒng)可靠性2 2中斷的作用中斷的作用9 當單片機連接有外圍設(shè)備時,通過采用中斷技當單片機連接有外圍設(shè)備時,通過采用中斷技術(shù),術(shù),CPU在啟動完外設(shè)后,不用專門等待外設(shè),而在啟動完外設(shè)后,不用專門等待外設(shè),而是和外設(shè)同步并行工作,直到外設(shè)完成指定操作,是和外設(shè)同步并行工作,直到外設(shè)完成指定操作,向向CPU提出中斷請求時,提出中斷請求時,CPU再暫時中止當前程序再暫時中止當前程序的執(zhí)行而為外設(shè)服務(wù),服務(wù)結(jié)束后再繼續(xù)執(zhí)行原程的執(zhí)行而為外設(shè)服務(wù),服務(wù)結(jié)束后再繼續(xù)執(zhí)行原程序。這樣,不僅解決了因外設(shè)工作速度慢于單片機序。這樣,不僅解決了因外設(shè)工作速度慢于單片機而導致而導致CPU需要耗時等待

6、的問題,而且可以允許需要耗時等待的問題,而且可以允許CPU與多個外設(shè)并行工作,減少因等待或查詢而耗與多個外設(shè)并行工作,減少因等待或查詢而耗費的時間,從而大大提高費的時間,從而大大提高CPU的工作效率。的工作效率。 (1 1)提高)提高CPUCPU的工作效率的工作效率10 采用中斷技術(shù)后,凡是需要實時采用中斷技術(shù)后,凡是需要實時處理的事件,都可以設(shè)置成隨時可向處理的事件,都可以設(shè)置成隨時可向CPU發(fā)出中斷請求,要求發(fā)出中斷請求,要求CPU進行實進行實時處理。時處理。(2 2)便于實時處理)便于實時處理11 對于單片機運行過程中出現(xiàn)的各對于單片機運行過程中出現(xiàn)的各種異常情況,如斷電、設(shè)備故障、運種

7、異常情況,如斷電、設(shè)備故障、運算出錯等故障,可通過中斷技術(shù)及時算出錯等故障,可通過中斷技術(shù)及時向向CPU申請中斷,以便進行自我診斷申請中斷,以便進行自我診斷并及時進行處理,從而提高系統(tǒng)的可并及時進行處理,從而提高系統(tǒng)的可靠性??啃?。(3 3)提高系統(tǒng)可靠性)提高系統(tǒng)可靠性125.1.2 5.1.2 中斷系統(tǒng)的結(jié)構(gòu)中斷系統(tǒng)的結(jié)構(gòu) MCS-51單片機中斷系統(tǒng)由中斷源、單片機中斷系統(tǒng)由中斷源、定時器定時器/計數(shù)器控制寄存器計數(shù)器控制寄存器TCON、串行、串行口控制寄存器口控制寄存器SCON、中斷允許控制寄、中斷允許控制寄存器存器IE、中斷優(yōu)先級控制寄存器、中斷優(yōu)先級控制寄存器IP以及以及中斷優(yōu)先級排

8、隊與查詢電路組成,如圖中斷優(yōu)先級排隊與查詢電路組成,如圖5-2所示。所示。13圖圖5-2 MCS-51單片機的中斷系統(tǒng)結(jié)構(gòu)單片機的中斷系統(tǒng)結(jié)構(gòu)MCS-51MCS-51單片機的中斷系統(tǒng)結(jié)構(gòu)單片機的中斷系統(tǒng)結(jié)構(gòu)圖圖5-2 MCS-51單片機的中斷系統(tǒng)結(jié)構(gòu)單片機的中斷系統(tǒng)結(jié)構(gòu)14 從圖從圖5-2可以看出,可以看出,MCS-51系列單片機的中斷系系列單片機的中斷系統(tǒng)有統(tǒng)有5個中斷源和個中斷源和2個優(yōu)先級。當中斷源產(chǎn)生中斷請求個優(yōu)先級。當中斷源產(chǎn)生中斷請求時,相應(yīng)的標志位置為時,相應(yīng)的標志位置為1,但中斷是否能被,但中斷是否能被CPU響應(yīng)響應(yīng),則要受中斷允許寄存器,則要受中斷允許寄存器IE的控制,的控制

9、,IE中的中的EA稱為稱為中斷中斷總控位總控位、其他位稱為中斷、其他位稱為中斷分控位分控位。對于允許響應(yīng)。對于允許響應(yīng)的中斷,通過中斷優(yōu)先級控制寄存器的中斷,通過中斷優(yōu)先級控制寄存器IP決定優(yōu)先級別決定優(yōu)先級別,并送到中斷優(yōu)先級排隊與查詢電路,并送到中斷優(yōu)先級排隊與查詢電路,CPU按照從高按照從高優(yōu)先級到低優(yōu)先級的順序進行查詢,首先響應(yīng)高優(yōu)先優(yōu)先級到低優(yōu)先級的順序進行查詢,首先響應(yīng)高優(yōu)先級的中斷請求,再響應(yīng)低優(yōu)先級的中斷請求。被級的中斷請求,再響應(yīng)低優(yōu)先級的中斷請求。被CPU響應(yīng)的中斷請求,其相應(yīng)的中斷入口地址器被自動送響應(yīng)的中斷請求,其相應(yīng)的中斷入口地址器被自動送到程序計數(shù)器到程序計數(shù)器PC

10、中,于是中,于是CPU便轉(zhuǎn)去執(zhí)行相應(yīng)的中便轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序。斷服務(wù)程序。說明:說明:155.1.3 5.1.3 中斷源中斷源 MCS-51單片機的單片機的5個中斷源分個中斷源分別為:別為:u 2個外部中斷個外部中斷u 2個定時器個定時器/計數(shù)器溢出中斷計數(shù)器溢出中斷u 1個串行口中斷個串行口中斷161 1外部中斷源外部中斷源( ( 、 ) ) 外部中斷外部中斷0和外部中斷和外部中斷1的中斷請的中斷請求信號,分別由外部中斷請求輸入引求信號,分別由外部中斷請求輸入引腳腳 (P3.2)、)、 (P3.3)輸)輸入,可以通過定時器入,可以通過定時器/計數(shù)器控制寄存計數(shù)器控制寄存器器TCON設(shè)

11、定為低電平觸發(fā)或負邊沿設(shè)定為低電平觸發(fā)或負邊沿觸發(fā)。觸發(fā)。INT0INT1INT1INT017 單片機內(nèi)部的單片機內(nèi)部的2個定時器個定時器/計數(shù)器計數(shù)器T0、T1是加是加1計數(shù)器,工作時可以對內(nèi)部計數(shù)器,工作時可以對內(nèi)部定時脈沖或者對從定時脈沖或者對從T0(P3.4)引腳或)引腳或T1(P3.5)引腳輸入的計數(shù)脈沖進行加法)引腳輸入的計數(shù)脈沖進行加法計數(shù),當計數(shù)狀態(tài)從計數(shù),當計數(shù)狀態(tài)從“全全1”加加1變?yōu)樽優(yōu)椤叭?”時,定時器時,定時器/計數(shù)器電路就會產(chǎn)生計數(shù)器電路就會產(chǎn)生溢出中斷請求信號。溢出中斷請求信號。2 2定時器定時器/ /計數(shù)器溢出中斷源(計數(shù)器溢出中斷源(T0T0、T1T1)18

12、 串行口中斷分為串行口串行口中斷分為串行口發(fā)送中斷發(fā)送中斷和和串行口串行口接收中斷接收中斷兩種,每當串行口發(fā)送兩種,每當串行口發(fā)送或接收完一組串行數(shù)據(jù)時,串行口電路或接收完一組串行數(shù)據(jù)時,串行口電路便會自動產(chǎn)生串行口中斷請求。便會自動產(chǎn)生串行口中斷請求。 但要區(qū)分是接收還是發(fā)送中斷請求但要區(qū)分是接收還是發(fā)送中斷請求,則需要通過對它們的中斷標志位,則需要通過對它們的中斷標志位RI、TI進行查詢才能知道。進行查詢才能知道。3串行口中斷源(串行口中斷源(RI或或TI)195.1.4 中斷請求標志中斷請求標志 為了能及時發(fā)現(xiàn)有無中斷源發(fā)出中為了能及時發(fā)現(xiàn)有無中斷源發(fā)出中斷請求,斷請求,MCS-51單片

13、機在時序中規(guī)定,單片機在時序中規(guī)定,CPU執(zhí)行程序過程中,總會在每個機器執(zhí)行程序過程中,總會在每個機器周期的周期的S5P2期間,對中斷系統(tǒng)的各個中期間,對中斷系統(tǒng)的各個中斷源進行取樣。當有中斷源發(fā)出中斷請斷源進行取樣。當有中斷源發(fā)出中斷請求時,就將對應(yīng)的中斷標志位置為求時,就將對應(yīng)的中斷標志位置為1,然,然后在下一個機器周期內(nèi)檢測這些中斷標后在下一個機器周期內(nèi)檢測這些中斷標志位的狀態(tài),以決定是否響應(yīng)該中斷。志位的狀態(tài),以決定是否響應(yīng)該中斷。201定時器定時器/計數(shù)器控制寄存器計數(shù)器控制寄存器TCON定時器定時器/計數(shù)器控制寄存器計數(shù)器控制寄存器TCON各位的定義如圖各位的定義如圖5-3所示。所

14、示。圖圖5-3 定時器定時器/計數(shù)器控制寄存器計數(shù)器控制寄存器TCON各位定義各位定義(1)IE0:外部中斷:外部中斷 中斷請求標志位。當中斷請求標志位。當CPU在每個在每個機器周期的機器周期的S5P2期間檢測到期間檢測到 引腳上的中斷請求有效時引腳上的中斷請求有效時,IE0由硬件自動置由硬件自動置1;當;當CPU響應(yīng)中斷請求進入相應(yīng)中斷服響應(yīng)中斷請求進入相應(yīng)中斷服務(wù)程序執(zhí)行時,務(wù)程序執(zhí)行時,IE0被自動復位。被自動復位。(2)IE1:外部中斷:外部中斷 中斷請求標志位。其控制作用和中斷請求標志位。其控制作用和IE0相同。相同。INT0INT0INT121(3)IT0:外部中斷:外部中斷 觸發(fā)

15、方式控制位。觸發(fā)方式控制位。當當IT0 = 1時,時, 為邊沿觸發(fā)方式(下降沿有效)。為邊沿觸發(fā)方式(下降沿有效)。CPU在在每個機器周期的每個機器周期的S5P2期間取樣期間取樣 引腳電平,如果在連續(xù)引腳電平,如果在連續(xù)的兩個機器周期檢測到的兩個機器周期檢測到 引腳由高電平變?yōu)榈碗娖?,即引腳由高電平變?yōu)榈碗娖?,即第一個周期取樣到第一個周期取樣到 =1,第二個周期取樣到,第二個周期取樣到 =0,則置則置IE0 = 1,產(chǎn)生中斷請求。在邊沿觸發(fā)方式下,產(chǎn)生中斷請求。在邊沿觸發(fā)方式下,CPU響應(yīng)響應(yīng)中斷時,由硬件自動清除中斷時,由硬件自動清除IE0標志。但應(yīng)注意,為保證標志。但應(yīng)注意,為保證CPU

16、能能檢測到負跳變,檢測到負跳變, 上的低電平持續(xù)時間至少應(yīng)保持上的低電平持續(xù)時間至少應(yīng)保持1個機個機器周期。器周期。當當IT0=0時,時, 為電平觸發(fā)方式。為電平觸發(fā)方式。CPU在每個機器周期的在每個機器周期的S5P2取樣取樣 引腳電平,當取樣到低電平時,置引腳電平,當取樣到低電平時,置IE0=表表示示 向向CPU請求中斷;取樣到高電平時,將請求中斷;取樣到高電平時,將IE0清清0。 INT0INT0INT0INT0INT0INT0INT0INT0INT0INT022 值得注意的是,在電平觸發(fā)方式下,盡管值得注意的是,在電平觸發(fā)方式下,盡管CPU響應(yīng)中斷時,相應(yīng)中斷標志響應(yīng)中斷時,相應(yīng)中斷標志

17、IE0或或IE1能自能自動復位成動復位成0狀態(tài),但若外部中斷源不能及時撤狀態(tài),但若外部中斷源不能及時撤除它在除它在 或或 上的低電平,就會上的低電平,就會再次使已經(jīng)變再次使已經(jīng)變0的中斷標志的中斷標志IE0或或IE1置置1,這是,這是絕對不允許的。因此,電平觸發(fā)型外部中斷請絕對不允許的。因此,電平觸發(fā)型外部中斷請 求的撤除必須使求的撤除必須使 或或 上的低電平上的低電平隨其中斷被隨其中斷被CPU響應(yīng)而變?yōu)楦唠娖?。響?yīng)而變?yōu)楦唠娖健NT0INT0INT1INT123 由圖由圖5-4可見,可見,當外部中斷源產(chǎn)生中當外部中斷源產(chǎn)生中斷請求時,斷請求時,D觸發(fā)器觸發(fā)器被觸發(fā),其端輸出低被觸發(fā),其端輸

18、出低電平并送到單片機的電平并送到單片機的 引腳,該低引腳,該低電平被單片機電平被單片機CPU檢檢測到后就使中斷標志測到后就使中斷標志IE0置置1,CPU響應(yīng)響應(yīng) 中斷請求便可轉(zhuǎn)去執(zhí)中斷請求便可轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。行中斷服務(wù)程序。 圖圖5-4 電平觸發(fā)方式的外電平觸發(fā)方式的外部中斷請求撤除電路部中斷請求撤除電路INT0電平觸發(fā)方式的外部中斷請求撤除電路電平觸發(fā)方式的外部中斷請求撤除電路24 CPU執(zhí)行上述執(zhí)行上述 的中斷服務(wù)程序時,可在的中斷服務(wù)程序時,可在P1.0上產(chǎn)生一個寬度為上產(chǎn)生一個寬度為2個機器周期的負脈沖。在該負脈沖個機器周期的負脈沖。在該負脈沖作用下,作用下,D觸發(fā)器的端被置位成

19、觸發(fā)器的端被置位成l狀態(tài),狀態(tài), 上的電上的電平因此而變高,從而撤除了其上的中斷請求。平因此而變高,從而撤除了其上的中斷請求。 為了撤除上為了撤除上 的低電平,可以在的低電平,可以在 中中斷服務(wù)程序開頭加上如下指令。斷服務(wù)程序開頭加上如下指令。INTSUB:ANLP1,#0FE; P1.0=0 ORLP1,#01H; P1.0=1 CLRIE0 RETI INT0INT0INT0INT025(4)IT1:外部中斷:外部中斷 觸發(fā)方式控制位。其控制觸發(fā)方式控制位。其控制功能、注意事項與功能、注意事項與IT0相同。相同。(5)TF0:定時器:定時器/計數(shù)器計數(shù)器T0溢出中斷請求標志位。溢出中斷請求

20、標志位。T0啟動后便從初值開始進行加啟動后便從初值開始進行加1計數(shù),直至最高位產(chǎn)計數(shù),直至最高位產(chǎn)生溢出時,向生溢出時,向CPU發(fā)出溢出中斷請求,發(fā)出溢出中斷請求,CPU檢測到中檢測到中斷請求后,由硬件將斷請求后,由硬件將TF0置位。置位。CPU響應(yīng)中斷時,由響應(yīng)中斷時,由硬件自動將硬件自動將TF0復位為復位為0。(6)TF1:定時器:定時器/計數(shù)器計數(shù)器T1溢出中斷請求標志位。溢出中斷請求標志位。其控制功能與其控制功能與TF0類似。類似。(7)TR0、TR1:定時器:定時器/計數(shù)器的啟計數(shù)器的啟/??刂莆唬▽⑼?刂莆唬▽⒃诘谠诘?章中介紹)。章中介紹)。INT1262串行口控制寄存器串行口控

21、制寄存器SCON 串行口控制寄存器串行口控制寄存器SCON各位的定義如圖各位的定義如圖5-5所示所示 圖圖5-5 串行口控制寄存器各位的定義串行口控制寄存器各位的定義 (1)RI:串行口接收中斷標志位。當允許串行口接收數(shù)據(jù):串行口接收中斷標志位。當允許串行口接收數(shù)據(jù)時,每接收完一個串行數(shù)據(jù)幀,串行口電路便將時,每接收完一個串行數(shù)據(jù)幀,串行口電路便將RI置位,置位,向向CPU發(fā)出串行口中斷請求。發(fā)出串行口中斷請求。(2)TI:串行口發(fā)送中斷標志位。當:串行口發(fā)送中斷標志位。當CPU 將一個發(fā)送數(shù)將一個發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時,就啟動了發(fā)送過程。每發(fā)送據(jù)寫入串行口發(fā)送緩沖器時,就啟動了發(fā)送過

22、程。每發(fā)送完一個串行數(shù)據(jù)幀,串行口電路便將完一個串行數(shù)據(jù)幀,串行口電路便將TI置位,向置位,向CPU發(fā)出發(fā)出串行口中斷請求。串行口中斷請求。27 CPU響應(yīng)串行口中斷后,中斷系統(tǒng)不會通過硬件響應(yīng)串行口中斷后,中斷系統(tǒng)不會通過硬件電路自動將電路自動將RI或或TI復位,而必須在串行口中斷服務(wù)復位,而必須在串行口中斷服務(wù)程序中通過軟件對它們進行清除。這是因為程序中通過軟件對它們進行清除。這是因為MCS-51單片機的串行口中斷是由單片機的串行口中斷是由RI和和TI所共用的,因此,所共用的,因此,進入串行口中斷服務(wù)程序后,常需要對它們進行檢測進入串行口中斷服務(wù)程序后,常需要對它們進行檢測,以確定發(fā)生的串

23、行口中斷到底是接收中斷還是發(fā)送,以確定發(fā)生的串行口中斷到底是接收中斷還是發(fā)送中斷。為了防止中斷。為了防止CPU再次響應(yīng)這類中斷,應(yīng)在中斷服再次響應(yīng)這類中斷,應(yīng)在中斷服務(wù)程序的適當位置通過如下位操作指令將它們撤除。務(wù)程序的適當位置通過如下位操作指令將它們撤除。CLR RI; 撤除接收中斷標志撤除接收中斷標志CLR TI; 撤除發(fā)送中斷標志撤除發(fā)送中斷標志說明:說明: 28 若采用字節(jié)操作指令,則指令如下:若采用字節(jié)操作指令,則指令如下:ANL SCON, #0FCH ; 撤除發(fā)送和接收撤除發(fā)送和接收 中斷標志,其余控制位不變中斷標志,其余控制位不變(3)SCON其余各位將在第其余各位將在第9章中

24、介紹。章中介紹。 單片機復位后,單片機復位后,TCON和和SCON各位均被清各位均被清0。另外,所有的中斷請求標志位均可由軟件置。另外,所有的中斷請求標志位均可由軟件置1或清或清0,獲得的效果與硬件置,獲得的效果與硬件置1或清或清0相同。相同。295.2 MCS-51的中斷控制的中斷控制5.2.1 中斷允許控制中斷允許控制5.2.2 中斷優(yōu)先級控制中斷優(yōu)先級控制5.2.3 中斷嵌套中斷嵌套305.2.1 中斷允許控制中斷允許控制 MCS-51單片機的中斷系統(tǒng)通過中斷允許控制單片機的中斷系統(tǒng)通過中斷允許控制寄存器寄存器IE對所有中斷以及某個中斷源進行中斷允許對所有中斷以及某個中斷源進行中斷允許控

25、制??刂啤E中設(shè)置有中斷允許總控位和各個中斷源的中設(shè)置有中斷允許總控位和各個中斷源的分控位,這些位的狀態(tài)可以通過程序由軟件設(shè)定,分控位,這些位的狀態(tài)可以通過程序由軟件設(shè)定,只有當總控位和分控位都為只有當總控位和分控位都為1時,相應(yīng)的中斷源才被時,相應(yīng)的中斷源才被允許(參見圖允許(參見圖5-2)。單片機開機)。單片機開機/復位時,復位時,IE各位各位被復位為被復位為0,處于關(guān)閉所有中斷的狀態(tài)。所以需要用,處于關(guān)閉所有中斷的狀態(tài)。所以需要用到某個中斷源時,必須通過指令使到某個中斷源時,必須通過指令使IE開放所需中斷開放所需中斷,才能使相應(yīng)的中斷請求發(fā)生時能為,才能使相應(yīng)的中斷請求發(fā)生時能為CPU

26、所響應(yīng)。所響應(yīng)。 31圖圖5-6 中斷允許控制寄存器中斷允許控制寄存器IE各位的定義各位的定義(1)EA:中斷允許總控位。:中斷允許總控位。EA= 0時,關(guān)閉所有時,關(guān)閉所有中斷源的中斷請求;中斷源的中斷請求;EA=1時,開放所有中斷源的時,開放所有中斷源的中斷允許總控,但它們的中斷請求最終能否為中斷允許總控,但它們的中斷請求最終能否為CPU響應(yīng)還要取決于響應(yīng)還要取決于IE中相應(yīng)中斷源的中斷允許分控位中相應(yīng)中斷源的中斷允許分控位的狀態(tài)。的狀態(tài)。中斷允許控制寄存器中斷允許控制寄存器IE各位的定義:各位的定義:32(2)EX0:外部中斷:外部中斷 的中斷允許位。的中斷允許位。EX0=0時,時, 的

27、中斷請求被關(guān)閉;的中斷請求被關(guān)閉;EX0=1時,時, 的中斷請求被允許,但的中斷請求被允許,但CPU最終最終能否響應(yīng)的中斷請求還要取決于能否響應(yīng)的中斷請求還要取決于IE中的中斷中的中斷允許總控位允許總控位EA的狀態(tài)。的狀態(tài)。(3)EX1:外部中斷:外部中斷 的中斷允許位。的中斷允許位。控制功能與控制功能與EX0相同。相同。INT0INT1INT0INT033(4)ET0:定時器:定時器/計數(shù)器計數(shù)器T0中斷允許位。中斷允許位。ET0=0時,時,T0的中斷請求被關(guān)閉;的中斷請求被關(guān)閉;ET0=1,且且EA=1時,時,T0的中斷請求被允許。的中斷請求被允許。(5)ET1:定時器:定時器/計數(shù)器計數(shù)

28、器T1中斷允許位。中斷允許位??刂乒δ芘c控制功能與ET0類同。類同。(6)ES:串行口中斷允許位。:串行口中斷允許位。ES=0時,串時,串行口的中斷請求被關(guān)閉;行口的中斷請求被關(guān)閉;ES=1,且,且EA=1時時,串行口的中斷請求被允許。,串行口的中斷請求被允許。345.2.2 中斷優(yōu)先級控制中斷優(yōu)先級控制 MCS-51單片機有兩個中斷優(yōu)先級,由中斷單片機有兩個中斷優(yōu)先級,由中斷優(yōu)先級控制寄存器優(yōu)先級控制寄存器IP進行設(shè)置。進行設(shè)置。IP中的控制位中的控制位與各中斷源一一對應(yīng)。與各中斷源一一對應(yīng)。 當當IP中的某一控制位的狀態(tài)設(shè)定為中的某一控制位的狀態(tài)設(shè)定為1時,時,與之相應(yīng)的中斷源為高優(yōu)先級中

29、斷;與之相應(yīng)的中斷源為高優(yōu)先級中斷; 設(shè)定為設(shè)定為0時,相應(yīng)的中斷源為低優(yōu)先級中時,相應(yīng)的中斷源為低優(yōu)先級中斷(參見圖斷(參見圖5-2)。)。 單片機開機單片機開機/復位時,復位時,IP各位清各位清0,各中斷,各中斷源均為低優(yōu)先級中斷。源均為低優(yōu)先級中斷。35圖圖5-7 中斷優(yōu)先級控制寄存器中斷優(yōu)先級控制寄存器IP各位的定義各位的定義 (1)PX0:外部中斷:外部中斷 中斷優(yōu)先級設(shè)定位。中斷優(yōu)先級設(shè)定位。(2)PT0:定時器:定時器/計數(shù)器計數(shù)器T0中斷優(yōu)先級設(shè)定位。中斷優(yōu)先級設(shè)定位。(3)PX1:外部中斷:外部中斷 中斷優(yōu)先級設(shè)定位。中斷優(yōu)先級設(shè)定位。(4)PT1:定時器:定時器/計數(shù)器計數(shù)

30、器T1中斷優(yōu)先級設(shè)定位。中斷優(yōu)先級設(shè)定位。(5)PS:串行口中斷優(yōu)先級設(shè)定位。:串行口中斷優(yōu)先級設(shè)定位。INT0INT1中斷優(yōu)先級控制寄存器中斷優(yōu)先級控制寄存器IP各位的定義:各位的定義:36 同級優(yōu)先排隊順序由中斷系統(tǒng)硬件電路進行固定的同級優(yōu)先排隊順序由中斷系統(tǒng)硬件電路進行固定的設(shè)置,從高到低依次排列為:外部中斷設(shè)置,從高到低依次排列為:外部中斷0( )、定)、定時器時器/計數(shù)器計數(shù)器0(T0)、外部中斷)、外部中斷1( )、定時器)、定時器/計數(shù)器計數(shù)器1(T1)、串行口)、串行口RI或或TI,如表,如表5-1所示。所示。INT0INT1同級優(yōu)先順序:同級優(yōu)先順序:中中 斷斷 源源同級優(yōu)先

31、順序同級優(yōu)先順序外部中斷外部中斷0( )低低高高定時器定時器/計數(shù)器計數(shù)器0溢出中斷(溢出中斷(T0)外部中斷外部中斷1( )定時器定時器/計數(shù)器計數(shù)器1溢出中斷(溢出中斷(T1)串行口中斷(串行口中斷(TI或或RI)INT1INT0375.2.3 中斷嵌套中斷嵌套 MCS-51單片機對中斷優(yōu)先級的處理按如下單片機對中斷優(yōu)先級的處理按如下3條原條原則進行。則進行。(1)CPU同時接收到幾個中斷時,首先響應(yīng)優(yōu)先級同時接收到幾個中斷時,首先響應(yīng)優(yōu)先級最高的中斷請求。最高的中斷請求。(2)正在執(zhí)行的中斷過程不能被新的同級或低優(yōu)先)正在執(zhí)行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷。級的中斷請

32、求所中斷。(3)正在執(zhí)行的低優(yōu)先級中斷服務(wù),能被高優(yōu)先級)正在執(zhí)行的低優(yōu)先級中斷服務(wù),能被高優(yōu)先級的中斷請求所中斷。的中斷請求所中斷。 實現(xiàn)上述第三條原則的過程稱為實現(xiàn)上述第三條原則的過程稱為中斷嵌套中斷嵌套。38中斷嵌套條件:中斷嵌套條件: 首先是中斷服務(wù)首先是中斷服務(wù)程序中沒有關(guān)閉中斷程序中沒有關(guān)閉中斷,中斷系統(tǒng)處于開中,中斷系統(tǒng)處于開中斷狀態(tài);斷狀態(tài); 其次要有中斷優(yōu)其次要有中斷優(yōu)先級更高的中斷請求先級更高的中斷請求發(fā)生。發(fā)生。 只要條件成立,只要條件成立,這樣的嵌套可以發(fā)生這樣的嵌套可以發(fā)生多次。多次。圖圖5-8 中斷嵌套示意圖中斷嵌套示意圖 中斷嵌套示意圖與嵌套條件中斷嵌套示意圖與嵌

33、套條件395.3 MCS-51的中斷處理的中斷處理5.3.1 中斷響應(yīng)條件中斷響應(yīng)條件5.3.2 中斷響應(yīng)過程中斷響應(yīng)過程5.3.3 中斷響應(yīng)時間中斷響應(yīng)時間5.3.4 中斷的初始化中斷的初始化40(1)中斷系統(tǒng)為開中斷狀態(tài)(即中斷允許總控位)中斷系統(tǒng)為開中斷狀態(tài)(即中斷允許總控位EA=1,且相應(yīng)中斷源的中斷允許分控位為,且相應(yīng)中斷源的中斷允許分控位為1)。)。(2)中斷源發(fā)出中斷請求。)中斷源發(fā)出中斷請求。(3)沒有同優(yōu)先級或高優(yōu)先級的中斷正在處理。)沒有同優(yōu)先級或高優(yōu)先級的中斷正在處理。(4)現(xiàn)行的單條指令已經(jīng)執(zhí)行完畢(保證單條指令)現(xiàn)行的單條指令已經(jīng)執(zhí)行完畢(保證單條指令在執(zhí)行過程中不會

34、被中途打斷)。在執(zhí)行過程中不會被中途打斷)。(5)若)若CPU正在執(zhí)行的指令是正在執(zhí)行的指令是RET、RETI或任何訪或任何訪問特殊功能寄存器問特殊功能寄存器IE或或IP的指令,則在當前指令執(zhí)行的指令,則在當前指令執(zhí)行完后,還要緊接著再執(zhí)行完下一條指令。完后,還要緊接著再執(zhí)行完下一條指令。5.3.1 中斷響應(yīng)條件中斷響應(yīng)條件415.3.2 中斷響應(yīng)過程中斷響應(yīng)過程(1)將與被響應(yīng)中斷源對應(yīng)的中斷優(yōu)先級狀態(tài)觸發(fā))將與被響應(yīng)中斷源對應(yīng)的中斷優(yōu)先級狀態(tài)觸發(fā)器置器置1,以阻止后來的同級或低級的中斷請求。,以阻止后來的同級或低級的中斷請求。(2)撤除所響應(yīng)中斷源的中斷標志(復位為)撤除所響應(yīng)中斷源的中斷

35、標志(復位為0),),以防止以防止CPU因中斷標志未能得到及時撤除而重復響因中斷標志未能得到及時撤除而重復響應(yīng)同一中斷請求。應(yīng)同一中斷請求。 撤除方法撤除方法是:外部中斷或定時器是:外部中斷或定時器/計數(shù)器的中斷計數(shù)器的中斷標志由硬件自動撤除;串口中斷則需在中斷服務(wù)程標志由硬件自動撤除;串口中斷則需在中斷服務(wù)程序中通過如下指令撤除。序中通過如下指令撤除。CLRTI; 撤除發(fā)送中斷撤除發(fā)送中斷CLRRI; 撤除接收中斷撤除接收中斷42(3)執(zhí)行一條由中斷系統(tǒng)硬件電路提供的)執(zhí)行一條由中斷系統(tǒng)硬件電路提供的LCALL指令。指令。 該指令的轉(zhuǎn)移地址就是被響應(yīng)中斷源的該指令的轉(zhuǎn)移地址就是被響應(yīng)中斷源的

36、中斷服務(wù)程序入口地址(見表中斷服務(wù)程序入口地址(見表5-2)。執(zhí)行這)。執(zhí)行這條指令時,先把斷點(發(fā)生中斷的當前指令條指令時,先把斷點(發(fā)生中斷的當前指令的下一條指令首地址)壓入堆棧,以便中斷的下一條指令首地址)壓入堆棧,以便中斷返回時使用;然后將相應(yīng)的中斷服務(wù)程序入返回時使用;然后將相應(yīng)的中斷服務(wù)程序入口地址送入口地址送入PC,于是,于是CPU轉(zhuǎn)去執(zhí)行相應(yīng)的中轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序。斷服務(wù)程序。43表表5-2 MCS-51單片機的中斷服務(wù)程序入口地址單片機的中斷服務(wù)程序入口地址中斷服務(wù)程序入口地址中斷服務(wù)程序入口地址中中 斷斷 源源入入 口口 地地 址址外部中斷外部中斷0( )0003H

37、定時器定時器/計數(shù)器計數(shù)器0溢出中斷(溢出中斷(T0)000BH外部中斷外部中斷0( )0013H定時器定時器/計數(shù)器計數(shù)器1溢出中斷(溢出中斷(T1)001BH串行口中斷(串行口中斷(TI或或RI)0023HINT0INT144(4)執(zhí)行到中斷服務(wù)程序的最后一條)執(zhí)行到中斷服務(wù)程序的最后一條指令指令中斷返回指令中斷返回指令RETI時,首先時,首先將響應(yīng)中斷時壓入堆棧保存的斷點地將響應(yīng)中斷時壓入堆棧保存的斷點地址從堆棧彈出到址從堆棧彈出到PC,使,使CPU從原來中從原來中斷的地方繼續(xù)執(zhí)行程序;然后將與已斷的地方繼續(xù)執(zhí)行程序;然后將與已響應(yīng)中斷源對應(yīng)的中斷優(yōu)先級狀態(tài)觸響應(yīng)中斷源對應(yīng)的中斷優(yōu)先級狀

38、態(tài)觸發(fā)器清發(fā)器清0,通知中斷系統(tǒng),該中斷服務(wù),通知中斷系統(tǒng),該中斷服務(wù)程序已執(zhí)行完畢,在沒有更高級別的程序已執(zhí)行完畢,在沒有更高級別的中斷請求發(fā)生時,允許中斷請求發(fā)生時,允許CPU響應(yīng)同優(yōu)響應(yīng)同優(yōu)先級別或低優(yōu)先級的中斷請求。先級別或低優(yōu)先級的中斷請求。45(1)不能用)不能用RET指令代替指令代替RETI指令。因為指令。因為RET指令指令雖然也能控制雖然也能控制PC返回原來中斷的地方,但返回原來中斷的地方,但RET指令指令沒有對中斷優(yōu)先級狀態(tài)觸發(fā)器進行清零的功能,中斷沒有對中斷優(yōu)先級狀態(tài)觸發(fā)器進行清零的功能,中斷控制系統(tǒng)就會認為所響應(yīng)的中斷仍在進行,其后果是控制系統(tǒng)就會認為所響應(yīng)的中斷仍在進行

39、,其后果是使與此中斷同級的中斷請求將不被響應(yīng)。所以中斷服使與此中斷同級的中斷請求將不被響應(yīng)。所以中斷服務(wù)程序結(jié)束時必須使用務(wù)程序結(jié)束時必須使用RETI指令實現(xiàn)中斷返回。指令實現(xiàn)中斷返回。(2)若用戶在中斷服務(wù)程序中進行了入棧操作,則)若用戶在中斷服務(wù)程序中進行了入棧操作,則在在 RETI 指令執(zhí)行前,應(yīng)進行相應(yīng)的出棧操作,使棧指令執(zhí)行前,應(yīng)進行相應(yīng)的出棧操作,使棧頂指針頂指針SP與保護斷點后的值相同,即在中斷服務(wù)程與保護斷點后的值相同,即在中斷服務(wù)程序中,序中,PUSH指令與指令與POP指令必須成對使用,否則不指令必須成對使用,否則不能正確返回斷點。能正確返回斷點。編寫中斷服務(wù)程序注意事項編寫

40、中斷服務(wù)程序注意事項46(3)從表)從表5-2中可以看出,中可以看出,MCS-51單片機的兩個相單片機的兩個相鄰中斷源的中斷服務(wù)程序入口地址相距只有鄰中斷源的中斷服務(wù)程序入口地址相距只有8個單元個單元的空間,一般情況下,的空間,一般情況下,8個地址單元是不足以容納一個地址單元是不足以容納一個中斷服務(wù)程序的。因此,除非中斷服務(wù)程序特別個中斷服務(wù)程序的。因此,除非中斷服務(wù)程序特別簡單,可以直接安排在這幾個單元中,否則,通常簡單,可以直接安排在這幾個單元中,否則,通常是在相應(yīng)的中斷服務(wù)程序入口地址單元放置一條無是在相應(yīng)的中斷服務(wù)程序入口地址單元放置一條無條件長轉(zhuǎn)移指令條件長轉(zhuǎn)移指令LJMP,用以轉(zhuǎn)移

41、到另外安排的中,用以轉(zhuǎn)移到另外安排的中斷服務(wù)程序入口,這樣可以將中斷服務(wù)程序靈活地斷服務(wù)程序入口,這樣可以將中斷服務(wù)程序靈活地安排在安排在64KB程序存儲器的任何地方。當然,若在程序存儲器的任何地方。當然,若在2KB范圍內(nèi)轉(zhuǎn)移,則可用范圍內(nèi)轉(zhuǎn)移,則可用AJMP指令。指令。47 3 ORG 0003H4 LJMP BREAK0 ; 轉(zhuǎn)轉(zhuǎn) 中斷中斷5 ORG 000BH6 LJMP CLOCK ; 轉(zhuǎn)定時器轉(zhuǎn)定時器T0中斷中斷7 ORG 0013H8 LJMP BREAK1 ; 轉(zhuǎn)轉(zhuǎn) 中斷中斷 24 BREAK0:CLR EX0; 關(guān)閉關(guān)閉 中斷中斷 35 SETB EX0 ; 開放開放 中斷中斷

42、36 RETI; 中斷返回中斷返回 INT0INT0INT1INT0【項目應(yīng)用】【項目應(yīng)用】以下是應(yīng)用項目中的中斷服務(wù)程序以下是應(yīng)用項目中的中斷服務(wù)程序入口地址所使用的無條件長轉(zhuǎn)移指令。入口地址所使用的無條件長轉(zhuǎn)移指令。 4837 BREAKl:CLR EXl ; 關(guān)閉關(guān)閉 中斷中斷 48 SETB EXl; 開放開放 中斷中斷49 RETI; 中斷返回中斷返回 85 CLOCK:PUSH PSW; 保護現(xiàn)場保護現(xiàn)場86 PUSH ACC 108 DONE1:POP ACC; 恢復現(xiàn)場恢復現(xiàn)場109 POP PSW110 RETI; 中斷返回中斷返回INT1INT149 進入和進入和 中斷服務(wù)

43、程序時,首先使用中斷服務(wù)程序時,首先使用CLR EX0和和CLR EX1指令,暫時關(guān)閉相應(yīng)指令,暫時關(guān)閉相應(yīng)的中斷,在中斷返回前,再使用的中斷,在中斷返回前,再使用SETB EX0和和SETB EX1指令開放相應(yīng)的中斷,其目的指令開放相應(yīng)的中斷,其目的是為了保證每按下一次時間調(diào)校按鈕時,只是為了保證每按下一次時間調(diào)校按鈕時,只響應(yīng)一次中斷。響應(yīng)一次中斷。 進入進入T0中斷服務(wù)程序時,首先使用指令保中斷服務(wù)程序時,首先使用指令保護現(xiàn)場,在中斷服務(wù)之后、中斷返回前,再護現(xiàn)場,在中斷服務(wù)之后、中斷返回前,再恢復現(xiàn)場,以防止中斷返回后丟失原寄存器恢復現(xiàn)場,以防止中斷返回后丟失原寄存器的內(nèi)容。的內(nèi)容。

44、INT0說明:說明:505.3.3 中斷響應(yīng)時間中斷響應(yīng)時間 中斷響應(yīng)時間指的是從中斷源發(fā)中斷響應(yīng)時間指的是從中斷源發(fā)出中斷請求,到出中斷請求,到CPU響應(yīng)中斷需要經(jīng)響應(yīng)中斷需要經(jīng)歷的時間。在單片機的實時控制系統(tǒng)歷的時間。在單片機的實時控制系統(tǒng)中,為了滿足控制速度的要求,需要中,為了滿足控制速度的要求,需要明確知道明確知道CPU響應(yīng)中斷所需的時間。響應(yīng)中斷所需的時間。51 下面通過下面通過MCS-51單片機的中斷響應(yīng)時序(如圖單片機的中斷響應(yīng)時序(如圖5-9所示),對中斷響應(yīng)時間進行分析。所示),對中斷響應(yīng)時間進行分析。圖圖5-9 中斷響應(yīng)時序中斷響應(yīng)時序 中斷響應(yīng)時序中斷響應(yīng)時序52 假定某

45、中斷在圖假定某中斷在圖5-9中中M1周期的周期的S5P2前生效,在前生效,在S5P2期間,其中斷請求被期間,其中斷請求被CPU查詢到,并將相應(yīng)的查詢到,并將相應(yīng)的標志位置標志位置1。若下一個機器周期。若下一個機器周期M2恰好是當前指令的恰好是當前指令的最后一個機器周期,且該指令不是最后一個機器周期,且該指令不是RET、RETI或訪或訪問問IE、IP的指令,的指令,CPU便可以在后面的兩個機器周期便可以在后面的兩個機器周期M3和和M4里執(zhí)行硬件里執(zhí)行硬件LCALL指令,在指令,在M5周期將轉(zhuǎn)入周期將轉(zhuǎn)入相應(yīng)中斷入口地址執(zhí)行中斷服務(wù)程序。相應(yīng)中斷入口地址執(zhí)行中斷服務(wù)程序。 可見,可見,MCS-51

46、的中斷響應(yīng)時間(從中斷標志位的中斷響應(yīng)時間(從中斷標志位置置1到進入相應(yīng)的中斷服務(wù)程序)至少需要到進入相應(yīng)的中斷服務(wù)程序)至少需要3個完整的個完整的機器周期。機器周期。中斷響應(yīng)時間分析中斷響應(yīng)時間分析53 若發(fā)生如下情況,就要增加中斷響應(yīng)等待時間。若發(fā)生如下情況,就要增加中斷響應(yīng)等待時間。(1)若標志查詢周期不是正在執(zhí)行指令的最后機器周)若標志查詢周期不是正在執(zhí)行指令的最后機器周期,需增加期,需增加13個機器周期,因為個機器周期,因為MCS-51指令系統(tǒng)中指令系統(tǒng)中,執(zhí)行時間最長的乘法、除法指令,執(zhí)行時間最長的乘法、除法指令MUL和和DIV也只需也只需要要4個機器周期。個機器周期。(2)若標志

47、查詢周期恰逢)若標志查詢周期恰逢CPU執(zhí)行執(zhí)行RET、RETI或訪或訪問問IE、IP指令,而這類指令之后又緊跟著指令,而這類指令之后又緊跟著MUL或或DIV指令,則需多用指令,則需多用1個機器周期完成正在執(zhí)行的指令,再個機器周期完成正在執(zhí)行的指令,再加上執(zhí)行加上執(zhí)行MUL或或DIV指令需用指令需用4個機器周期。所以這種個機器周期。所以這種情況下,需要附加的等待時間不會超過情況下,需要附加的等待時間不會超過5個機器周期。個機器周期。中斷響應(yīng)時間分析中斷響應(yīng)時間分析54由此可見:由此可見: 對于沒有嵌套的單級中斷,響對于沒有嵌套的單級中斷,響應(yīng)時間為應(yīng)時間為38個機器周期。個機器周期。 若若CPU

48、正在響應(yīng)同級或高級中正在響應(yīng)同級或高級中斷,則所需要的附加等待時間取決于斷,則所需要的附加等待時間取決于正在執(zhí)行的中斷服務(wù)程序的長短,中正在執(zhí)行的中斷服務(wù)程序的長短,中斷響應(yīng)時間不確定。斷響應(yīng)時間不確定。中斷響應(yīng)時間分析中斷響應(yīng)時間分析555.3.4 中斷的初始化中斷的初始化 中斷系統(tǒng)的初始化指的是用戶根據(jù)各中中斷系統(tǒng)的初始化指的是用戶根據(jù)各中斷源的具體要求,對與中斷控制有關(guān)的特殊斷源的具體要求,對與中斷控制有關(guān)的特殊功能寄存器中的各控制位進行賦值,其基本功能寄存器中的各控制位進行賦值,其基本步驟如下。步驟如下。(1)開放相應(yīng)中斷源的中斷。)開放相應(yīng)中斷源的中斷。(2)設(shè)定所用中斷源的中斷優(yōu)先

49、級。)設(shè)定所用中斷源的中斷優(yōu)先級。(3)若為外部中斷,則應(yīng)規(guī)定其為低電平還)若為外部中斷,則應(yīng)規(guī)定其為低電平還是負邊沿的中斷觸發(fā)方式。是負邊沿的中斷觸發(fā)方式。56 10MAIN: 20 MOV IE,#87H ;允許中斷;允許中斷 【項目應(yīng)用】【項目應(yīng)用】在應(yīng)用項目中用到的在應(yīng)用項目中用到的3個中斷源,分個中斷源,分別是外部中斷、和定時器別是外部中斷、和定時器T0中斷。以下是應(yīng)用項目中斷。以下是應(yīng)用項目中的中斷初始化程序。中的中斷初始化程序。57 執(zhí)行執(zhí)行MOV IE,#87H指令后,(指令后,(IE)=1000 0111B,即即EA=1、EX1=1、ET0=1、EX0=1,令中斷系統(tǒng)開放總,

50、令中斷系統(tǒng)開放總中斷以及開放外部中斷中斷以及開放外部中斷1、外部中斷、外部中斷0和定時器和定時器T0溢出中溢出中斷。程序中沒有對斷。程序中沒有對IT0、IT1和和IP中的各位進行置位,所中的各位進行置位,所以外部中斷的觸發(fā)方式選擇為電平觸發(fā)方式;中斷優(yōu)先以外部中斷的觸發(fā)方式選擇為電平觸發(fā)方式;中斷優(yōu)先級全部為低優(yōu)先級。當然,也可以使用位操作指令實現(xiàn)級全部為低優(yōu)先級。當然,也可以使用位操作指令實現(xiàn)上述功能,將程序改為:上述功能,將程序改為:SETBEA;開放總中斷;開放總中斷SETBEX1;開放外部中斷;開放外部中斷1SETBET0;開放定時器;開放定時器T0中斷中斷SETBEX0;開放外部中斷

51、;開放外部中斷0說明:說明:585.4 MCS-51外部中斷源的擴展外部中斷源的擴展 當實際的單片機應(yīng)用系統(tǒng)需要用到兩個以上當實際的單片機應(yīng)用系統(tǒng)需要用到兩個以上的外部中斷源時,就需要對單片機的外部中斷源的外部中斷源時,就需要對單片機的外部中斷源進行擴展。擴展的方法通常有以下進行擴展。擴展的方法通常有以下3種。種。(1)借用定時器溢出中斷擴展外部中斷源。)借用定時器溢出中斷擴展外部中斷源。(2)采用查詢法擴展外部中斷源。)采用查詢法擴展外部中斷源。(3)采用外接可編程中斷擴展芯片(如)采用外接可編程中斷擴展芯片(如8259中中斷控制器)擴展外部中斷源。斷控制器)擴展外部中斷源。 第一種方法將在

52、第第一種方法將在第6章中加以介紹。第三種章中加以介紹。第三種方法限于篇幅不作介紹,讀者可參考有關(guān)書籍。方法限于篇幅不作介紹,讀者可參考有關(guān)書籍。下面僅對采用查詢法擴展外部中斷源通過舉例子下面僅對采用查詢法擴展外部中斷源通過舉例子進行說明。進行說明。59 假設(shè)某個單片機應(yīng)用系統(tǒng)共有假設(shè)某個單片機應(yīng)用系統(tǒng)共有5個個外部中斷源,中斷優(yōu)先級由高到低的排外部中斷源,中斷優(yōu)先級由高到低的排隊順序為:隊順序為:IRQ0、IRQ1、IRQ2、IRQ3、IRQ4。試設(shè)計它們與。試設(shè)計它們與8051單片單片機進行連接的硬件電路與相應(yīng)的中斷服機進行連接的硬件電路與相應(yīng)的中斷服務(wù)程序。務(wù)程序。 【例【例5-1】60(

53、1)硬件)硬件電路設(shè)計電路設(shè)計 采 用 查采 用 查詢法擴展外詢法擴展外部中斷源的部中斷源的一種硬件電一種硬件電路如圖路如圖5-10所示。所示。圖圖5-10 采用查詢法擴展外部采用查詢法擴展外部中斷源的硬件電路中斷源的硬件電路解:解: 61 在圖在圖5-10中,根據(jù)題目要求的中斷優(yōu)先級,將最高中,根據(jù)題目要求的中斷優(yōu)先級,將最高優(yōu)先級的中斷源優(yōu)先級的中斷源IRQ0直接經(jīng)非門接到輸入端,其余直接經(jīng)非門接到輸入端,其余的的IRQ1IRQ4 經(jīng)由集電極開路的非門所構(gòu)成的或非經(jīng)由集電極開路的非門所構(gòu)成的或非電路接到端并分別與電路接到端并分別與P1.0P1.3相連。當相連。當IRQ1IRQ4中有一個或多個輸入中斷信號(高電平)時,中有一個或多個輸入中斷信號(高電平)時,都會通過

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論