單片機技術(shù)及應(yīng)用-第五章 單片機中斷系統(tǒng)_第1頁
單片機技術(shù)及應(yīng)用-第五章 單片機中斷系統(tǒng)_第2頁
單片機技術(shù)及應(yīng)用-第五章 單片機中斷系統(tǒng)_第3頁
單片機技術(shù)及應(yīng)用-第五章 單片機中斷系統(tǒng)_第4頁
單片機技術(shù)及應(yīng)用-第五章 單片機中斷系統(tǒng)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機技術(shù)與應(yīng)用實踐第5章單片機中斷系統(tǒng)5.1中斷概述5.2中斷系統(tǒng)的結(jié)構(gòu)與控制5.3中斷處理過程5.4外部中斷源的擴展5.5中斷應(yīng)用舉例5.6實踐訓練單片機技術(shù)與應(yīng)用實踐5.1中斷概述5.1.1中斷的概念什么是中斷?我們從一個生活中的例子引入。你正在家中看書,突然鈴響了,你在書中做好記號后放下書本,去接,和來的人交談,然后放下,回來繼續(xù)看你的書。這就是生活中的“中斷〞現(xiàn)象?!澳橙丝磿暰秃帽葓?zhí)行主程序;“鈴響〞就好比中斷請求,產(chǎn)生中斷信號;“暫停看書〞好比中斷響應(yīng),要求暫停執(zhí)行主程序;“書中作記號〞好比保護斷點,要求當前PC入棧;“談話〞好比中斷處理,要求執(zhí)行中斷效勞程序;“回來繼續(xù)看書〞好比中斷返回,要求返回主程序。這個例子實際上包含了單片機處理中斷的4個步驟:中斷請求、中斷響應(yīng)、中斷處理和中斷返回,如圖5-1所示。圖5-1中斷響應(yīng)的過程中斷的概念:1.中斷源生活中很多事件可以引起中斷:有人按了門鈴,鈴響了,你的鬧鐘響了,你燒的水開了等諸如此類的事件。我們把可以引起中斷的事件稱為中斷源。單片機中也有一些可以引起中斷的事件,8051中一共有5個中斷源:兩個外部中斷,兩個計數(shù)器/定時器中斷,一個串行口中斷。2.中斷的嵌套與優(yōu)先級處理假設(shè)你正在看書,鈴響了,同時又有人按門鈴,你該先做哪樣事呢?如果你正是在等一個很重要的,你一般不會去理會門鈴的;反之,如果你正在等一個重要的客人,那么可能就不會去理會。如果不是這兩者(即不等,也不是等人上門),你可能會按你通常的習慣去處理??傊@里存在一個優(yōu)先級的問題。單片機中也是如此,也有優(yōu)先級的問題。優(yōu)先級的問題不僅發(fā)生在兩個中斷同時產(chǎn)生的情況,也發(fā)生在一個中斷已產(chǎn)生,又有一個中斷產(chǎn)生的情況。比方,你正接,有人按門鈴的情況,或者你正開門與人交談,又有響了的情況。這種情況下應(yīng)該怎么辦呢?3.中斷的響應(yīng)過程當有事件產(chǎn)生時,進入中斷之前,必須先記住現(xiàn)在看書的頁數(shù),或拿一個書簽放在當前頁的位置,然后去處理不同的事情(因為處理完還要回來繼續(xù)看書):鈴響就要到放的地方去,門鈴響就要到門那邊去,也就是說,不同的中斷要在不同的地點處理,而這個地點通常還是固定的。計算機中也是采用這種方法,5個中斷源,每個中斷產(chǎn)生后都到一個固定的地方去尋找處理這個中斷的程序,當然在去之前首先要保存下面將要執(zhí)行的指令的地址,以便處理完中斷后回到原來的地方繼續(xù)往下執(zhí)行程序。具體地說,中斷響應(yīng)可以分為以下幾個步驟。(1)保護斷點:即保存下一將要執(zhí)行的指令的地址,就是把該地址送入堆棧。(2)尋找中斷入口:根據(jù)5個不同的中斷源所產(chǎn)生的中斷查找5個不同的入口地址。以上工作是由計算機自動完成的,與編程者無關(guān)。在這5個入口地址處存放有中斷處理程序。(3)執(zhí)行中斷處理程序。(4)中斷返回:執(zhí)行完中斷指令后,就從中斷處返回到主程序繼續(xù)執(zhí)行。5.1.2中斷的特點1.分時操作中斷可以解決快速的CPU與慢速的外設(shè)之間的矛盾,使CPU和外設(shè)同時工作。CPU在啟動外設(shè)工作后繼續(xù)執(zhí)行主程序,同時外設(shè)也在工作,每當外設(shè)做完一件事就發(fā)出中斷申請,請求CPU中斷它正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷效勞程序(一般情況是處理輸入/輸出數(shù)據(jù)),中斷處理完之后,CPU恢復執(zhí)行主程序,外設(shè)也繼續(xù)工作。這樣,CPU可啟動多個外設(shè)同時工作,大大提高了CPU的效率。2.實時處理在實時控制中,現(xiàn)場的各種參數(shù)、信息均隨時間和現(xiàn)場的變化而變化。這些外界變量可根據(jù)要求隨時向CPU發(fā)出中斷申請,請求CPU及時處理,如中斷條件滿足,CPU馬上就會響應(yīng)進行相應(yīng)的處理,從而實現(xiàn)實時處理。3.故障處理針對難以預(yù)料的情況或故障,如掉電、存儲出錯、運算溢出等,可通過中斷系統(tǒng)由故障源向CPU發(fā)出中斷請求,再由CPU轉(zhuǎn)到相應(yīng)的故障處理程序進行處理。5.2中斷系統(tǒng)的結(jié)構(gòu)與控制

