版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 MCS51 MCS51有了存儲器有了存儲器ROMROM和和RAMRAM就可以執(zhí)行存就可以執(zhí)行存儲器中程序而對數(shù)據(jù)進行加工處理了。儲器中程序而對數(shù)據(jù)進行加工處理了。 但是,人們是怎樣把這些程序和數(shù)據(jù)存入存但是,人們是怎樣把這些程序和數(shù)據(jù)存入存儲器,并把處理后的運算結(jié)果送給外界呢?輸入儲器,并把處理后的運算結(jié)果送給外界呢?輸入/ /輸出接口電路是微處理器與外部設(shè)備之間信息輸出接口電路是微處理器與外部設(shè)備之間信息交換的橋梁。交換的橋梁。 第四章第四章 中斷與輸入中斷與輸入/ /輸出接口技術(shù)輸出接口技術(shù) CPU 與外設(shè)之間的接口信息1.數(shù)據(jù)信息數(shù)據(jù)信息 (DATA) 數(shù)字量數(shù)字量由鍵盤、光電輸入機等
2、輸入的信息。(通常以二進制表示的數(shù)或以 ASCII 碼表示的數(shù)或字符) 模擬量模擬量非電量信息傳感器電量信號處理U.IA/DCPU(P.T.Q) 開關(guān)量開關(guān)量兩個狀態(tài)的量 (可以用0、1表示)例如電機的啟與停,開關(guān)的合與開等。2.狀態(tài)信息狀態(tài)信息 (STATUS)輸入時,輸入設(shè)備是否準(zhǔn)備好? (READY)輸出時,輸出設(shè)備是否空閑?(BUSY)3.控制信息控制信息 (CONTROL)例如控制I/O 設(shè)備啟動或停止等。CPUI/O設(shè)備I/O接口123ABDBCBDATASTATUSCONTROL圖 CPU 與外設(shè)之間的接口信息4.1 4.1 單片機輸入單片機輸入/ /輸出概述輸出概述4.1.1
3、I/O4.1.1 I/O接口電路的功能接口電路的功能 I/OI/O接口電路接口電路它的功能就是實現(xiàn)微處理器對外設(shè)的它的功能就是實現(xiàn)微處理器對外設(shè)的控制和進行數(shù)據(jù)交換。它主要表現(xiàn)在以下幾個方面??刂坪瓦M行數(shù)據(jù)交換。它主要表現(xiàn)在以下幾個方面。 設(shè)備選中設(shè)備選中 傳送控制和狀態(tài)信息傳送控制和狀態(tài)信息 數(shù)據(jù)緩沖與鎖存數(shù)據(jù)緩沖與鎖存 1.1.高級功能高級功能 1. 1.設(shè)備選中設(shè)備選中 在一個應(yīng)用系統(tǒng)中,總有多個在一個應(yīng)用系統(tǒng)中,總有多個I/OI/O設(shè)備(存儲器也在內(nèi)),設(shè)備(存儲器也在內(nèi)),而微處理器某一時刻只能做一件事,因此,微處理器與外設(shè)交而微處理器某一時刻只能做一件事,因此,微處理器與外設(shè)交換數(shù)
4、據(jù)的首要任務(wù)就是選中設(shè)備,而使其他設(shè)備處于等待狀態(tài)。換數(shù)據(jù)的首要任務(wù)就是選中設(shè)備,而使其他設(shè)備處于等待狀態(tài)。 微處理器通常由地址線(或通過地址譯碼)產(chǎn)生外設(shè)選中微處理器通常由地址線(或通過地址譯碼)產(chǎn)生外設(shè)選中信號。信號。 2.2.傳送控制和狀態(tài)信息傳送控制和狀態(tài)信息 微處理器與外設(shè)交換數(shù)據(jù)的形式是多種多樣的。簡單的如微處理器與外設(shè)交換數(shù)據(jù)的形式是多種多樣的。簡單的如讀、寫數(shù)據(jù)命令;復(fù)雜的則需要控制機、電設(shè)備的運行,如打讀、寫數(shù)據(jù)命令;復(fù)雜的則需要控制機、電設(shè)備的運行,如打印機的走紙機構(gòu)的動作。印機的走紙機構(gòu)的動作。 3. 3.數(shù)據(jù)緩沖與鎖存數(shù)據(jù)緩沖與鎖存 微處理器發(fā)出的地址和數(shù)據(jù)一般情況下需
5、要經(jīng)過鎖存或緩微處理器發(fā)出的地址和數(shù)據(jù)一般情況下需要經(jīng)過鎖存或緩沖,這樣做一是提高微處理器發(fā)出信號的負(fù)載能力;二是信號沖,這樣做一是提高微處理器發(fā)出信號的負(fù)載能力;二是信號有時需要鎖存,以便適應(yīng)控制信號時序方面的要求。有時需要鎖存,以便適應(yīng)控制信號時序方面的要求。 4.4.高級功能高級功能 由于基礎(chǔ)電路技術(shù)的發(fā)展,由于基礎(chǔ)電路技術(shù)的發(fā)展,I/OI/O接口電路向集成更多的功接口電路向集成更多的功能、更高層次發(fā)展。它可以將微處理器中的一些簡單的命令解能、更高層次發(fā)展。它可以將微處理器中的一些簡單的命令解析成較為復(fù)雜的外設(shè)驅(qū)動命令。析成較為復(fù)雜的外設(shè)驅(qū)動命令。4.1.2 4.1.2 輸入輸入/ /輸
6、出方式輸出方式 微型計算機和外部設(shè)備之間不是直接相連的,而是通微型計算機和外部設(shè)備之間不是直接相連的,而是通過不同的接口電路來達到彼此間的信息傳送的,這種信息過不同的接口電路來達到彼此間的信息傳送的,這種信息傳送方式通常可以分為四種:傳送方式通??梢苑譃樗姆N:無條件傳送無條件傳送查詢傳送查詢傳送中斷傳送中斷傳送DMADMA傳送傳送無條件傳送方式無條件傳送方式 外設(shè)時鐘處于外設(shè)時鐘處于“準(zhǔn)準(zhǔn)備好備好”狀態(tài),隨時可以無條狀態(tài),隨時可以無條件接收處理器發(fā)送來的數(shù)據(jù),件接收處理器發(fā)送來的數(shù)據(jù),如顯示設(shè)備。如顯示設(shè)備。查詢傳送方式查詢傳送方式在需要從外設(shè)輸入數(shù)據(jù)時,在需要從外設(shè)輸入數(shù)據(jù)時,微處理器必須查
7、詢外設(shè)的微處理器必須查詢外設(shè)的數(shù)據(jù)是否準(zhǔn)備好傳送。數(shù)據(jù)是否準(zhǔn)備好傳送。在需要向外設(shè)輸出數(shù)據(jù)時,在需要向外設(shè)輸出數(shù)據(jù)時,微處理器必須查詢外設(shè)是微處理器必須查詢外設(shè)是否處于否處于“空閑空閑”狀態(tài)。狀態(tài)。 程序查詢流程圖 CPU 執(zhí)行執(zhí)行現(xiàn)行程序現(xiàn)行程序CPU查詢等待并傳輸查詢等待并傳輸I/O數(shù)據(jù)數(shù)據(jù)CPU 執(zhí)行執(zhí)行現(xiàn)行程序現(xiàn)行程序啟動啟動I/OI/O 準(zhǔn)備及傳送準(zhǔn)備及傳送啟動啟動I/OCPU程序程序查詢查詢方式方式I/O 準(zhǔn)備及傳送準(zhǔn)備及傳送NYREADY?輸入狀態(tài)信息輸入數(shù)據(jù)圖4-1(a) 查詢式輸入程序流程圖YNBUSY?輸入狀態(tài)信息輸出數(shù)據(jù)圖4-1(b) 查詢式輸出程序流程圖中斷傳送方式中斷
8、傳送方式 外設(shè)主動發(fā)出數(shù)據(jù)外設(shè)主動發(fā)出數(shù)據(jù)請求信號,要求與微處理請求信號,要求與微處理器傳送數(shù)據(jù),這就是中斷器傳送數(shù)據(jù),這就是中斷傳送方式。傳送方式。圖4-2中斷處理過程的示意圖 指令執(zhí)行周期結(jié)束指令執(zhí)行周期結(jié)束CPU 執(zhí)行現(xiàn)行程序執(zhí)行現(xiàn)行程序CPU 執(zhí)行現(xiàn)行程序執(zhí)行現(xiàn)行程序啟動啟動I/O中斷請求中斷請求I/O準(zhǔn)備準(zhǔn)備I/O準(zhǔn)備準(zhǔn)備CPU 處理中斷服務(wù)程序處理中斷服務(wù)程序?qū)崿F(xiàn)實現(xiàn) I/O 與主機之間的傳送與主機之間的傳送間間斷斷啟動啟動I/OI/O準(zhǔn)備準(zhǔn)備中斷請求中斷請求程序程序中斷中斷方式方式DMA 傳送方式 直接直接存儲器存儲方式存儲器存儲方式 是存儲器與外設(shè)或存儲器之是存儲器與外設(shè)或存儲
9、器之間進行大量數(shù)據(jù)傳送的方法。間進行大量數(shù)據(jù)傳送的方法。DMA 請求DMA 響應(yīng)送存儲器地址傳送數(shù)據(jù)DMA 結(jié)束傳送結(jié)束?Yes修改地址指針No圖4.3 DMA 工作流程圖 能向能向CPUCPU發(fā)出發(fā)出DMADMA請求信號。請求信號。 CPUCPU響應(yīng)后,接管對總線控制,進入響應(yīng)后,接管對總線控制,進入DMADMA方方式。式。 發(fā)出讀、寫控制信號。發(fā)出讀、寫控制信號。 決定數(shù)據(jù)傳送的地址和數(shù)據(jù)傳送的長度。決定數(shù)據(jù)傳送的地址和數(shù)據(jù)傳送的長度。 判斷判斷DMADMA操作的結(jié)束,撤消總線請求信號,操作的結(jié)束,撤消總線請求信號,使使CPUCPU恢復(fù)正常工作?;謴?fù)正常工作。存取周期結(jié)束存取周期結(jié)束CPU
10、 執(zhí)行現(xiàn)行程序執(zhí)行現(xiàn)行程序CPU 執(zhí)行現(xiàn)行程序執(zhí)行現(xiàn)行程序DMA請求請求啟動啟動I/OI/O準(zhǔn)備準(zhǔn)備I/O準(zhǔn)備準(zhǔn)備一個存取周期一個存取周期實現(xiàn)實現(xiàn)I/O與主存之間的傳送與主存之間的傳送Direct Memory Access:也稱為成組數(shù)據(jù)傳送方式。 1.1.中斷中斷 什么是中斷,我們從一個生活中的例子引入。你正在什么是中斷,我們從一個生活中的例子引入。你正在家中看書,突然電話鈴響了,你放下書本,去接電話,和家中看書,突然電話鈴響了,你放下書本,去接電話,和來電話的人交談,然后放下電話,回來繼續(xù)看你的書。這來電話的人交談,然后放下電話,回來繼續(xù)看你的書。這就是生活中的就是生活中的“中斷中斷”的
11、現(xiàn)象,就是正常的工作過程被外的現(xiàn)象,就是正常的工作過程被外部的事件打斷了。部的事件打斷了。 仔細(xì)研究一下生活中的中斷,對于學(xué)習(xí)單片機的中斷仔細(xì)研究一下生活中的中斷,對于學(xué)習(xí)單片機的中斷也很有好處。第一、什么可經(jīng)引起中斷,生活中很多事件也很有好處。第一、什么可經(jīng)引起中斷,生活中很多事件可以引起中斷:有人按了門鈴了,電話鈴響了,鬧鐘響了,可以引起中斷:有人按了門鈴了,電話鈴響了,鬧鐘響了,燒的水開了燒的水開了.等等諸如此類的事件。等等諸如此類的事件。4.1.3 4.1.3 中斷技術(shù)概述中斷技術(shù)概述單片機中也有一些可以引起中斷的事件,單片機中也有一些可以引起中斷的事件, CPUCPU正在執(zhí)行程正在執(zhí)
12、行程序時,單片機外部或內(nèi)部發(fā)生的某一序時,單片機外部或內(nèi)部發(fā)生的某一事件事件,請求,請求CPUCPU迅速去迅速去處理。處理。CPUCPU暫時中止當(dāng)前的工作,轉(zhuǎn)到中斷服務(wù)處理程序處理所暫時中止當(dāng)前的工作,轉(zhuǎn)到中斷服務(wù)處理程序處理所發(fā)生的事件。發(fā)生的事件。處理完該事件后,再回到原來被中止的地方,繼續(xù)原來的處理完該事件后,再回到原來被中止的地方,繼續(xù)原來的工作,這稱為工作,這稱為中斷中斷。 CPUCPU處理事件的過程,稱為處理事件的過程,稱為CPUCPU的的中斷中斷響應(yīng)過程。響應(yīng)過程。在在CPUCPU與外設(shè)交換信息時,若用查詢方式,則與外設(shè)交換信息時,若用查詢方式,則CPUCPU會浪費較會浪費較多的
13、時間去等待外設(shè)。為了解決這一問題,引入了中斷,中多的時間去等待外設(shè)。為了解決這一問題,引入了中斷,中斷是強制通過硬件來改變斷是強制通過硬件來改變CPUCPU程序運行方向。程序運行方向。某人看書某人看書 執(zhí)行主程序執(zhí)行主程序 日常事務(wù)日常事務(wù)電話鈴響電話鈴響 中斷信號中斷信號如如INT=0INT=0 中斷請求中斷請求暫??磿鴷和?磿?暫停執(zhí)行主程序暫停執(zhí)行主程序 中斷響應(yīng)中斷響應(yīng)書中作記號書中作記號 當(dāng)前當(dāng)前PCPC入棧入棧 保護斷點保護斷點電話談話電話談話 執(zhí)行中斷程序執(zhí)行中斷程序 中斷服務(wù)中斷服務(wù)繼續(xù)看書繼續(xù)看書 返回主程序返回主程序 中斷返回中斷返回日常事務(wù)程序日常事務(wù)程序中斷服務(wù)程序中斷
14、服務(wù)程序日常生活中的中斷與計算機中斷的比較:日常生活中的中斷與計算機中斷的比較:實際生活實際生活計算機計算機2. 2. 中斷優(yōu)先級中斷優(yōu)先級 MCS-51MCS-51單片機有單片機有5 5個中斷源,既然有多個中斷源,個中斷源,既然有多個中斷源,就必然存在對中斷請求處理順序的排隊問題。當(dāng)多個中就必然存在對中斷請求處理順序的排隊問題。當(dāng)多個中斷源同時發(fā)出中斷請求時,先處理誰,后處理誰,這就斷源同時發(fā)出中斷請求時,先處理誰,后處理誰,這就是中斷優(yōu)先級。是中斷優(yōu)先級。3. 3. 中斷服務(wù)程序中斷服務(wù)程序 CPUCPU響應(yīng)中斷請求之后,專門用來與中斷源進行數(shù)響應(yīng)中斷請求之后,專門用來與中斷源進行數(shù)據(jù)傳送
15、或進行其他中斷處理的程序段。據(jù)傳送或進行其他中斷處理的程序段。 4. 4. 中斷處理機制中斷處理機制 處理中斷請求并為之服務(wù)是個復(fù)雜的過程,如何響處理中斷請求并為之服務(wù)是個復(fù)雜的過程,如何響應(yīng)中斷,何時進入中斷服務(wù)程序,如何對中斷請求排隊?wèi)?yīng)中斷,何時進入中斷服務(wù)程序,如何對中斷請求排隊等,需要一套機制來進行管理和控制。等,需要一套機制來進行管理和控制。中斷解決了快速主機與慢速中斷解決了快速主機與慢速I/OI/O設(shè)備的數(shù)據(jù)傳送,設(shè)備的數(shù)據(jù)傳送,還具有如下優(yōu)點:還具有如下優(yōu)點: 分時操作。分時操作。CPUCPU可以分時為多個可以分時為多個I/OI/O設(shè)備服務(wù),設(shè)備服務(wù),提高了計算機的利用率;提高了
16、計算機的利用率; 實時響應(yīng)實時響應(yīng)。CPUCPU能夠及時處理應(yīng)用系統(tǒng)的隨機事能夠及時處理應(yīng)用系統(tǒng)的隨機事件,系統(tǒng)的實時性大大增強;件,系統(tǒng)的實時性大大增強; 可靠性高可靠性高。CPUCPU具有處理設(shè)備故障及掉電等突發(fā)具有處理設(shè)備故障及掉電等突發(fā)性事件能力,從而使系統(tǒng)可靠性提高。性事件能力,從而使系統(tǒng)可靠性提高。中斷與子程序的最主要區(qū)別:中斷與子程序的最主要區(qū)別: 子程序是預(yù)先安排好的;子程序是預(yù)先安排好的; 中斷是隨機發(fā)生的;中斷是隨機發(fā)生的; 能夠?qū)崿F(xiàn)中斷處理功能的部件稱為能夠?qū)崿F(xiàn)中斷處理功能的部件稱為中斷系統(tǒng)中斷系統(tǒng);產(chǎn)生中;產(chǎn)生中斷的請求源稱為斷的請求源稱為中斷請求源中斷請求源。 中斷系
17、統(tǒng)的功能:中斷系統(tǒng)的功能: 1.1.正確實現(xiàn)中斷并返回正確實現(xiàn)中斷并返回 CPUCPU可對申請的中斷進行判斷,并決定是否響應(yīng),中可對申請的中斷進行判斷,并決定是否響應(yīng),中斷程序處理完后,可恢復(fù)現(xiàn)場和斷點,返回主程序。斷程序處理完后,可恢復(fù)現(xiàn)場和斷點,返回主程序。4.2 MCS-514.2 MCS-51中斷系統(tǒng)中斷系統(tǒng) 2. 2.能實現(xiàn)優(yōu)先權(quán)排隊能實現(xiàn)優(yōu)先權(quán)排隊 對出現(xiàn)兩個或兩個以上的對出現(xiàn)兩個或兩個以上的中斷源同時提出中斷請求的情中斷源同時提出中斷請求的情況,況,CPUCPU能找到優(yōu)先級別最高能找到優(yōu)先級別最高的中斷源,響應(yīng)他的中斷請求,的中斷源,響應(yīng)他的中斷請求,處理完優(yōu)先級別最高的中斷源處
18、理完優(yōu)先級別最高的中斷源后,再處理優(yōu)先級別低的中斷后,再處理優(yōu)先級別低的中斷源。源。 3.3.高級中斷源能中斷低級高級中斷源能中斷低級的中斷處理的中斷處理主程序主程序響應(yīng)低級中斷響應(yīng)低級中斷中斷程序中斷程序響應(yīng)高級中斷響應(yīng)高級中斷高級中斷程序高級中斷程序返回返回返回返回繼續(xù)執(zhí)行繼續(xù)執(zhí)行繼續(xù)執(zhí)行繼續(xù)執(zhí)行中斷嵌套流程圖中斷嵌套流程圖中斷源高級中斷請求低級中斷請求 中斷源 開放中斷開放中斷優(yōu)先級寄存器硬件查詢1TIRITF1IE1TF0IE0TCONSCON中斷源 中斷標(biāo)志IT1IT0MCS-51 MCS-51 共有共有5 5個中斷源個中斷源MCS-51MCS-51中斷系統(tǒng)結(jié)構(gòu)框圖中斷系統(tǒng)結(jié)構(gòu)框圖中
19、斷源高級中斷請求低級中斷請求 中斷源 允許總允許中斷優(yōu)先級寄存器硬件查詢1TIRITF1IE1TF0IE0TCONTCONSCONSCON中斷源中斷標(biāo)志IT1IT0IT0=0電平觸發(fā)IT0=1邊沿觸發(fā)IT1=0電平觸發(fā)IT1=1邊沿觸發(fā)TI=0MOV SBUF,ARI=1MOV A,SBUF 可以引起中斷的原因稱之為可以引起中斷的原因稱之為中斷源中斷源(或可發(fā)出中斷請求信號(或可發(fā)出中斷請求信號的源泉的源泉) )。 MCS-51MCS-51單片機五個中斷請求源單片機五個中斷請求源 :(1 1)INT0(P3.2)INT0(P3.2)外部中斷請求外部中斷請求0 0,由,由IT0IT0選擇為低電平
20、有效選擇為低電平有效還是下降沿有效。此引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)還是下降沿有效。此引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志志IE0IE0置置1 1,申請中斷。,申請中斷。(2 2)INT1(P3.3)INT1(P3.3)外部中斷請求外部中斷請求1 1,由由IT1IT1選擇為低電平有效選擇為低電平有效還是下降沿有效。此引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)還是下降沿有效。此引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志志IE1IE1置置1,1,申請中斷。申請中斷。(3 3) T0(P3.4)T0(P3.4)定時器定時器/ /計數(shù)器計數(shù)器T0T0中斷請求,中斷請求,當(dāng)當(dāng)T0T0發(fā)生溢出發(fā)生溢出時,時,中斷請
21、求標(biāo)志中斷請求標(biāo)志TF0TF0置位,并向置位,并向CPUCPU申請中斷。申請中斷。(4 4) T1(P3.5)T1(P3.5)定時器定時器/ /計數(shù)器計數(shù)器T1T1中斷請求,中斷請求,當(dāng)當(dāng)T1T1發(fā)生溢出發(fā)生溢出時,時,中斷請求標(biāo)志中斷請求標(biāo)志TF1TF1置位,并向置位,并向CPUCPU申請中斷申請中斷。(5 5) RIRI、TITI串行口中斷請求串行口中斷請求,中斷請求標(biāo)志為,中斷請求標(biāo)志為TITI或或RIRI。當(dāng)串行口接收完一幀數(shù)據(jù)時置位當(dāng)串行口接收完一幀數(shù)據(jù)時置位RIRI或當(dāng)串行口發(fā)送完一幀數(shù)或當(dāng)串行口發(fā)送完一幀數(shù)據(jù)時置位據(jù)時置位TITI,向,向CPUCPU申請中斷。申請中斷。 4.2.
22、1 4.2.1 中斷源中斷源中斷源有以下幾種:中斷源有以下幾種:1)1)外部設(shè)備中斷源外部設(shè)備中斷源目的:目的:要求要求CPUCPU為它輸入為它輸入/ /輸出一個數(shù)據(jù)輸出一個數(shù)據(jù)例如:例如:打印機的打印中斷打印機的打印中斷2 2)控制對象中斷源)控制對象中斷源目的:目的:對控制對象進行參數(shù)調(diào)整對控制對象進行參數(shù)調(diào)整例如:例如:溫度的超限(上限溫度的超限(上限/ /下限)中斷用于使溫度回到給下限)中斷用于使溫度回到給定范圍內(nèi)定范圍內(nèi)3 3)故障中斷源)故障中斷源目的:目的:對各類故障進行處理對各類故障進行處理例如:例如:掉電中斷掉電中斷CPUCPU響應(yīng)后保留中間結(jié)果,接入備分電源響應(yīng)后保留中間結(jié)
23、果,接入備分電源4 4)定時脈沖中斷源)定時脈沖中斷源目的:目的:進行定時控制進行定時控制例如:定時例如:定時1 1秒鐘中斷秒鐘中斷定時脈沖定時脈沖 發(fā)發(fā) 生生 器器CPUCPUINTINT1 1秒秒1 1秒鐘時間到,秒鐘時間到,CPUCPU響應(yīng)中斷響應(yīng)中斷1 1次,軟件計數(shù)可用于計時、測速次,軟件計數(shù)可用于計時、測速 MCS-51 MCS-51沒有專門的開中斷和關(guān)中斷指令,內(nèi)部有一個沒有專門的開中斷和關(guān)中斷指令,內(nèi)部有一個中斷允許寄存器中斷允許寄存器IEIE,字節(jié)地址為字節(jié)地址為A8HA8H,也可位尋址。,也可位尋址。中斷中斷的開放和關(guān)閉是通過對中斷允許寄存器的開放和關(guān)閉是通過對中斷允許寄存
24、器IEIE各允許位進行兩各允許位進行兩級控制。級控制。 兩級控制是指有一個中斷允許總控位兩級控制是指有一個中斷允許總控位EAEA,配合各中斷,配合各中斷源的中斷允許控制位共同實現(xiàn)對中斷請求的控制。源的中斷允許控制位共同實現(xiàn)對中斷請求的控制。IEIE的格的格式如下:式如下:4.2.2 4.2.2 中斷控制中斷控制EA _ESET1EX1ET0EX0IEA8HAFHACH ABHAAHA9HA8H地址EA _ESET1EX1ET0EX0IEA8HAFHACH ABHAAHA9HA8H地址0:關(guān)所有中斷1:開所有中斷EAEA:CPUCPU中斷開放允許位中斷開放允許位EA _ESET1EX1ET0EX
25、0IEA8HAFHACH ABHAAHA9HA8H地址0:關(guān)關(guān)INT0中斷中斷1:開開INT0中斷中斷0:關(guān)所有中斷關(guān)所有中斷1:開所有中斷開所有中斷EX0EX0:外部中斷:外部中斷0 0中斷允許位。中斷允許位。EA _ESET1EX1ET0EX0IEA8HAFHACH ABHAAHA9HA8H地址0:關(guān)T0中斷1:開T0中斷0:關(guān)所有中斷1:開所有中斷定時器定時器/ /計數(shù)器計數(shù)器T0T0的溢出中斷允許位的溢出中斷允許位EA _ESET1EX1ET0EX0IEA8HAFHACH ABHAAHA9HA8H地址0:關(guān)INT1中斷1:開INT1中斷0:關(guān)所有中斷1:開所有中斷EX1EX1:外部中斷
26、:外部中斷1 1中斷允許位。中斷允許位。EA _ESET1EX1ET0EX0IEA8HAFHACH ABHAAHA9HA8H地址0:關(guān)T1中斷1:開T1中斷0:關(guān)所有中斷1:開所有中斷定時器定時器/ /計數(shù)器計數(shù)器T1T1的溢出中斷允許位的溢出中斷允許位EA _ESET1EX1ET0EX0IEA8HAFHACH ABHAAHA9HA8H地址0:關(guān)所有中斷關(guān)所有中斷1:開所有中斷開所有中斷0:關(guān)串行口中斷關(guān)串行口中斷1:開串行口中斷開串行口中斷串行口中斷允許位串行口中斷允許位EA _ESET1EX1ET0EX0 中斷允許寄存器中斷允許寄存器IEIE的字節(jié)地址是的字節(jié)地址是A8HA8H,各控制位,
27、各控制位( (位地址位地址A8HA8HAFH)AFH)也可位尋址,故既可以用字節(jié)傳送指令又可以用位也可位尋址,故既可以用字節(jié)傳送指令又可以用位操作指令來對各個中斷請求加以控制。操作指令來對各個中斷請求加以控制。 例如:例如:可以采用如下字節(jié)傳送指令來開放定時器可以采用如下字節(jié)傳送指令來開放定時器T1T1的溢的溢出中斷:出中斷: MOV IE,#88HMOV IE,#88HIEAFHACH ABHAAHA9HA8H位地址位地址1 0 0 0 1 0 0 0 若改用位尋址指令,則需采用如下兩條指令:若改用位尋址指令,則需采用如下兩條指令:SETB EASETB EASETB ET1SETB ET1
28、 MCS-51MCS-51復(fù)位后,復(fù)位后,IEIE寄存器中的各中斷控制位均清零(寄存器中的各中斷控制位均清零(IEIE清清0 0,IE=00HIE=00H),所有中斷請求被禁止。),所有中斷請求被禁止。 所以,所以,在在MCS-51MCS-51復(fù)位以后,用戶必須通過主程序中的指復(fù)位以后,用戶必須通過主程序中的指令來開放所需中斷,以便相應(yīng)中斷請求來到時為令來開放所需中斷,以便相應(yīng)中斷請求來到時為CPUCPU所響應(yīng)。所響應(yīng)。4.2.3 4.2.3 中斷優(yōu)先級中斷優(yōu)先級 MCS-51 MCS-51內(nèi)部有一個中斷優(yōu)先級寄存器內(nèi)部有一個中斷優(yōu)先級寄存器IPIP,用來將,用來將5 5個中個中斷源分為高低兩
29、級,所有中斷都可設(shè)定為高低兩個中斷優(yōu)斷源分為高低兩級,所有中斷都可設(shè)定為高低兩個中斷優(yōu)先級,以便先級,以便CPUCPU對所有中斷實現(xiàn)兩級中斷嵌套。在響應(yīng)中斷對所有中斷實現(xiàn)兩級中斷嵌套。在響應(yīng)中斷時,時,CPUCPU先響應(yīng)高優(yōu)先級中斷,然后響應(yīng)低優(yōu)先級中斷。先響應(yīng)高優(yōu)先級中斷,然后響應(yīng)低優(yōu)先級中斷。IPIP字節(jié)地址字節(jié)地址B8HB8H,有,有5 5個位地址,個位地址,IPIP同樣可以按字節(jié)進行設(shè)同樣可以按字節(jié)進行設(shè)置,也可以按位進行設(shè)置,置,也可以按位進行設(shè)置,中斷優(yōu)先級寄存器中斷優(yōu)先級寄存器IPIP的格式如的格式如下:下: _ _ _PS PT1 PX1 PT0 PX0IPBCH BBHBAH
30、B9HA8HB8H地址兩個中斷優(yōu)先級,可實現(xiàn)兩級中斷嵌套。如圖兩個中斷優(yōu)先級,可實現(xiàn)兩級中斷嵌套。如圖可歸納為下面可歸納為下面兩條基本規(guī)則兩條基本規(guī)則:(1 1)低優(yōu)先級可被高優(yōu)先級中斷,反之則不能。)低優(yōu)先級可被高優(yōu)先級中斷,反之則不能。(2 2)同級中斷不會被它的同級中斷源所中斷。)同級中斷不會被它的同級中斷源所中斷。 _ _ _PS PT1 PX1 PT0 PX0IPBCH BBHBAHB9HA8HB8H地址位地址INT0中斷優(yōu)先級控制0:低優(yōu)先級1:高優(yōu)先級T0中斷優(yōu)先級控制0:低優(yōu)先級1:高優(yōu)先級INT1中斷優(yōu)先級控制0:低優(yōu)先級1:高優(yōu)先級T1中斷優(yōu)先級控制0:低優(yōu)先級1:高優(yōu)先級
31、串行口中斷優(yōu)先級控制0:低優(yōu)先級1:高優(yōu)先級 _ _ _PS PT1 PX1 PT0 PX0IPBCH BBHBAHB9HA8HB8H地址位地址INT0中斷優(yōu)先級控制0:低優(yōu)先級1:高優(yōu)先級 _ _ _PS PT1 PX1 PT0 PX0IPBCH BBHBAHB9HA8HB8H地址位地址T0中斷優(yōu)先級控制0:低優(yōu)先級1:高優(yōu)先級 _ _ _PS PT1 PX1 PT0 PX0IPBCH BBHBAHB9HA8HB8H地址位地址INT1中斷優(yōu)先級控制0:低優(yōu)先級1:高優(yōu)先級 _ _ _PS PT1 PX1 PT0 PX0IPBCH BBHBAHB9HA8HB8H地址位地址T1中斷優(yōu)先級控制0:
32、低優(yōu)先級1:高優(yōu)先級 _ _ _PS PT1 PX1 PT0 PX0IPBCH BBHBAHB9HA8HB8H地址位地址串行口中斷優(yōu)先級控制0:低優(yōu)先級1:高優(yōu)先級 MCS51 MCS51系統(tǒng)復(fù)位時,系統(tǒng)復(fù)位時,IPIP的低的低5 5位清零(位清零(IP=00HIP=00H),把所有的中斷均設(shè)置為低優(yōu)先級。把所有的中斷均設(shè)置為低優(yōu)先級。 當(dāng)當(dāng)CPUCPU同時接收到幾個優(yōu)先級相同的中斷請求時,則按同時接收到幾個優(yōu)先級相同的中斷請求時,則按照下面約定的次序來響應(yīng)中斷,優(yōu)先級較高的中斷得到優(yōu)照下面約定的次序來響應(yīng)中斷,優(yōu)先級較高的中斷得到優(yōu)先響應(yīng)。先響應(yīng)。 IE0IE0外部中斷外部中斷INTINT0
33、 0 較高優(yōu)先級較高優(yōu)先級 TF0TF0定時器定時器/ /計數(shù)器計數(shù)器T T0 0溢出中斷溢出中斷 IE1IE1外部中斷外部中斷INTINTl l TF1 TF1定時器定時器/ /計數(shù)器計數(shù)器T T1 1溢出中斷溢出中斷 RIRI或或TITI串行口中斷串行口中斷 較低優(yōu)先級較低優(yōu)先級 MCS51 MCS51單片機的中斷系統(tǒng)有兩個不可尋址的單片機的中斷系統(tǒng)有兩個不可尋址的“優(yōu)先級優(yōu)先級有效有效”觸發(fā)器,這兩個觸發(fā)器用戶是不能訪問觸發(fā)器,這兩個觸發(fā)器用戶是不能訪問( (尋址)的。尋址)的。 其中一個其中一個優(yōu)先級的觸發(fā)器指示某高優(yōu)先級的中斷正在優(yōu)先級的觸發(fā)器指示某高優(yōu)先級的中斷正在進行,所有的后來
34、設(shè)置的高優(yōu)先中斷請求都被阻止(等進行,所有的后來設(shè)置的高優(yōu)先中斷請求都被阻止(等待),待), 另一個另一個觸發(fā)器指示某低級的中斷正在執(zhí)行,所有的同觸發(fā)器指示某低級的中斷正在執(zhí)行,所有的同級中斷都被阻止,但不能阻止高優(yōu)先級中斷。級中斷都被阻止,但不能阻止高優(yōu)先級中斷。 若同時收到若同時收到幾個同級優(yōu)先級的中斷請求幾個同級優(yōu)先級的中斷請求,先響應(yīng)哪一,先響應(yīng)哪一個取決于中斷系統(tǒng)內(nèi)部的查詢順序(內(nèi)部也排了一個優(yōu)先個取決于中斷系統(tǒng)內(nèi)部的查詢順序(內(nèi)部也排了一個優(yōu)先級),查詢的順序依次從高到低查詢,先查詢到哪一個就級),查詢的順序依次從高到低查詢,先查詢到哪一個就響應(yīng)哪一個。其查詢順序如下:響應(yīng)哪一個。
35、其查詢順序如下:中斷源中斷源 中斷級別中斷級別 查詢順序查詢順序外部中斷外部中斷0(EX0)0(EX0) 最高最高 最先查詢最先查詢T0T0溢出中斷溢出中斷(ET0)(ET0)外部中斷外部中斷1 1(EX1)T1T1溢出中斷溢出中斷 (ET1)串行口中斷串行口中斷RI(TI)(ES)RI(TI)(ES) 最低最低 最后查詢最后查詢例:例:設(shè)置設(shè)置IPIP寄存器的初始值,使寄存器的初始值,使2 2個外中斷請求為高優(yōu)先級,其個外中斷請求為高優(yōu)先級,其它中斷請求為低優(yōu)先級。它中斷請求為低優(yōu)先級。(1 1)用位操作指令)用位操作指令 SETB PX0 SETB PX0 ;2 2個外中斷為高優(yōu)先級個外中
36、斷為高優(yōu)先級 SETB PX1 SETB PX1 CLR PS CLR PS ;串口為低優(yōu)先級中斷;串口為低優(yōu)先級中斷CLR PT0 CLR PT0 ;2 2個定時器個定時器/ /計數(shù)器低優(yōu)先級中斷計數(shù)器低優(yōu)先級中斷CLR PT1CLR PT1 _ _ _PSPT1PX1PT0PX0IPBCHBBHBAHB9HA8HB8H地址位地址00011(2 2)用字節(jié)操作指令)用字節(jié)操作指令 MOV IPMOV IP,#05H#05H或:或: MOV 0B8HMOV 0B8H,#05H #05H ;B8HB8H為為IPIP寄存器的字節(jié)地址寄存器的字節(jié)地址 _ _ _PS PT1 PX1 PT0 PX0I
37、PBCH BBHBAHB9HA8HB8H地址位地址0 0 0 0 0 1 0 14.2.4 4.2.4 中斷響應(yīng)與處理中斷響應(yīng)與處理1.1.中斷響應(yīng)中斷響應(yīng)響應(yīng)中斷請求的條件響應(yīng)中斷請求的條件 一個中斷請求被響應(yīng),需滿足以下必要條件:一個中斷請求被響應(yīng),需滿足以下必要條件:(1 1)IEIE寄存器中的中斷總允許位寄存器中的中斷總允許位EA=1EA=1。(2 2)該中斷源發(fā)出中斷請求,即該中斷源對應(yīng)的中)該中斷源發(fā)出中斷請求,即該中斷源對應(yīng)的中 斷請求標(biāo)志為斷請求標(biāo)志為“1”1”。(3 3)該中斷源的中斷允許位)該中斷源的中斷允許位=1=1,即該中斷沒有被屏蔽。,即該中斷沒有被屏蔽。(4 4)無
38、同級或更高級中斷正在被服務(wù)。)無同級或更高級中斷正在被服務(wù)。中斷響應(yīng)的主要過程:中斷響應(yīng)的主要過程:首先由硬件自動生成一條長調(diào)用指令首先由硬件自動生成一條長調(diào)用指令: : LCALL addr16LCALL addr16接著就由接著就由CPUCPU執(zhí)行該指令執(zhí)行該指令, ,將將PCPC的內(nèi)容壓入堆棧以保護斷點的內(nèi)容壓入堆棧以保護斷點,再將再將中斷入口地址裝入中斷入口地址裝入PCPC。各中斷源服務(wù)程序的各中斷源服務(wù)程序的入口地址固定入口地址固定,如下所示:,如下所示: 中斷源中斷源 入口地址入口地址 外部中斷外部中斷0 0 0003H 0003H 定時器定時器/ /計數(shù)器計數(shù)器T0 T0 000
39、BH 000BH外部中斷外部中斷1 1 0013H 0013H 定時器定時器/ /計數(shù)器計數(shù)器T1T1 001BH 001BH串行口中斷串行口中斷 0023H0023H 中斷響應(yīng)是有條件的,遇到中斷響應(yīng)是有條件的,遇到下列三種情況下列三種情況之一時,中之一時,中斷響應(yīng)被封鎖:斷響應(yīng)被封鎖: (1 1)CPUCPU正在處理同級的或更高優(yōu)先級的中斷正在處理同級的或更高優(yōu)先級的中斷。(2 2)所查詢的機器周期所查詢的機器周期不是所當(dāng)前正在執(zhí)行指令的最不是所當(dāng)前正在執(zhí)行指令的最后一個機器周期后一個機器周期。只有在當(dāng)前指令執(zhí)行完畢后,才能進。只有在當(dāng)前指令執(zhí)行完畢后,才能進行中斷響應(yīng)。行中斷響應(yīng)。(3
40、3)正在執(zhí)行的指令是正在執(zhí)行的指令是RETIRETI或是訪問或是訪問IEIE或或IPIP的指令。的指令。需要再去執(zhí)行完一條指令,才能響應(yīng)新的中斷請求。需要再去執(zhí)行完一條指令,才能響應(yīng)新的中斷請求。 如果存在上述三種情況之一,如果存在上述三種情況之一,CPUCPU將丟棄中斷查詢將丟棄中斷查詢結(jié)果,不能對中斷進行響應(yīng)。結(jié)果,不能對中斷進行響應(yīng)。2.2.響應(yīng)處理響應(yīng)處理 單片機一旦響應(yīng)中斷。首先置位相應(yīng)的優(yōu)先級有效觸單片機一旦響應(yīng)中斷。首先置位相應(yīng)的優(yōu)先級有效觸發(fā)器,然后執(zhí)行一個硬件子程序調(diào)用,把斷點地址壓入堆發(fā)器,然后執(zhí)行一個硬件子程序調(diào)用,把斷點地址壓入堆棧保護,然后將對應(yīng)的中斷入口地址值裝入程
41、序計數(shù)器棧保護,然后將對應(yīng)的中斷入口地址值裝入程序計數(shù)器PCPC,使程序轉(zhuǎn)向該中斷入口地址,以執(zhí)行中斷服務(wù)程序。使程序轉(zhuǎn)向該中斷入口地址,以執(zhí)行中斷服務(wù)程序。 由上可知,單片機在響應(yīng)中斷后,只保護斷點而不保由上可知,單片機在響應(yīng)中斷后,只保護斷點而不保護現(xiàn)場(如護現(xiàn)場(如A A、PSWPSW等內(nèi)容),且不能清除串行口中斷標(biāo)志等內(nèi)容),且不能清除串行口中斷標(biāo)志TITI和和RIRI,也無法清除外部中斷請求信號,也無法清除外部中斷請求信號INT0INT0和和INT1INT1,故在,故在編制程序時應(yīng)予以考慮。編制程序時應(yīng)予以考慮。 CPUCPU從相應(yīng)的中斷入口地址開始執(zhí)行中斷服務(wù)程序,從相應(yīng)的中斷入口
42、地址開始執(zhí)行中斷服務(wù)程序,直到遇到一條直到遇到一條RETIRETI指令為止。若用戶在中斷服務(wù)程序開始指令為止。若用戶在中斷服務(wù)程序開始處安排了保護現(xiàn)場的指令處安排了保護現(xiàn)場的指令, ,則在則在RETIRETI指令前應(yīng)恢復(fù)現(xiàn)場。指令前應(yīng)恢復(fù)現(xiàn)場。 由于各中斷服務(wù)程序入口地址僅相隔由于各中斷服務(wù)程序入口地址僅相隔8B8B,不夠容納中斷,不夠容納中斷服務(wù)子程序,為此可在入口處放置一條長跳轉(zhuǎn)指令,而實際服務(wù)子程序,為此可在入口處放置一條長跳轉(zhuǎn)指令,而實際的中斷服務(wù)程序放在存儲區(qū)內(nèi)的任意位置的中斷服務(wù)程序放在存儲區(qū)內(nèi)的任意位置( (一般放在主程序一般放在主程序后后) ),如下所示,如下所示: : ORG
43、 0003H ; ORG 0003H ;外部中斷外部中斷INT0INT0中斷程序入口地址中斷程序入口地址 LJMP INT0 LJMP INT0 ;INT0INT0為中斷服務(wù)程序為中斷服務(wù)程序 ORG 1000H ORG 1000H ;主程序首地址;主程序首地址MAIN: MAIN: ;主程序;主程序 : :INT0: INT0: ;外部中斷;外部中斷INT0INT0中斷服務(wù)程序中斷服務(wù)程序 : : RETI RETI END END中斷服務(wù)程序的設(shè)計中斷服務(wù)程序的設(shè)計一、中斷服務(wù)程序設(shè)計的任務(wù)一、中斷服務(wù)程序設(shè)計的任務(wù) 基本任務(wù):基本任務(wù): (1 1)設(shè)置中斷允許控制寄存器)設(shè)置中斷允許控制
44、寄存器IEIE。 (2 2)設(shè)置中斷優(yōu)先級寄存器)設(shè)置中斷優(yōu)先級寄存器IPIP。 (3 3)對外中斷源,是采用電平觸發(fā)還是跳沿觸發(fā)。)對外中斷源,是采用電平觸發(fā)還是跳沿觸發(fā)。 (4 4)編寫中斷服務(wù)程序,處理中斷請求。)編寫中斷服務(wù)程序,處理中斷請求。前前2 2條一般放在主程序的初始化程序段中。條一般放在主程序的初始化程序段中。例例: :假設(shè)允許外部中斷假設(shè)允許外部中斷0 0中斷,并設(shè)定它為高級中斷,其它中斷中斷,并設(shè)定它為高級中斷,其它中斷源為低級中斷,采用跳沿觸發(fā)方式。源為低級中斷,采用跳沿觸發(fā)方式。在主程序中編寫如下程在主程序中編寫如下程序段:序段: SETB EA SETB EA ;C
45、PUCPU開中斷開中斷 SETB ET0 SETB ET0 ;允許外中斷;允許外中斷0 0產(chǎn)生中斷產(chǎn)生中斷 SETB PX0 SETB PX0 ;外中斷;外中斷0 0為高級中斷為高級中斷 SETB IT0 SETB IT0 ;外中斷;外中斷0 0為跳沿觸發(fā)方式為跳沿觸發(fā)方式 二、采用中斷時的主程序結(jié)構(gòu)二、采用中斷時的主程序結(jié)構(gòu)常用的常用的主程序結(jié)構(gòu)主程序結(jié)構(gòu)如下:如下:ORG 0000HORG 0000HLJMP MAINLJMP MAINORG ORG 中斷入口地址中斷入口地址LJMP INTLJMP INT ORG XXXXHORG XXXXHMAINMAIN:主主 程程 序序 INTIN
46、T:中斷服務(wù)程序中斷服務(wù)程序 RETIRETIENDEND三、中斷服務(wù)程序的流程三、中斷服務(wù)程序的流程例例: :根據(jù)中斷服務(wù)程序流程圖,編出中斷服務(wù)程序。假設(shè),現(xiàn)根據(jù)中斷服務(wù)程序流程圖,編出中斷服務(wù)程序。假設(shè),現(xiàn)場保護只需將場保護只需將PSWPSW和和A A的內(nèi)容壓入堆棧中保護。的內(nèi)容壓入堆棧中保護。典型的中斷典型的中斷服務(wù)程序如下:服務(wù)程序如下: INTINT:CLR EACLR EA;CPUCPU關(guān)中斷關(guān)中斷PUSH PSWPUSH PSW;現(xiàn)場保護;現(xiàn)場保護PUSH ACCPUSH ACC; SETB EASETB EA;CPUCPU開中斷開中斷 中斷處理程序段中斷處理程序段 CLR E
47、ACLR EA;CPUCPU關(guān)中斷關(guān)中斷POP ACCPOP ACC;現(xiàn)場恢復(fù);現(xiàn)場恢復(fù)POP PSW POP PSW SETB EA SETB EA;CPUCPU開中斷開中斷RETIRETI;中斷返回,恢復(fù)斷點;中斷返回,恢復(fù)斷點幾點說明:幾點說明:(1 1)現(xiàn)場保護僅涉及到)現(xiàn)場保護僅涉及到PSWPSW和和A A的內(nèi)容,的內(nèi)容,如還有其它需保護如還有其它需保護的內(nèi)容的內(nèi)容,只需要在相應(yīng)的位置再加幾條,只需要在相應(yīng)的位置再加幾條PUSHPUSH和和POPPOP指令即指令即可???。(2 2) “ “中斷處理程序段中斷處理程序段”,應(yīng)根據(jù)任務(wù)的具體要求,來,應(yīng)根據(jù)任務(wù)的具體要求,來編寫。編寫。(
48、3 3)如果本中斷服務(wù)程序)如果本中斷服務(wù)程序不允許被其它的中斷所中斷不允許被其它的中斷所中斷?????蓪ⅰ爸袛嗵幚沓绦蚨沃袛嗵幚沓绦蚨巍鼻昂蟮那昂蟮摹癝ETB EA”SETB EA”和和“CLR EA”CLR EA”兩條指令去掉。兩條指令去掉。(4 4)中斷服務(wù)程序的)中斷服務(wù)程序的最后一條指令最后一條指令必須是返回指令必須是返回指令RETIRETI。有關(guān)中斷服務(wù)程序的片段如下: ORG 0013H LJMP EXINT;外部中斷1服務(wù)程序入口EXINT:PUSH PSWPUSH ACCJB P1.0,SAVOJB P1.1,SAV1JB P1.2,SAV2JB P1.3,SAV3 EXIT
49、:POP ACCPOP PSWRETI五、利用定時中斷抗干擾 單片機應(yīng)用系統(tǒng)開發(fā)完成后,在工作現(xiàn)場由于系統(tǒng)本身的噪聲干擾、電磁干擾、以及環(huán)境干擾等原因,往往會造成單片機應(yīng)用系統(tǒng)“死機”現(xiàn)象,這可以用定時中斷來解決“死機”。MCS51MCS51中斷系統(tǒng)的初始化中斷系統(tǒng)的初始化 1.1.初始化步驟初始化步驟 1 1)開中斷)開中斷 2 2)確定中斷優(yōu)先級)確定中斷優(yōu)先級 3 3)確定電平)確定電平/ /負(fù)邊沿觸發(fā)方式負(fù)邊沿觸發(fā)方式 2.2.初始化舉例初始化舉例例如:例如:請寫出令請寫出令I(lǐng)NT0INT0為電平觸發(fā),高優(yōu)先級的初始化程序為電平觸發(fā),高優(yōu)先級的初始化程序解解: 用位操作指令用位操作指令
50、 SETB EA SETB EA ;開所有中斷;開所有中斷 SETB EX0 SETB EX0 ;開;開INT0INT0中斷中斷 SETB PX0 SETB PX0 ;令;令I(lǐng)NT0INT0為高中斷優(yōu)先級為高中斷優(yōu)先級 SETB IT0 SETB IT0 ;令;令I(lǐng)NT0INT0為邊沿觸發(fā)方式為邊沿觸發(fā)方式中斷程序舉例中斷程序舉例 3 3)如果是外部中斷,還必須設(shè)定中斷響應(yīng)方式,即設(shè)定)如果是外部中斷,還必須設(shè)定中斷響應(yīng)方式,即設(shè)定IT0IT0、IT1IT1位。位。 如如 SETB IT0SETB IT0;設(shè)外部中斷;設(shè)外部中斷0 0為邊沿觸發(fā)方式為邊沿觸發(fā)方式(1 1)首先必須對中斷系統(tǒng)進行
51、初始化,包括:)首先必須對中斷系統(tǒng)進行初始化,包括: 1 1)開中斷,即設(shè)定)開中斷,即設(shè)定IEIE寄存器。寄存器。 如如 SETB EA SETB EA ;開總中斷控制位;開總中斷控制位 SETBSETBEX0 EX0 ;開外部中斷;開外部中斷0 0 SETB SETBET0 ET0 ;開定時器中斷;開定時器中斷0 02 2)設(shè)定中斷優(yōu)先級,即設(shè)置)設(shè)定中斷優(yōu)先級,即設(shè)置IPIP寄存器。寄存器。如如 SETB PT0SETB PT0;設(shè)定時器;設(shè)定時器0 0中斷為高優(yōu)先級中斷為高優(yōu)先級(2 2)中斷初始化結(jié)束后,就可以編制中斷服務(wù)程序,編制中斷服務(wù)程序)中斷初始化結(jié)束后,就可以編制中斷服務(wù)程
52、序,編制中斷服務(wù)程序時注意:時注意: 1 1)中斷服務(wù)程序,第一條指令必須安排在相應(yīng)的中斷入口地址,并且)中斷服務(wù)程序,第一條指令必須安排在相應(yīng)的中斷入口地址,并且應(yīng)該是轉(zhuǎn)移指令,由于中斷響應(yīng)時,已經(jīng)由硬件執(zhí)行了應(yīng)該是轉(zhuǎn)移指令,由于中斷響應(yīng)時,已經(jīng)由硬件執(zhí)行了LCALLLCALL指令,指令,中斷程序斷點地址已經(jīng)入棧,所以不能再用子程序調(diào)用指令。中斷程序斷點地址已經(jīng)入棧,所以不能再用子程序調(diào)用指令。如如 ORGORG 0003H 0003H ;外部中斷;外部中斷0 0入口地址入口地址 LJMPLJMP INT_0 INT_0 ORG ORG 001BH 001BH ;定時器;定時器T0T0中斷入
53、口地址中斷入口地址 LJMPLJMP DELAY DELAY 2 2)由于中斷的產(chǎn)生是隨機的,所以對程序中的公共單元(其他程序中)由于中斷的產(chǎn)生是隨機的,所以對程序中的公共單元(其他程序中已經(jīng)使用,中斷程序中也使用了的單元),必須在中斷服務(wù)程序開始已經(jīng)使用,中斷程序中也使用了的單元),必須在中斷服務(wù)程序開始處,采用堆棧進行保護,即入棧。子程序返回前再出棧。處,采用堆棧進行保護,即入棧。子程序返回前再出棧。如如 PUSH ACCPUSH ACC POP ACC POP ACC 3 3)中斷服務(wù)程序必須以)中斷服務(wù)程序必須以RETIRETI結(jié)束,因為結(jié)束,因為RETIRETI指令具指令具 有兩個功
54、能:第有兩個功能:第一,將斷點地址彈回一,將斷點地址彈回PCPC指針,以保證能繼續(xù)原來的程序,第二,能將指針,以保證能繼續(xù)原來的程序,第二,能將中斷優(yōu)先級狀態(tài)觸發(fā)器清零,以保證新的中斷請求能夠被相應(yīng)。中斷優(yōu)先級狀態(tài)觸發(fā)器清零,以保證新的中斷請求能夠被相應(yīng)。實驗:中斷XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1
55、/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51(NO) ORG 0000H AJMP MAIN ORG 0003H LCALL INTO ; 調(diào)中斷子程序 RETI ORG 0100HMAIN: SETB EA ;開中斷 SETBEX0 ;開INT0中斷 SETB IT0 ;邊沿觸發(fā) MOV P1,#00H ;顯示零 AJMP $開始中斷入口
56、地址跳入中斷子程序主程序開中斷開INT0中斷邊沿觸發(fā)P1端口清零等待中斷中斷中斷返回主程序INTO: INC R0 MOV A,R0 LCALL DISPLAY MOV P0,A ;輸出顯示 RET ENDDISPLAY:MOV B,#100 DIV AB MOV R3,A MOV A,#10 XCH A,B DIV AB SWAP Al ADD A,B MOV P1,A MOV A,R3 RET中斷子程序R0R0+1A R0轉(zhuǎn)換十進制(調(diào)十進制轉(zhuǎn)換子程序)P0 A輸出顯示子程序返回結(jié)束中斷子程序轉(zhuǎn)換十進制子程序MCS-51 MCS-51 的中斷程序設(shè)計實驗的中斷程序設(shè)計實驗交通燈控制實驗交通
57、燈控制實驗1設(shè)計和調(diào)試一個交通燈控制程序。要求具有如下功能設(shè)計和調(diào)試一個交通燈控制程序。要求具有如下功能: A道和道和B道上均有車輛要求通過時,道上均有車輛要求通過時,A、B道輪流放行。道輪流放行。A道道放行放行1分鐘(調(diào)試時改為分鐘(調(diào)試時改為1秒鐘),秒鐘),B道放行道放行0.5分鐘(調(diào)試分鐘(調(diào)試時改為時改為0.5秒鐘)。秒鐘)。1. 有緊急車輛要求通過時,系統(tǒng)要能禁止普通車輛通過,有緊急車輛要求通過時,系統(tǒng)要能禁止普通車輛通過,A、B道均為紅燈,緊急車由道均為紅燈,緊急車由K開關(guān)模擬,有緊急車時開關(guān)模擬,有緊急車時K為低電為低電平。平。B道道傳感器傳感器A道道P1.0P1.1P1.2P
58、1.3P1.4P1.5P1.6P1.7K正常正常綠燈綠燈黃燈黃燈紅燈紅燈綠燈綠燈黃燈黃燈紅燈紅燈 ORG 0000H LJMP START ;跳到主程序跳到主程序 ORG 0013H ;中斷入口地址中斷入口地址 LCALL INTI ;調(diào)中斷子程序調(diào)中斷子程序 RETI ;中斷返回中斷返回 ORG 0100H MAIN:SETB ET1 ;T1開中斷開中斷 SETB PT1 ;T1中斷為高優(yōu)先中斷為高優(yōu)先 SETB EA ;CPU開中斷開中斷 redA BIT P1.0 ;定義定義A道紅燈道紅燈 yellowA BIT P1.1 ;定義定義A道黃燈道黃燈 greenA BIT P1.2 ;定義
59、定義A道綠燈道綠燈 redB BIT P1.3 ;定義定義B道紅燈道紅燈 yellowB BIT P1.4 ;定義定義B道黃燈道黃燈 greenB BIT P1.5 ;定義定義B道綠燈道綠燈 START:SETB EA ;開所有中斷開所有中斷SETB EX1 ;開開INT1中斷中斷 CLR IT1 ;令令I(lǐng)NT1為電平觸發(fā)為電平觸發(fā) MOV P1,#00H ;所有燈等電位(燈滅)所有燈等電位(燈滅) SETB greenA ;A道亮綠燈道亮綠燈 SETB redB ;B道亮紅燈道亮紅燈 LOOP1:MOV 30H,#04H LCALL DELAY ;調(diào)延時調(diào)延時0.5秒子程序秒子程序 LOOP
60、2:CLR greenA ;A道綠燈滅道綠燈滅 SETB yellowA ;A道黃燈亮道黃燈亮 MOV 30H,#08H LCALL DELAY ;調(diào)延時調(diào)延時1秒子程序秒子程序 CLR redB ;B道紅燈滅道紅燈滅 SETB greenB ;B道亮綠燈道亮綠燈 CLR yellowA ;A道黃燈滅道黃燈滅 SETB redA ;A道紅燈亮道紅燈亮LOOP3: MOV 30H,#04H ; LCALL DELAY ;調(diào)延時調(diào)延時0.5秒子程序秒子程序LOOP4: CLR greenB ;B道綠燈滅道綠燈滅 SETB yellowB ;B道黃燈亮道黃燈亮 MOV 30H,#08H LCALL
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版數(shù)學(xué)九年級下冊第二十九章投影與視圖-測試題
- 合同模板供貨合同范本
- 2024年紫外輻照計項目合作計劃書
- 2024年造紙檢測儀器合作協(xié)議書
- 背簍購銷合同范本
- 項目貸款合同范本
- 保安解約合同范本
- 鹽城工學(xué)院《產(chǎn)業(yè)用紡織品》2023-2024學(xué)年第一學(xué)期期末試卷
- 鹽城工學(xué)院《材料科學(xué)基礎(chǔ)》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024年度重慶市高校教師資格證之高等教育法規(guī)提升訓(xùn)練試卷A卷附答案
- 面相與手相課件
- 《嬰幼兒行為觀察、記錄與評價》習(xí)題庫(項目一)認(rèn)識嬰幼兒行為觀察、記錄與評價
- 煙草局考試計算機專業(yè)考試題
- 2023年浙江省衢州市七年級上學(xué)期數(shù)學(xué)期中考試試卷附答案
- 2023年中國船級社人才招聘筆試參考題庫附帶答案詳解
- 學(xué)生綜合素質(zhì)評價管理機制和保障制度精選范文
- 初中學(xué)生綜合素質(zhì)評價表
- 冷熱源工程課程設(shè)計
- 儲罐氣柜基礎(chǔ)施工質(zhì)量確認(rèn)復(fù)測記錄
- 員工技能矩陣圖
- 職業(yè)技能鑒定《高級眼鏡驗光員》考前點題卷二
評論
0/150
提交評論