




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)技術(shù)與應(yīng)用實(shí)踐第5章單片機(jī)中斷系統(tǒng)5.1中斷概述5.2中斷系統(tǒng)的結(jié)構(gòu)與控制5.3中斷處理過程5.4外部中斷源的擴(kuò)展5.5中斷應(yīng)用舉例5.6實(shí)踐訓(xùn)練單片機(jī)技術(shù)與應(yīng)用實(shí)踐5.1中斷概述5.1.1中斷的概念什么是中斷?我們從一個(gè)生活中的例子引入。你正在家中看書,突然鈴響了,你在書中做好記號(hào)后放下書本,去接,和來的人交談,然后放下,回來繼續(xù)看你的書。這就是生活中的“中斷〞現(xiàn)象。“某人看書〞就好比執(zhí)行主程序;“鈴響〞就好比中斷請(qǐng)求,產(chǎn)生中斷信號(hào);“暫停看書〞好比中斷響應(yīng),要求暫停執(zhí)行主程序;“書中作記號(hào)〞好比保護(hù)斷點(diǎn),要求當(dāng)前PC入棧;“談話〞好比中斷處理,要求執(zhí)行中斷效勞程序;“回來繼續(xù)看書〞好比中斷返回,要求返回主程序。這個(gè)例子實(shí)際上包含了單片機(jī)處理中斷的4個(gè)步驟:中斷請(qǐng)求、中斷響應(yīng)、中斷處理和中斷返回,如圖5-1所示。圖5-1中斷響應(yīng)的過程中斷的概念:1.中斷源生活中很多事件可以引起中斷:有人按了門鈴,鈴響了,你的鬧鐘響了,你燒的水開了等諸如此類的事件。我們把可以引起中斷的事件稱為中斷源。單片機(jī)中也有一些可以引起中斷的事件,8051中一共有5個(gè)中斷源:兩個(gè)外部中斷,兩個(gè)計(jì)數(shù)器/定時(shí)器中斷,一個(gè)串行口中斷。2.中斷的嵌套與優(yōu)先級(jí)處理假設(shè)你正在看書,鈴響了,同時(shí)又有人按門鈴,你該先做哪樣事呢?如果你正是在等一個(gè)很重要的,你一般不會(huì)去理會(huì)門鈴的;反之,如果你正在等一個(gè)重要的客人,那么可能就不會(huì)去理會(huì)。如果不是這兩者(即不等,也不是等人上門),你可能會(huì)按你通常的習(xí)慣去處理。總之,這里存在一個(gè)優(yōu)先級(jí)的問題。單片機(jī)中也是如此,也有優(yōu)先級(jí)的問題。優(yōu)先級(jí)的問題不僅發(fā)生在兩個(gè)中斷同時(shí)產(chǎn)生的情況,也發(fā)生在一個(gè)中斷已產(chǎn)生,又有一個(gè)中斷產(chǎn)生的情況。比方,你正接,有人按門鈴的情況,或者你正開門與人交談,又有響了的情況。這種情況下應(yīng)該怎么辦呢?3.中斷的響應(yīng)過程當(dāng)有事件產(chǎn)生時(shí),進(jìn)入中斷之前,必須先記住現(xiàn)在看書的頁(yè)數(shù),或拿一個(gè)書簽放在當(dāng)前頁(yè)的位置,然后去處理不同的事情(因?yàn)樘幚硗赀€要回來繼續(xù)看書):鈴響就要到放的地方去,門鈴響就要到門那邊去,也就是說,不同的中斷要在不同的地點(diǎn)處理,而這個(gè)地點(diǎn)通常還是固定的。計(jì)算機(jī)中也是采用這種方法,5個(gè)中斷源,每個(gè)中斷產(chǎn)生后都到一個(gè)固定的地方去尋找處理這個(gè)中斷的程序,當(dāng)然在去之前首先要保存下面將要執(zhí)行的指令的地址,以便處理完中斷后回到原來的地方繼續(xù)往下執(zhí)行程序。具體地說,中斷響應(yīng)可以分為以下幾個(gè)步驟。(1)保護(hù)斷點(diǎn):即保存下一將要執(zhí)行的指令的地址,就是把該地址送入堆棧。(2)尋找中斷入口:根據(jù)5個(gè)不同的中斷源所產(chǎn)生的中斷查找5個(gè)不同的入口地址。以上工作是由計(jì)算機(jī)自動(dòng)完成的,與編程者無(wú)關(guān)。在這5個(gè)入口地址處存放有中斷處理程序。(3)執(zhí)行中斷處理程序。(4)中斷返回:執(zhí)行完中斷指令后,就從中斷處返回到主程序繼續(xù)執(zhí)行。5.1.2中斷的特點(diǎn)1.分時(shí)操作中斷可以解決快速的CPU與慢速的外設(shè)之間的矛盾,使CPU和外設(shè)同時(shí)工作。CPU在啟動(dòng)外設(shè)工作后繼續(xù)執(zhí)行主程序,同時(shí)外設(shè)也在工作,每當(dāng)外設(shè)做完一件事就發(fā)出中斷申請(qǐng),請(qǐng)求CPU中斷它正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷效勞程序(一般情況是處理輸入/輸出數(shù)據(jù)),中斷處理完之后,CPU恢復(fù)執(zhí)行主程序,外設(shè)也繼續(xù)工作。這樣,CPU可啟動(dòng)多個(gè)外設(shè)同時(shí)工作,大大提高了CPU的效率。2.實(shí)時(shí)處理在實(shí)時(shí)控制中,現(xiàn)場(chǎng)的各種參數(shù)、信息均隨時(shí)間和現(xiàn)場(chǎng)的變化而變化。這些外界變量可根據(jù)要求隨時(shí)向CPU發(fā)出中斷申請(qǐng),請(qǐng)求CPU及時(shí)處理,如中斷條件滿足,CPU馬上就會(huì)響應(yīng)進(jìn)行相應(yīng)的處理,從而實(shí)現(xiàn)實(shí)時(shí)處理。3.故障處理針對(duì)難以預(yù)料的情況或故障,如掉電、存儲(chǔ)出錯(cuò)、運(yùn)算溢出等,可通過中斷系統(tǒng)由故障源向CPU發(fā)出中斷請(qǐng)求,再由CPU轉(zhuǎn)到相應(yīng)的故障處理程序進(jìn)行處理。5.2中斷系統(tǒng)的結(jié)構(gòu)與控制
5.2.1中斷系統(tǒng)的結(jié)構(gòu)圖5-2所示是MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu),它由與中斷有關(guān)的特殊功能存放器、中斷入口、順序查詢邏輯電路等組成。圖5-2MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)5.2.2中斷系統(tǒng)控制1.中斷源MCS-51單片機(jī)提供5個(gè)中斷源,其中兩個(gè)為外部中斷源INT0(P3.2)、INT1(P3.3),兩個(gè)為片內(nèi)定時(shí)器/計(jì)數(shù)器T0和T1的溢出中斷源TF0(TCON.5)、F1(TCON.7),一個(gè)串行口發(fā)送與接收中斷源TI(SCON.1)或RI(SCON.0)。這些中斷源分別由TCON與SCON的相應(yīng)位鎖存。定時(shí)器/計(jì)數(shù)器控制存放器TCON是定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器1(T0、T1)的控制存放器,它同時(shí)也用來鎖存T0、T1的溢出中斷源和外部中斷源。如圖5-3所示。圖5-3TCON存放器IT0:外部中斷0觸發(fā)方式控制位。IT0=0,INT0(P3.2)為低電平觸發(fā)方式;IT0=1,INT0(P3.2)為負(fù)跳變觸發(fā)方式。IE0:外部中斷0標(biāo)志位。IE0=1,外部中斷0向CPU請(qǐng)求中斷。IT1:外部中斷1觸發(fā)方式控制位。IE1:外部中斷1標(biāo)志位。TF0:T0中斷溢出標(biāo)志位。T0溢出硬件置1,響應(yīng)中斷后硬件清0(在查詢方式下軟件清0)。TF1:T1中斷溢出標(biāo)志位,功能同TF0。TR0:T0的啟??刂莆弧R1:T1的啟??刂莆弧?.中斷源的自然優(yōu)先級(jí)與中斷效勞程序入口地址MCS-51單片機(jī)有5個(gè)獨(dú)立的中斷源,它們可以利用專用存放器IP設(shè)置不同的優(yōu)先級(jí)。假設(shè)都被設(shè)置成同一優(yōu)先級(jí),5個(gè)中斷源的自然優(yōu)先級(jí)由硬件形成,排列如表5-1所示。表5-1中斷自然優(yōu)先級(jí)排序?qū)τ贛CS-51單片機(jī)的5個(gè)獨(dú)立中斷源,應(yīng)有相應(yīng)的中斷效勞程序,這些程序應(yīng)有固定的存放位置。好比5扇門的鎖需要5把鑰匙才能翻開一樣,搞錯(cuò)了就不可能翻開對(duì)應(yīng)的門。5個(gè)獨(dú)立中斷源所對(duì)應(yīng)的向量地址如表5-2所示。表5-2中斷源的入口地址3.中斷控制1) 中斷允許存放器在8051單片機(jī)中斷系統(tǒng)中,中斷的允許或禁止是由8位中斷允許存放器IE來控制的。中斷允許存放器IE(SFR地址:0A8H)各位的定義如表5-3所示。表5-3中斷允許存放器IEEA:總允許位(一級(jí)控制)。EA=0時(shí),禁止一切中斷;EA=1時(shí),中斷開放。ES:串行口中斷允許位(二級(jí)控制)。ES=1時(shí)允許RI、TI引發(fā)中斷,否那么禁止串口中斷。ET1、ET0:定時(shí)器T1、T0允許位,ET1=1或ET0=1時(shí),允許TF1或TF0引發(fā)中斷,否那么禁止相應(yīng)的定時(shí)器中斷。EX1、EX0:外部中斷1/外部中斷0,允許位EX1=1或EX0=1時(shí)允許相應(yīng)的外部中斷,否那么禁止相應(yīng)的外部中斷。2)中斷的優(yōu)先級(jí)控制存放器中斷優(yōu)先級(jí)存放器IP(SFR地址:0B8H)各位的定義如表5-4所示。表5-4中斷優(yōu)先級(jí)存放器IPPS:串行口中斷優(yōu)先級(jí)設(shè)定位。PT1、PT0:定時(shí)器T1、T0中斷優(yōu)先級(jí)設(shè)定位。PX1、PX0:外部中斷1、外部中斷0的中斷優(yōu)先級(jí)設(shè)定位。以上各位假設(shè)被置1,那么相應(yīng)的中斷將被設(shè)置為高優(yōu)先級(jí)中斷;假設(shè)被置0,那么相應(yīng)的中斷將被設(shè)置為低優(yōu)先級(jí)中斷。假設(shè)將T0、外中斷1設(shè)為高優(yōu)先級(jí),其他設(shè)為低優(yōu)先級(jí),求IP的值。IP的前3位沒用,可任意取值,設(shè)為000,后面根據(jù)要求寫即可,指令為:MOVIP,#00000110B5.3中斷處理過程
5.3.1中斷系統(tǒng)的功能1.實(shí)現(xiàn)中斷響應(yīng)和中斷返回〔中斷響應(yīng)流程圖如圖5-4所示〕圖5-4中斷響應(yīng)流程圖
2.實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)通常,系統(tǒng)中有多個(gè)中斷源,當(dāng)有多個(gè)中斷源同時(shí)發(fā)出中斷請(qǐng)求時(shí),要求計(jì)算機(jī)能確定哪個(gè)中斷更緊迫,以便首先響應(yīng)。為此,計(jì)算機(jī)給每個(gè)中斷源規(guī)定了優(yōu)先級(jí)別,稱為優(yōu)先權(quán)。這樣,當(dāng)多個(gè)中斷源同時(shí)發(fā)出中斷請(qǐng)求時(shí),優(yōu)先權(quán)高的中斷能先被響應(yīng),只有優(yōu)先權(quán)高的中斷處理結(jié)束后才能響應(yīng)優(yōu)先權(quán)低的中斷。計(jì)算機(jī)按中斷源優(yōu)先權(quán)上下逐次響應(yīng)的過程稱優(yōu)先權(quán)排隊(duì),這個(gè)過程可通過硬件電路來實(shí)現(xiàn),也可通過軟件查詢來實(shí)現(xiàn)。3.實(shí)現(xiàn)中斷嵌套當(dāng)CPU響應(yīng)某一中斷時(shí),假設(shè)有優(yōu)先權(quán)高的中斷源發(fā)出中斷請(qǐng)求,那么CPU中斷正在進(jìn)行的中斷效勞程序,并保存這個(gè)程序的斷點(diǎn)(類似于子程序嵌套),響應(yīng)高級(jí)中斷,高級(jí)中斷處理結(jié)束以后,再繼續(xù)執(zhí)行被中斷的中斷效勞程序,這個(gè)過程稱為中斷嵌套,其示意圖如圖5-5所示。如果發(fā)出新的中斷請(qǐng)求的中斷源的優(yōu)先權(quán)級(jí)別與正在處理的中斷源同級(jí)或更低時(shí),CPU不會(huì)響應(yīng)這個(gè)中斷請(qǐng)求,直至正在處理的中斷效勞程序執(zhí)行完以后才可以處理新的中斷請(qǐng)求。圖5-5中斷嵌套流程5.3.2中斷處理1.中斷響應(yīng)中斷響應(yīng)是CPU對(duì)中斷源中斷請(qǐng)求的響應(yīng),包括保護(hù)斷點(diǎn)和將程序轉(zhuǎn)向中斷效勞程序的入口地址(通常稱矢量地址)。CPU并非任何時(shí)刻都響應(yīng)中斷請(qǐng)求,而是在中斷響應(yīng)條件滿足之后才會(huì)響應(yīng)。CPU響應(yīng)中斷的條件如下。有中斷源發(fā)出中斷請(qǐng)求。中斷總允許位EA=1。申請(qǐng)中斷的中斷源允許。滿足以上根本條件后,CPU一般會(huì)響應(yīng)中斷,但假設(shè)有以下任何一種情況存在,那么中斷響應(yīng)會(huì)受到阻斷。CPU正在響應(yīng)同級(jí)或高優(yōu)先級(jí)的中斷。當(dāng)前指令未執(zhí)行完。正在執(zhí)行RETI中斷返回指令或訪問專用存放器IE和IP的指令。假設(shè)存在上述任何一種情況,中斷查詢結(jié)果即被取消,CPU不響應(yīng)中斷請(qǐng)求而在下一機(jī)器周期繼續(xù)查詢;否那么,CPU在下一機(jī)器周期響應(yīng)中斷。CPU在每個(gè)機(jī)器周期的S5P2期間查詢每個(gè)中斷源,并設(shè)置相應(yīng)的標(biāo)志位,在下一機(jī)器周期S6期間按優(yōu)先級(jí)順序查詢每個(gè)中斷標(biāo)志,如果查詢到某個(gè)中斷標(biāo)志為1,那么將在下一個(gè)機(jī)器周期S1期間按優(yōu)先級(jí)進(jìn)行中斷處理。2.中斷響應(yīng)過程中斷響應(yīng)過程包括保護(hù)斷點(diǎn)和將程序轉(zhuǎn)向中斷效勞程序的入口地址。首先,中斷系統(tǒng)通過硬件自動(dòng)生成長(zhǎng)調(diào)用指令(LCALL),該指令將自動(dòng)把斷點(diǎn)地址壓入堆棧保護(hù)(不保護(hù)累加器A、程序狀態(tài)存放器PSW和其他存放器的內(nèi)容),然后,將對(duì)應(yīng)的中斷入口地址裝入程序計(jì)數(shù)器PC(由硬件自動(dòng)執(zhí)行),使程序轉(zhuǎn)向該中斷入口地址,執(zhí)行中斷效勞程序。MCS-51單片機(jī)各中斷源的入口地址由硬件事先設(shè)定,這在前面已經(jīng)提過。使用時(shí),通常在這些中斷入口地址處存放一條無(wú)條件轉(zhuǎn)移指令,使程序跳轉(zhuǎn)到用戶安排的中斷效勞程序的起始地址。比方,要采用定時(shí)器T1中斷,其中斷入口地址為001BH,中斷效勞程序名為CONT,因此指令形式為:ORG001BH;T1中斷入口AJMPCONT ;轉(zhuǎn)向中斷效勞程序3.中斷處理中斷處理就是執(zhí)行中斷效勞程序。中斷效勞程序從中斷入口地址開始執(zhí)行,到返回指令RETI為止。一般包括兩局部?jī)?nèi)容:一是保護(hù)現(xiàn)場(chǎng);二是完成中斷源請(qǐng)求的效勞。通常,主程序和中斷效勞程序都會(huì)用到累加器A、程序狀態(tài)存放器PSW及其他一些存放器,當(dāng)CPU進(jìn)入中斷效勞程序用到上述存放器時(shí),會(huì)破壞原來存儲(chǔ)在存放器中的內(nèi)容,一旦中斷返回,將會(huì)導(dǎo)致主程序混亂,因此,在進(jìn)入中斷效勞程序后,一般要先保護(hù)現(xiàn)場(chǎng),然后執(zhí)行中斷處理程序,在中斷返回之前再恢復(fù)現(xiàn)場(chǎng)。編寫中斷效勞程序時(shí)還需注意以下幾點(diǎn)。(1) 各中斷源的中斷入口地址之間只相隔8B,容納不下普通的中斷效勞程序,因此,在中斷入口地址單元通常存放一條無(wú)條件轉(zhuǎn)移指令,可將中斷效勞程序轉(zhuǎn)至存儲(chǔ)器的其他任何空間。(2) 假設(shè)要在執(zhí)行當(dāng)前中斷程序時(shí)禁止其他更高優(yōu)先級(jí)中斷,需先用軟件關(guān)閉CPU中斷,或用軟件禁止相應(yīng)高優(yōu)先級(jí)的中斷,在中斷返回前再開放中斷。(3) 在保護(hù)和恢復(fù)現(xiàn)場(chǎng)時(shí),為了不使現(xiàn)場(chǎng)數(shù)據(jù)遭到破壞或造成混亂,一般規(guī)定此時(shí)CPU不再響應(yīng)新的中斷請(qǐng)求。因此,在編寫中斷效勞程序時(shí),要注意在保護(hù)現(xiàn)場(chǎng)前關(guān)中斷,在保護(hù)現(xiàn)場(chǎng)后假設(shè)允許高優(yōu)先級(jí)中斷,那么應(yīng)開中斷。同樣,在恢復(fù)現(xiàn)場(chǎng)前也應(yīng)先關(guān)中斷,恢復(fù)之后再開中斷。4.中斷返回中斷返回是指中斷效勞完成后,計(jì)算機(jī)返回原來斷開的位置(即斷點(diǎn)),繼續(xù)執(zhí)行原來的程序。中斷返回由中斷返回指令RETI實(shí)現(xiàn)。該指令的功能是把斷點(diǎn)地址從堆棧中彈出,送回到程序計(jì)數(shù)器PC,此外,還通知中斷系統(tǒng)已完成中斷處理,并同時(shí)去除優(yōu)先級(jí)狀態(tài)觸發(fā)器。特別要注意的是,不能用RET指令代替RETI指令。中斷處理流程圖如圖5-6所示。圖5-6中斷處理流程圖5.中斷請(qǐng)求的撤除CPU響應(yīng)中斷請(qǐng)求后即進(jìn)入中斷效勞程序,在中斷返回前,應(yīng)撤除該中斷請(qǐng)求,否那么會(huì)重復(fù)引起中斷而導(dǎo)致錯(cuò)誤。MCS-51單片機(jī)各中斷源中斷請(qǐng)求撤銷的方法各不相同,下面將分別介紹。1)定時(shí)器中斷請(qǐng)求的撤除對(duì)于定時(shí)器0或定時(shí)器1溢出中斷,CPU在響應(yīng)中斷后即由硬件自動(dòng)去除其中斷標(biāo)志位TF0或TF1,無(wú)需采取其他措施。2)串行口中斷請(qǐng)求的撤除對(duì)于串行口中斷,CPU在響應(yīng)中斷后,硬件不能自動(dòng)去除中斷請(qǐng)求標(biāo)志位TI、RI,必須在中斷效勞程序中用軟件將其去除。3)外部中斷請(qǐng)求的撤除外部中斷可分為邊沿觸發(fā)型和電平觸發(fā)型。對(duì)于邊沿觸發(fā)的外部中斷0或1,CPU在響應(yīng)中斷后由硬件自動(dòng)去除其中斷標(biāo)志位IE0或IE1,無(wú)需采取其他措施。對(duì)于電平觸發(fā)的外部中斷,其中斷請(qǐng)求撤除方法較復(fù)雜。因?yàn)閷?duì)于電平觸發(fā)外中斷,CPU在響應(yīng)中斷后,硬件不會(huì)自動(dòng)去除其中斷請(qǐng)求標(biāo)志位IE0或IE1,同時(shí),也不能用軟件將其去除,所以,在CPU響應(yīng)中斷后,應(yīng)立即撤除INT0或INT1引腳上的低電平;否那么,就會(huì)引起重復(fù)中斷而導(dǎo)致錯(cuò)誤。而CPU又不能控制INT0或INT1引腳的信號(hào),因此,只有通過硬件再配合相應(yīng)軟件才能解決這個(gè)問題。圖5-7所示是可行方案之一。圖5-7撤除外部中斷請(qǐng)求的電路6.中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間是指從中斷請(qǐng)求標(biāo)志位置位到CPU開始執(zhí)行中斷效勞程序的第一條指令所持續(xù)的時(shí)間。CPU并非每時(shí)每刻對(duì)中斷請(qǐng)求都予以響應(yīng),另外,不同的中斷請(qǐng)求其響應(yīng)時(shí)間也是不同的,因此,中斷響應(yīng)時(shí)間形成的過程較為復(fù)雜。以外部中斷為例,CPU在每個(gè)機(jī)器周期的S5P2期間檢測(cè)其輸入引腳INT0或INT1端的電平,如果中斷請(qǐng)求有效,那么置位中斷請(qǐng)求標(biāo)志位IE0或IE1,然后在下一個(gè)機(jī)器周期再對(duì)這些值進(jìn)行查詢,這就意味著中斷請(qǐng)求信號(hào)的低電平至少應(yīng)維持一個(gè)機(jī)器周期。這時(shí),如果滿足中斷響應(yīng)條件,那么CPU響應(yīng)中斷請(qǐng)求,在下一個(gè)機(jī)器周期執(zhí)行一條硬件長(zhǎng)調(diào)用指令LCALL,使程序轉(zhuǎn)入中斷矢量入口。該調(diào)用指令執(zhí)行時(shí)間是兩個(gè)機(jī)器周期,因此,外部中斷響應(yīng)時(shí)間至少需要3個(gè)機(jī)器周期,這是最短的中斷響應(yīng)時(shí)間。如果中斷請(qǐng)求不能滿足前面所述的3個(gè)條件而被阻斷,那么中斷響應(yīng)時(shí)間將延長(zhǎng)。例如,一個(gè)同級(jí)或更高級(jí)的中斷正在進(jìn)行,那么附加的等待時(shí)間取決于正在進(jìn)行的中斷效勞程序的,長(zhǎng)度。如果正在執(zhí)行的一條指令還沒有進(jìn)行到最后一個(gè)機(jī)器周期,那么附加的等待時(shí)間為1~3個(gè)機(jī)器周期(因?yàn)橐粭l指令的最長(zhǎng)執(zhí)行時(shí)間為4個(gè)機(jī)器周期)。如果正在執(zhí)行的指令是RETI指令,那么附加的等待時(shí)間在5個(gè)機(jī)器周期之內(nèi)(最多用一個(gè)機(jī)器周期完成當(dāng)前指令,再加上最多4個(gè)機(jī)器周期完成下一條指令)。假設(shè)系統(tǒng)中只有一個(gè)中斷源,那么中斷響應(yīng)時(shí)間為3~8個(gè)機(jī)器周期。5.4外部中斷源的擴(kuò)展
5.4.1用定時(shí)器作外部中斷源MCS-51單片機(jī)有兩個(gè)定時(shí)器,具有兩個(gè)內(nèi)部中斷標(biāo)志和外部計(jì)數(shù)引腳,如在某些應(yīng)用中不被使用,那么它們的中斷可作為外部中斷請(qǐng)求使用。此時(shí),可將定時(shí)器設(shè)置成計(jì)數(shù)方式,計(jì)數(shù)初值可設(shè)為滿量程,那么它們的計(jì)數(shù)輸入端T0(P3.4)或T1(P3.5)引腳上發(fā)生負(fù)跳變時(shí),計(jì)數(shù)器加1便產(chǎn)生溢出中斷。利用此特性,可把T0腳或T1腳作為外部中斷請(qǐng)求輸入線,而計(jì)數(shù)器的溢出中斷作為外部中斷請(qǐng)求標(biāo)志?!纠?-1】將定時(shí)器T0擴(kuò)展為外部中斷源。解:將定時(shí)器T0設(shè)定為方式2(自動(dòng)恢復(fù)計(jì)數(shù)初值),TH0和TL0的初值均設(shè)置為FFH,允許T0中斷,CPU開放中斷,局部源程序如下:MOV TMOD,#06HMOV TH0,#0FFHMOV TL0,#0FFHSETBTR0SETBET0SETBEA…當(dāng)連接在T0(P3.4)引腳的外部中斷請(qǐng)求輸入線發(fā)生負(fù)跳變時(shí),TL0加1溢出,TF0置1,向CPU發(fā)出中斷申請(qǐng),同時(shí),TH0的內(nèi)容自動(dòng)送至TL0,使TL0恢復(fù)初值。這樣,T0引腳每輸入一個(gè)負(fù)跳變,TF0都會(huì)置1,向CPU請(qǐng)求中斷,此時(shí),T0腳相當(dāng)于邊沿觸發(fā)的外部中斷源輸入線。同樣,也可將定時(shí)器T1擴(kuò)展為外部中斷源。5.4.2中斷和查詢相結(jié)合利用兩根外部中斷輸入線(INT0引腳),每一中斷輸入線可以通過或非的關(guān)系連接多個(gè)外部中斷源,同時(shí),利用并行輸入端口線作為多個(gè)中斷源的識(shí)別線,其電路原理如圖5-8所示。圖5-8一個(gè)外部中斷擴(kuò)展成多個(gè)外部中斷的原理由圖5-8可知,4個(gè)外部擴(kuò)展中斷源通過4個(gè)OC門電路組成線或后再與INT0(P3.2)相連,4個(gè)外部擴(kuò)展中斷源EXINT0~EXINT3中有一個(gè)或幾個(gè)出現(xiàn)高電平那么輸出為0,使腳為低電平,從而發(fā)出中斷請(qǐng)求,因此,這些擴(kuò)充的外部中斷源都是電平觸發(fā)方式(高電平有效)。CPU執(zhí)行中斷效勞程序時(shí),先依次查詢P1口的中斷源輸入狀態(tài),然后轉(zhuǎn)入到相應(yīng)的中斷效勞程序,4個(gè)擴(kuò)展中斷源的優(yōu)先級(jí)順序由軟件查詢順序決定,即最先查詢的優(yōu)先級(jí)最高,最后查詢的優(yōu)先級(jí)最低。中斷效勞程序如下:ORG 0003H ;外部中斷0入口 AJMP INT_0 ;轉(zhuǎn)向中斷效勞程序入口
INT_0:PUSH PSW ;保護(hù)現(xiàn)場(chǎng) PUSH ACC JBP1.0,EXINT0;中斷源查詢并轉(zhuǎn)相應(yīng)中斷程序 JB P1.1,EXINT1 JB P1.2,EXINT2 JB P1.3,EXINT3EXIT:POPACC ;恢復(fù)現(xiàn)場(chǎng)POPPSW RETI
EXINT0: ;EXINT0中斷效勞程序 AJMP EXITEXINT1: ;EXINT1中斷效勞程序 AJMP EXITEXINT2: ;EXINT2中斷效勞程序 AJMP EXITEXINT3: ;EXINT3中斷效勞程序 AJMP EXIT同樣,外部中斷1(INT1)也可作相應(yīng)的擴(kuò)展。5.5中斷應(yīng)用舉例
中斷控制實(shí)質(zhì)上是對(duì)4個(gè)與中斷有關(guān)的特殊功能存放器TCON、SCON、IE和IP進(jìn)行管理和控制,具體實(shí)施如下。(1)CPU的開、關(guān)中斷。(2)具體中斷源中斷請(qǐng)求的允許和禁止(屏蔽)。(3)各中斷源優(yōu)先級(jí)別的控制。(4)外部中斷請(qǐng)求觸發(fā)方式的設(shè)定。中斷管理和控制程序一般都包含在主程序中,根據(jù)需要通過幾條指令來完成。中斷效勞程序是一種具有特定功能的獨(dú)立程序段,可根據(jù)中斷源的具體要求進(jìn)行效勞。下面通過實(shí)例來說明其具體應(yīng)用?!纠?-2】請(qǐng)寫出INT1為低電平觸發(fā)的中斷系統(tǒng)初始化程序。解:(1)采用位操作指令。SETB EASETB EX1 ;開INT1中斷SETB PX1 ;令I(lǐng)NT1為高優(yōu)先級(jí)CLR IT1 ;令I(lǐng)NT1為電平觸發(fā)(2)采用字節(jié)型指令。MOV IE,#84H ;開INT1中斷MOV IP,#04H ;令I(lǐng)NT1為高優(yōu)先級(jí)ANL TCON,#0FBH ;令I(lǐng)NT1為電平觸發(fā)【例5-3】利用外部中斷0(P3.2口),使P1.0口接的LED作為中斷響應(yīng),按鈕SB接在P3.2腳上,硬件簡(jiǎn)圖如圖5-9所示,運(yùn)行以下程序,分析功能。解:程序清單如下: 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ù)進(jìn)棧 PUSH PSW CPL P1.0 ;取反 POP PSW ;數(shù)據(jù)出棧,目的是保護(hù)現(xiàn)場(chǎng) POP ACC RETI ;中斷返回 END圖5-9外部中斷0的簡(jiǎn)單應(yīng)用【例5-4】P1口作輸出口,正常時(shí)控制8只燈(P1口輸出低電平時(shí)燈被點(diǎn)亮)每隔0.5s全亮全滅一次;按下開關(guān)1,8只燈從右向左依次點(diǎn)亮;按下開關(guān)2,8只燈從左向右依次點(diǎn)亮。開關(guān)1的低電平脈沖信號(hào)作為外部中斷信號(hào)由INT0(P3.2)管腳輸入,開關(guān)2的低電平信號(hào)作為外部中斷信號(hào)由INT1(P3.3)管腳輸入。解:中斷允許存放器IE中相應(yīng)的EA、EX1、EX0位設(shè)置為1。外部中斷0為低優(yōu)先級(jí),IP中的PX0位設(shè)置為0;外部中斷1為高優(yōu)先級(jí),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)先級(jí) 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 ;燈點(diǎn)亮的初始狀態(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 ;燈點(diǎn)亮的初始狀態(tài)NEXT0:MOVP1,A LCALL DELAY RLA DJNZ R2,NEXT0 POP PSW POP ACC RETIDELAY:MOV R3,#250 ;延時(shí)0.5s程序DEL2:MOV R2,#248 NOPDEL1:DJNZ R2,DEL1 DJNZ R3,DEL2 RET END5.6實(shí)踐訓(xùn)練
任務(wù):工業(yè)順序控制1.實(shí)現(xiàn)任務(wù)工業(yè)順序控制,由P1.0~1.6控制注塑機(jī)的7道工序,現(xiàn)模擬控制7只發(fā)光二極管的點(diǎn)亮,低電平有效,設(shè)定每道工序時(shí)間轉(zhuǎn)換為延時(shí),P3.4為開工啟動(dòng)開關(guān),高電平啟動(dòng)。P3.3為外部故障輸入模擬開關(guān),低電平報(bào)警,P1.7為報(bào)警聲音輸出,設(shè)定6道工序只有1位輸出,第七道工序3位有輸出。2.任務(wù)目標(biāo)(1)掌握中斷的初始化步驟。(2)了解中斷的處理過程。(3)了解中斷效勞子程序與普通子程序的異同。3.知識(shí)點(diǎn)分析(1)中斷的入口地址。(2)中斷源的產(chǎn)生、中斷的控制、優(yōu)先級(jí)的處理、中斷的響應(yīng)和返回。4.實(shí)施過程(1)硬件設(shè)計(jì)P3.4接K1,P3.3接K2(外中斷1),P1.0~P1.6分別接發(fā)光二極管D1~D7,P1.7接LM386正向輸入端,通過LM386功率放大后5腳輸入接揚(yáng)聲器,由它發(fā)出報(bào)警聲音。硬件設(shè)計(jì)如圖5-12所示。圖5-12工業(yè)順序控制2) 軟件設(shè)計(jì)根據(jù)要求,程序設(shè)計(jì)如下: ORG 0000H LJMP PO10 ORG 0013H ;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 沖天爐購(gòu)買合同范例
- 協(xié)議維修合同范本
- QQ賬號(hào)借用合同范本
- 廚房整改施工合同范本
- 醫(yī)院體檢合同范本
- 廚師與學(xué)校合同范本
- 雙方貿(mào)易合同范本
- 印章加蓋合同范本
- 代簽解約合同范本
- 保潔個(gè)人合同范本
- 中央2025年中國(guó)科協(xié)所屬單位招聘社會(huì)在職人員14人筆試歷年參考題庫(kù)附帶答案詳解-1
- 2024年濰坊工程職業(yè)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 殯儀服務(wù)員職業(yè)技能鑒定考試題(附答案)
- 電動(dòng)葫蘆吊裝方案計(jì)劃
- 2025年山東電工電氣集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 《建立特種設(shè)備“日管控、周排查、月調(diào)度”工作機(jī)制》專題培訓(xùn)
- 《自然語(yǔ)言處理》課件
- 壓裂設(shè)備專用件項(xiàng)目評(píng)價(jià)分析報(bào)告
- 2025上半年重慶萬(wàn)州區(qū)事業(yè)單位招聘擬聘用人員歷年管理單位筆試遴選500模擬題附帶答案詳解
- 造價(jià)咨詢服務(wù)方案進(jìn)度計(jì)劃安排及保證措施
- 公路養(yǎng)護(hù)工安全操作規(guī)程模版(2篇)
評(píng)論
0/150
提交評(píng)論