5.2.1中斷系統(tǒng)的結(jié)構(gòu)圖5-2所示是MCS-51單片機的中斷系統(tǒng)結(jié)構(gòu),它由與中斷有關(guān)的特殊功能存放器、中斷入口、順序查詢邏輯電路等組成。圖5-2MCS-51單片機的中斷系統(tǒng)結(jié)構(gòu)5.2.2中斷系統(tǒng)控制1.中斷源MCS-51單片機提供5個中斷源,其中兩個為外部中斷源INT0(P3.2)、INT1(P3.3),兩個為片內(nèi)定時器/計數(shù)器T0和T1的溢出中斷源TF0(TCON.5)、F1(TCON.7),一個串行口發(fā)送與接收中斷源TI(SCON.1)或RI(SCON.0)。這些中斷源分別由TCON與SCON的相應(yīng)位鎖存。定時器/計數(shù)器控制存放器TCON是定時器/計數(shù)器0和定時器/計數(shù)器1(T0、T1)的控制存放器,它同時也用來鎖存T0、T1的溢出中斷源和外部中斷源。如圖5-3所示。圖5-3TCON存放器IT0:外部中斷0觸發(fā)方式控制位。IT0=0,INT0(P3.2)為低電平觸發(fā)方式;IT0=1,INT0(P3.2)為負跳變觸發(fā)方式。IE0:外部中斷0標志位。IE0=1,外部中斷0向CPU請求中斷。IT1:外部中斷1觸發(fā)方式控制位。IE1:外部中斷1標志位。TF0:T0中斷溢出標志位。T0溢出硬件置1,響應(yīng)中斷后硬件清0(在查詢方式下軟件清0)。TF1:T1中斷溢出標志位,功能同TF0。TR0:T0的啟??刂莆?。TR1:T1的啟停控制位。2.中斷源的自然優(yōu)先級與中斷效勞程序入口地址MCS-51單片機有5個獨立的中斷源,它們可以利用專用存放器IP設(shè)置不同的優(yōu)先級。假設(shè)都被設(shè)置成同一優(yōu)先級,5個中斷源的自然優(yōu)先級由硬件形成,排列如表5-1所示。表5-1中斷自然優(yōu)先級排序?qū)τ贛CS-51單片機的5個獨立中斷源,應(yīng)有相應(yīng)的中斷效勞程序,這些程序應(yīng)有固定的存放位置。好比5扇門的鎖需要5把鑰匙才能翻開一樣,搞錯了就不可能翻開對應(yīng)的門。5個獨立中斷源所對應(yīng)的向量地址如表5-2所示。表5-2中斷源的入口地址3.中斷控制1) 中斷允許存放器在8051單片機中斷系統(tǒng)中,中斷的允許或禁止是由8位中斷允許存放器IE來控制的。中斷允許存放器IE(SFR地址:0A8H)各位的定義如表5-3所示。表5-3中斷允許存放器IEEA:總允許位(一級控制)。EA=0時,禁止一切中斷;EA=1時,中斷開放。ES:串行口中斷允許位(二級控制)。ES=1時允許RI、TI引發(fā)中斷,否那么禁止串口中斷。ET1、ET0:定時器T1、T0允許位,ET1=1或ET0=1時,允許TF1或TF0引發(fā)中斷,否那么禁止相應(yīng)的定時器中斷。EX1、EX0:外部中斷1/外部中斷0,允許位EX1=1或EX0=1時允許相應(yīng)的外部中斷,否那么禁止相應(yīng)的外部中斷。2)中斷的優(yōu)先級控制存放器中斷優(yōu)先級存放器IP(SFR地址:0B8H)各位的定義如表5-4所示。表5-4中斷優(yōu)先級存放器IPPS:串行口中斷優(yōu)先級設(shè)定位。PT1、PT0:定時器T1、T0中斷優(yōu)先級設(shè)定位。PX1、PX0:外部中斷1、外部中斷0的中斷優(yōu)先級設(shè)定位。以上各位假設(shè)被置1,那么相應(yīng)的中斷將被設(shè)置為高優(yōu)先級中斷;假設(shè)被置0,那么相應(yīng)的中斷將被設(shè)置為低優(yōu)先級中斷。假設(shè)將T0、外中斷1設(shè)為高優(yōu)先級,其他設(shè)為低優(yōu)先級,求IP的值。IP的前3位沒用,可任意取值,設(shè)為000,后面根據(jù)要求寫即可,指令為:MOVIP,#00000110B5.3中斷處理過程

5.3.1中斷系統(tǒng)的功能1.實現(xiàn)中斷響應(yīng)和中斷返回〔中斷響應(yīng)流程圖如圖5-4所示〕圖5-4中斷響應(yīng)流程圖

2.實現(xiàn)優(yōu)先權(quán)排隊通常,系統(tǒng)中有多個中斷源,當有多個中斷源同時發(fā)出中斷請求時,要求計算機能確定哪個中斷更緊迫,以便首先響應(yīng)。為此,計算機給每個中斷源規(guī)定了優(yōu)先級別,稱為優(yōu)先權(quán)。這樣,當多個中斷源同時發(fā)出中斷請求時,優(yōu)先權(quán)高的中斷能先被響應(yīng),只有優(yōu)先權(quán)高的中斷處理結(jié)束后才能響應(yīng)優(yōu)先權(quán)低的中斷。計算機按中斷源優(yōu)先權(quán)上下逐次響應(yīng)的過程稱優(yōu)先權(quán)排隊,這個過程可通過硬件電路來實現(xiàn),也可通過軟件查詢來實現(xiàn)。3.實現(xiàn)中斷嵌套當CPU響應(yīng)某一中斷時,假設(shè)有優(yōu)先權(quán)高的中斷源發(fā)出中斷請求,那么CPU中斷正在進行的中斷效勞程序,并保存這個程序的斷點(類似于子程序嵌套),響應(yīng)高級中斷,高級中斷處理結(jié)束以后,再繼續(xù)執(zhí)行被中斷的中斷效勞程序,這個過程稱為中斷嵌套,其示意圖如圖5-5所示。如果發(fā)出新的中斷請求的中斷源的優(yōu)先權(quán)級別與正在處理的中斷源同級或更低時,CPU不會響應(yīng)這個中斷請求,直至正在處理的中斷效勞程序執(zhí)行完以后才可以處理新的中斷請求。圖5-5中斷嵌套流程5.3.2中斷處理1.中斷響應(yīng)中斷響應(yīng)是CPU對中斷源中斷請求的響應(yīng),包括保護斷點和將程序轉(zhuǎn)向中斷效勞程序的入口地址(通常稱矢量地址)。CPU并非任何時刻都響應(yīng)中斷請求,而是在中斷響應(yīng)條件滿足之后才會響應(yīng)。CPU響應(yīng)中斷的條件如下。有中斷源發(fā)出中斷請求。中斷總允許位EA=1。申請中斷的中斷源允許。滿足以上根本條件后,CPU一般會響應(yīng)中斷,但假設(shè)有以下任何一種情況存在,那么中斷響應(yīng)會受到阻斷。CPU正在響應(yīng)同級或高優(yōu)先級的中斷。當前指令未執(zhí)行完。正在執(zhí)行RETI中斷返回指令或訪問專用存放器IE和IP的指令。假設(shè)存在上述任何一種情況,中斷查詢結(jié)果即被取消,CPU不響應(yīng)中斷請求而在下一機器周期繼續(xù)查詢;否那么,CPU在下一機器周期響應(yīng)中斷。CPU在每個機器周期的S5P2期間查詢每個中斷源,并設(shè)置相應(yīng)的標志位,在下一機器周期S6期間按優(yōu)先級順序查詢每個中斷標志,如果查詢到某個中斷標志為1,那么將在下一個機器周期S1期間按優(yōu)先級進行中斷處理。2.中斷響應(yīng)過程中斷響應(yīng)過程包括保護斷點和將程序轉(zhuǎn)向中斷效勞程序的入口地址。首先,中斷系統(tǒng)通過硬件自動生成長調(diào)用指令(LCALL),該指令將自動把斷點地址壓入堆棧保護(不保護累加器A、程序狀態(tài)存放器PSW和其他存放器的內(nèi)容),然后,將對應(yīng)的中斷入口地址裝入程序計數(shù)器PC(由硬件自動執(zhí)行),使程序轉(zhuǎn)向該中斷入口地址,執(zhí)行中斷效勞程序。MCS-51單片機各中斷源的入口地址由硬件事先設(shè)定,這在前面已經(jīng)提過。使用時,通常在這些中斷入口地址處存放一條無條件轉(zhuǎn)移指令,使程序跳轉(zhuǎn)到用戶安排的中斷效勞程序的起始地址。比方,要采用定時器T1中斷,其中斷入口地址為001BH,中斷效勞程序名為CONT,因此指令形式為:ORG001BH;T1中斷入口AJMPCONT ;轉(zhuǎn)向中斷效勞程序3.中斷處理中斷處理就是執(zhí)行中斷效勞程序。中斷效勞程序從中斷入口地址開始執(zhí)行,到返回指令RETI為止。一般包括兩局部內(nèi)容:一是保護現(xiàn)場;二是完成中斷源請求的效勞。通常,主程序和中斷效勞程序都會用到累加器A、程序狀態(tài)存放器PSW及其他一些存放器,當CPU進入中斷效勞程序用到上述存放器時,會破壞原來存儲在存放器中的內(nèi)容,一旦中斷返回,將會導致主程序混亂,因此,在進入中斷效勞程序后,一般要先保護現(xiàn)場,然后執(zhí)行中斷處理程序,在中斷返回之前再恢復現(xiàn)場。編寫中斷效勞程序時還需注意以下幾點。(1) 各中斷源的中斷入口地址之間只相隔8B,容納不下普通的中斷效勞程序,因此,在中斷入口地址單元通常存放一條無條件轉(zhuǎn)移指令,可將中斷效勞程序轉(zhuǎn)至存儲器的其他任何空間。(2) 假設(shè)要在執(zhí)行當前中斷程序時禁止其他更高優(yōu)先級中斷,需先用軟件關(guān)閉CPU中斷,或用軟件禁止相應(yīng)高優(yōu)先級的中斷,在中斷返回前再開放中斷。(3) 在保護和恢復現(xiàn)場時,為了不使現(xiàn)場數(shù)據(jù)遭到破壞或造成混亂,一般規(guī)定此時CPU不再響應(yīng)新的中斷請求。因此,在編寫中斷效勞程序時,要注意在保護現(xiàn)場前關(guān)中斷,在保護現(xiàn)場后假設(shè)允許高優(yōu)先級中斷,那么應(yīng)開中斷。同樣,在恢復現(xiàn)場前也應(yīng)先關(guān)中斷,恢復之后再開中斷。4.中斷返回中斷返回是指中斷效勞完成后,計算機返回原來斷開的位置(即斷點),繼續(xù)執(zhí)行原來的程序。中斷返回由中斷返回指令RETI實現(xiàn)。該指令的功能是把斷點地址從堆棧中彈出,送回到程序計數(shù)器PC,此外,還通知中斷系統(tǒng)已完成中斷處理,并同時去除優(yōu)先級狀態(tài)觸發(fā)器。特別要注意的是,不能用RET指令代替RETI指令。中斷處理流程圖如圖5-6所示。圖5-6中斷處理流程圖5.中斷請求的撤除CPU響應(yīng)中斷請求后即進入中斷效勞程序,在中斷返回前,應(yīng)撤除該中斷請求,否那么會重復引起中斷而導致錯誤。MCS-51單片機各中斷源中斷請求撤銷的方法各不相同,下面將分別介紹。1)定時器中斷請求的撤除對于定時器0或定時器1溢出中斷,CPU在響應(yīng)中斷后即由硬件自動去除其中斷標志位TF0或TF1,無需采取其他措施。2)串行口中斷請求的撤除對于串行口中斷,CPU在響應(yīng)中斷后,硬件不能自動去除中斷請求標志位TI、RI,必須在中斷效勞程序中用軟件將其去除。3)外部中斷請求的撤除外部中斷可分為邊沿觸發(fā)型和電平觸發(fā)型。對于邊沿觸發(fā)的外部中斷0或1,CPU在響應(yīng)中斷后由硬件自動去除其中斷標志位IE0或IE1,無需采取其他措施。對于電平觸發(fā)的外部中斷,其中斷請求撤除方法較復雜。因為對于電平觸發(fā)外中斷,CPU在響應(yīng)中斷后,硬件不會自動去除其中斷請求標志位IE0或IE1,同時,也不能用軟件將其去除,所以,在CPU響應(yīng)中斷后,應(yīng)立即撤除INT0或INT1引腳上的低電平;否那么,就會引起重復中斷而導致錯誤。而CPU又不能控制INT0或INT1引腳的信號,因此,只有通過硬件再配合相應(yīng)軟件才能解決這個問題。圖5-7所示是可行方案之一。圖5-7撤除外部中斷請求的電路6.中斷響應(yīng)時間中斷響應(yīng)時間是指從中斷請求標志位置位到CPU開始執(zhí)行中斷效勞程序的第一條指令所持續(xù)的時間。CPU并非每時每刻對中斷請求都予以響應(yīng),另外,不同的中斷請求其響應(yīng)時間也是不同的,因此,中斷響應(yīng)時間形成的過程較為復雜。以外部中斷為例,CPU在每個機器周期的S5P2期間檢測其輸入引腳INT0或INT1端的電平,如果中斷請求有效,那么置位中斷請求標志位IE0或IE1,然后在下一個機器周期再對這些值進行查詢,這就意味著中斷請求信號的低電平至少應(yīng)維持一個機器周期。這時,如果滿足中斷響應(yīng)條件,那么CPU響應(yīng)中斷請求,在下一個機器周期執(zhí)行一條硬件長調(diào)用指令LCALL,使程序轉(zhuǎn)入中斷矢量入口。該調(diào)用指令執(zhí)行時間是兩個機器周期,因此,外部中斷響應(yīng)時間至少需要3個機器周期,這是最短的中斷響應(yīng)時間。如果中斷請求不能滿足前面所述的3個條件而被阻斷,那么中斷響應(yīng)時間將延長。例如,一個同級或更高級的中斷正在進行,那么附加的等待時間取決于正在進行的中斷效勞程序的,長度。如果正在執(zhí)行的一條指令還沒有進行到最后一個機器周期,那么附加的等待時間為1~3個機器周期(因為一條指令的最長執(zhí)行時間為4個機器周期)。如果正在執(zhí)行的指令是RETI指令,那么附加的等待時間在5個機器周期之內(nèi)(最多用一個機器周期完成當前指令,再加上最多4個機器周期完成下一條指令)。假設(shè)系統(tǒng)中只有一個中斷源,那么中斷響應(yīng)時間為3~8個機器周期。5.4外部中斷源的擴展

5.4.1用定時器作外部中斷源MCS-51單片機有兩個定時器,具有兩個內(nèi)部中斷標志和外部計數(shù)引腳,如在某些應(yīng)用中不被使用,那么它們的中斷可作為外部中斷請求使用。此時,可將定時器設(shè)置成計數(shù)方式,計數(shù)初值可設(shè)為滿量程,那么它們的計數(shù)輸入端T0(P3.4)或T1(P3.5)引腳上發(fā)生負跳變時,計數(shù)器加1便產(chǎn)生溢出中斷。利用此特性,可把T0腳或T1腳作為外部中斷請求輸入線,而計數(shù)器的溢出中斷作為外部中斷請求標志?!纠?-1】將定時器T0擴展為外部中斷源。解:將定時器T0設(shè)定為方式2(自動恢復計數(shù)初值),TH0和TL0的初值均設(shè)置為FFH,允許T0中斷,CPU開放中斷,局部源程序如下:MOV TMOD,#06HMOV TH0,#0FFHMOV TL0,#0FFHSETBTR0SETBET0SETBEA…當連接在T0(P3.4)引腳的外部中斷請求輸入線發(fā)生負跳變時,TL0加1溢出,TF0置1,向CPU發(fā)出中斷申請,同時,TH0的內(nèi)容自動送至TL0,使TL0恢復初值。這樣,T0引腳每輸入一個負跳變,TF0都會置1,向CPU請求中斷,此時,T0腳相當于邊沿觸發(fā)的外部中斷源輸入線。同樣,也可將定時器T1擴展為外部中斷源。5.4.2中斷和查詢相結(jié)合利用兩根外部中斷輸入線(INT0引腳),每一中斷輸入線可以通過或非的關(guān)系連接多個外部中斷源,同時,利用并行輸入端口線作為多個中斷源的識別線,其電路原理如圖5-8所示。圖5-8一個外部中斷擴展成多個外部中斷的原理由圖5-8可知,4個外部擴展中斷源通過4個OC門電路組成線或后再與INT0(P3.2)相連,4個外部擴展中斷源EXINT0~EXINT3中有一個或幾個出現(xiàn)高電平那么輸出為0,使腳為低電平,從而發(fā)出中斷請求,因此,這些擴充的外部中斷源都是電平觸發(fā)方式(高電平有效)。CPU執(zhí)行中斷效勞程序時,先依次查詢P1口的中斷源輸入狀態(tài),然后轉(zhuǎn)入到相應(yīng)的中斷效勞程序,4個擴展中斷源的優(yōu)先級順序由軟件查詢順序決定,即最先查詢的優(yōu)先級最高,最后查詢的優(yōu)先級最低。中斷效勞程序如下:ORG 0003H ;外部中斷0入口 AJMP INT_0 ;轉(zhuǎn)向中斷效勞程序入口

INT_0:PUSH PSW ;保護現(xiàn)場 PUSH ACC JBP1.0,EXINT0;中斷源查詢并轉(zhuǎn)相應(yīng)中斷程序 JB P1.1,EXINT1 JB P1.2,EXINT2 JB P1.3,EXINT3EXIT:POPACC ;恢復現(xiàn)場POPPSW RETI

EXINT0: ;EXINT0中斷效勞程序 AJMP EXITEXINT1: ;EXINT1中斷效勞程序 AJMP EXITEXINT2: ;EXINT2中斷效勞程序 AJMP EXITEXINT3: ;EXINT3中斷效勞程序 AJMP EXIT同樣,外部中斷1(INT1)也可作相應(yīng)的擴展。5.5中斷應(yīng)用舉例

中斷控制實質(zhì)上是對4個與中斷有關(guān)的特殊功能存放器TCON、SCON、IE和IP進行管理和控制,具體實施如下。(1)CPU的開、關(guān)中斷。(2)具體中斷源中斷請求的允許和禁止(屏蔽)。(3)各中斷源優(yōu)先級別的控制。(4)外部中斷請求觸發(fā)方式的設(shè)定。中斷管理和控制程序一般都包含在主程序中,根據(jù)需要通過幾條指令來完成。中斷效勞程序是一種具有特定功能的獨立程序段,可根據(jù)中斷源的具體要求進行效勞。下面通過實例來說明其具體應(yīng)用?!纠?-2】請寫出INT1為低電平觸發(fā)的中斷系統(tǒng)初始化程序。解:(1)采用位操作指令。SETB EASETB EX1 ;開INT1中斷SETB PX1 ;令I(lǐng)NT1為高優(yōu)先級CLR IT1 ;令I(lǐng)NT1為電平觸發(fā)(2)采用字節(jié)型指令。MOV IE,#84H ;開INT1中斷MOV IP,#04H ;令I(lǐng)NT1為高優(yōu)先級ANL TCON,#0FBH ;令I(lǐng)NT1為電平觸發(fā)【例5-3】利用外部中斷0(P3.2口),使P1.0口接的LED作為中斷響應(yīng),按鈕SB接在P3.2腳上,硬件簡圖如圖5-9所示,運行以下程序,分析功能。解:程序清單如下: ORG 0000H AJMP MAIN ORG 0003H ;外部中斷地址入口 AJMP INT_0 ;轉(zhuǎn)到真正的處理程序處 ORG 0030HMAIN:MOVSP,#5FH ;初始化堆棧 MOV P1,#0FFH ;燈全滅 MOV P3,#0FFH ;P3口置高電平 SETB IT0 ;下降沿觸發(fā) SETB EA ;開總中斷 SETB EX0 ;開外部中斷0 AJMP $ ;在本行等待INT_0:PUSHACC ;數(shù)據(jù)進棧 PUSH PSW CPL P1.0 ;取反 POP PSW ;數(shù)據(jù)出棧,目的是保護現(xiàn)場 POP ACC RETI ;中斷返回 END圖5-9外部中斷0的簡單應(yīng)用【例5-4】P1口作輸出口,正常時控制8只燈(P1口輸出低電平時燈被點亮)每隔0.5s全亮全滅一次;按下開關(guān)1,8只燈從右向左依次點亮;按下開關(guān)2,8只燈從左向右依次點亮。開關(guān)1的低電平脈沖信號作為外部中斷信號由INT0(P3.2)管腳輸入,開關(guān)2的低電平信號作為外部中斷信號由INT1(P3.3)管腳輸入。解:中斷允許存放器IE中相應(yīng)的EA、EX1、EX0位設(shè)置為1。外部中斷0為低優(yōu)先級,IP中的PX0位設(shè)置為0;外部中斷1為高優(yōu)先級,IP中的PX1位設(shè)置為1。外部中斷0的中斷觸發(fā)方式設(shè)為邊沿觸發(fā),控制位IT0應(yīng)設(shè)置為1;外部中斷1的中斷觸發(fā)方式設(shè)為電平觸發(fā),控制位IT1應(yīng)設(shè)置為0。程序清單如下:ORG 0000H ;程序入口 LJMP MAIN ;轉(zhuǎn)向主程序 ORG 0003H ;外部中斷0的入口地址 LJMP INT_0 ;轉(zhuǎn)向外部中斷0中斷效勞程序 ORG 0013H ;外部中斷1的入口地址 LJMP INT_1 ;轉(zhuǎn)向外部中斷1中斷效勞程序 ORG 0030H

MAIN:MOVSP,#80H MOV IE,#85H ;允許外部中斷0、外部中斷1 SETB PX1 ;外部中斷1為高優(yōu)先級 SETB TI0 ;外部中斷0為邊沿觸發(fā) MOV A,#00HLP1:MOV P1,A LCALL DELAY CPL A SJMP LP1 ORG 0100HINT_1:PUSH ACC ;外部中斷1中斷效勞程序 PUSH PSW SETB RS1 ;選擇第2組工作存放器 CLR RS0 MOV R2,#07H MOV A,#7FH ;燈點亮的初始狀態(tài)NEXT1:MOVP1,A LCALL DELAY RRA DJNZ R2,NEXT1 POP PSW POP ACC RETIINT_0:PUSH ACC ;外部中斷0中斷效勞程序 PUSH PSW SETB RS1 ;選擇第2組工作存放器 CLR RS0 MOV R2,#07H MOV A,#7FH ;燈點亮的初始狀態(tài)NEXT0:MOVP1,A LCALL DELAY RLA DJNZ R2,NEXT0 POP PSW POP ACC RETIDELAY:MOV R3,#250 ;延時0.5s程序DEL2:MOV R2,#248 NOPDEL1:DJNZ R2,DEL1 DJNZ R3,DEL2 RET END5.6實踐訓練

任務(wù):工業(yè)順序控制1.實現(xiàn)任務(wù)工業(yè)順序控制,由P1.0~1.6控制注塑機的7道工序,現(xiàn)模擬控制7只發(fā)光二極管的點亮,低電平有效,設(shè)定每道工序時間轉(zhuǎn)換為延時,P3.4為開工啟動開關(guān),高電平啟動。P3.3為外部故障輸入模擬開關(guān),低電平報警,P1.7為報警聲音輸出,設(shè)定6道工序只有1位輸出,第七道工序3位有輸出。2.任務(wù)目標(1)掌握中斷的初始化步驟。(2)了解中斷的處理過程。(3)了解中斷效勞子程序與普通子程序的異同。3.知識點分析(1)中斷的入口地址。(2)中斷源的產(chǎn)生、中斷的控制、優(yōu)先級的處理、中斷的響應(yīng)和返回。4.實施過程(1)硬件設(shè)計P3.4接K1,P3.3接K2(外中斷1),P1.0~P1.6分別接發(fā)光二極管D1~D7,P1.7接LM386正向輸入端,通過LM386功率放大后5腳輸入接揚聲器,由它發(fā)出報警聲音。硬件設(shè)計如圖5-12所示。圖5-12工業(yè)順序控制2) 軟件設(shè)計根據(jù)要求,程序設(shè)計如下: ORG 0000H LJMP PO10 ORG 0013H ;

溫馨提示

  • 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

提交評論