第5章 MCS -51的中斷系統(tǒng)及定時器計數(shù)器_第1頁
第5章 MCS -51的中斷系統(tǒng)及定時器計數(shù)器_第2頁
第5章 MCS -51的中斷系統(tǒng)及定時器計數(shù)器_第3頁
第5章 MCS -51的中斷系統(tǒng)及定時器計數(shù)器_第4頁
第5章 MCS -51的中斷系統(tǒng)及定時器計數(shù)器_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

第5章MCS-51的中斷系統(tǒng)及定時器/計數(shù)器12335.1MCS-51單片機(jī)的中斷系統(tǒng)5.2MCS-51單片機(jī)中斷處理過程5.3MCS-51單片機(jī)的定時器/計數(shù)器返回5.1MCS-51單片機(jī)的中斷系統(tǒng)5.1.1MCS-51中斷系統(tǒng)結(jié)構(gòu)1.中斷的概念當(dāng)中斷請求源發(fā)出中斷請求時,如果中斷請求被允許,單片機(jī)暫時中止當(dāng)前正在執(zhí)行的主程序,轉(zhuǎn)到中斷服務(wù)處理程序處理中斷服務(wù)請求。中斷服務(wù)處理程序處理完中斷服務(wù)請求后,再回到原來被中止的程序之處(斷點),繼續(xù)執(zhí)行被中斷的主程序。整個中斷響應(yīng)和處理過程如圖5-1所示。2.MCS-51中斷系統(tǒng)的結(jié)構(gòu)中斷系統(tǒng)結(jié)構(gòu)圖如圖5-2所示。下一頁返回5.1MCS-51單片機(jī)的中斷系統(tǒng)中斷系統(tǒng)有五個中斷請求源(簡稱中斷源),兩個中斷優(yōu)先級,可實現(xiàn)兩級中斷服務(wù)程序嵌套。每一中斷源可用軟件獨立控制為允許中斷或關(guān)中斷狀態(tài),中斷優(yōu)先級均可用軟件來設(shè)置。5.1.2MCS-51的中斷源1.中斷源MCS-51中斷系統(tǒng)可用圖5-1來表示。五個中斷源是:(1)INT0:來自P3.2引腳上的外部中斷請求(外中斷0);(2)INT1:來自P3.3引腳上的外部中斷請求(外中斷1);(3)T0:片內(nèi)定時器/計數(shù)器0溢出(TF0)中斷請求;上一頁下一頁返回5.1MCS-51單片機(jī)的中斷系統(tǒng)(4)T1:片內(nèi)定時器/計數(shù)器1溢出(TF1)中斷請求;(5)串行口:片內(nèi)串行口完成一幀發(fā)送或接收中斷請求源TI或PEI每一個中斷源都對應(yīng)有一個中斷請求標(biāo)志位,它們設(shè)置在特殊功能寄存器TCON和SCON中。當(dāng)這些中斷源請求中斷時,分別由TCON和SCON中的相應(yīng)位來鎖存。2.中斷請求標(biāo)志1)定時器控制寄存器TCONTCON是定時器/計數(shù)器0和1(T0,T1)的控制寄存器,它同時也用來鎖存T0,T1的溢出中斷請求源和外部中斷請求源。TCON寄存器中與中斷有關(guān)的位如下所示:上一頁下一頁返回5.1MCS-51單片機(jī)的中斷系統(tǒng)2)串行口控制寄存器SOON串行口控制寄存器SOON中的低2位用作串行口中斷標(biāo)志,如下所示:上一頁下一頁返回5.1MCS-51單片機(jī)的中斷系統(tǒng)5.1.3MCS-51中斷的控制1.中斷允許控制在MCS-51中斷系統(tǒng)中,中斷允許或禁止是由片內(nèi)的中斷允許寄存器IE(IE為特殊功能寄存器)控制的,IE中的各位功能如下:中斷允許寄存器中各相應(yīng)位的狀態(tài),可根據(jù)要求用指令置位或清零,從而實現(xiàn)該中斷源允許中斷或禁止中斷,復(fù)位時IE寄存器被清零。上一頁下一頁返回5.1MCS-51單片機(jī)的中斷系統(tǒng)2.中斷優(yōu)先級控制MCS-51中斷系統(tǒng)提供兩個中斷優(yōu)先級,對于每一個中斷請求源都可以編程為高優(yōu)先級中斷源或低優(yōu)先級中斷源,以便實現(xiàn)二級中斷嵌套。中斷優(yōu)先級是由片內(nèi)的中斷優(yōu)先級寄存器IP(特殊功能寄存器)控制的。IP寄存器中各位的功能說明如下:中斷優(yōu)先級控制寄存器IP中的各個控制位都可由編程來置位或復(fù)位(用位操作指令或字節(jié)操作指令),單片機(jī)復(fù)位后IP中各位均為0,各個中斷源均為低優(yōu)先級中斷源。上一頁下一頁返回5.1MCS-51單片機(jī)的中斷系統(tǒng)3.中斷優(yōu)先級結(jié)構(gòu)MCS-51中斷系統(tǒng)具有兩級優(yōu)先級(由IP寄存器把各個中斷源的優(yōu)先級分為高優(yōu)先級和低優(yōu)先級),它們遵循下列兩條基本規(guī)則:(1)低優(yōu)先級中斷源可被高優(yōu)先級中斷源所中斷,而高優(yōu)先級中斷源不能被任何中斷源所中斷;(2)一種中斷源(不管是高優(yōu)先級或低優(yōu)先級)一旦得到響應(yīng),與它同級的中斷源不能再中斷它。為了實現(xiàn)上述兩條規(guī)則,中斷系統(tǒng)內(nèi)部包含兩個不可尋址的優(yōu)先級狀態(tài)觸發(fā)器:一個用來指示某個高優(yōu)先級的中斷源正在得到服務(wù),并阻止所有其他中斷的響應(yīng);另一個觸發(fā)器指出某低優(yōu)先級的中斷源正得到服務(wù),所有同級的中斷都被阻止,但不阻止高優(yōu)先級中斷源。上一頁下一頁返回5.1MCS-51單片機(jī)的中斷系統(tǒng)當(dāng)同時收到幾個同一優(yōu)先級的中斷時,響應(yīng)哪一個中斷源取決于內(nèi)部查詢順序。其優(yōu)先級排列如下:上一頁返回5.2MCS-51單片機(jī)中斷處理過程5.2.1中斷響應(yīng)過程CPU在每個機(jī)器周期的S5P2時刻采樣中斷標(biāo)志,而在下一個機(jī)器周期對采樣到的中斷進(jìn)行查詢。如果在前一個機(jī)器周期的S5P2有中斷標(biāo)志,則在查詢周期內(nèi)便會查詢到,并按優(yōu)先級高低進(jìn)行中斷處理,中斷系統(tǒng)將控制程序轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。下列三個條件中任何一個都能封鎖CPU對中斷的響應(yīng):(1)CPU正在處理同級的或高一級的中斷;(2)現(xiàn)行的機(jī)器周期不是當(dāng)前所執(zhí)行指令的最后一個機(jī)器周期;(3)當(dāng)前正在執(zhí)行的指令是返回(RETI)指令或是對IE或IP寄存器進(jìn)行讀/寫的指令。下一頁返回5.2MCS-51單片機(jī)中斷處理過程上述三個條件中,第二條是保證把當(dāng)前指令執(zhí)行完,第三條是保證如果當(dāng)前執(zhí)行的是RETI指令或是對IE,IP進(jìn)行訪問的指令時,必須至少再執(zhí)行完一條指令之后才會響應(yīng)中斷。中斷查詢在每個機(jī)器周期中重復(fù)執(zhí)行,所查詢到的狀態(tài)為前一個機(jī)器周期的S5P2時刻采樣到的中斷標(biāo)志。這里要注意的是:如果中斷標(biāo)志被置位,但因上述條件之一的原因而未被響應(yīng),或上述封鎖條件已撤消,但中斷標(biāo)志位已不再存在(已不再是置位狀態(tài))時,被拖延的中斷就不再被響應(yīng),CPU將丟棄中斷查詢的結(jié)果。也就是說,CPU對中斷標(biāo)志置位后,如未及時響應(yīng)而轉(zhuǎn)入中斷服務(wù)程序的中斷標(biāo)志不作記憶。CPU響應(yīng)中斷時,先置相應(yīng)的優(yōu)先級激活觸發(fā)器,封鎖同級和低級的中斷然后根據(jù)中斷源的類別,在硬件的控制下,程序轉(zhuǎn)向相應(yīng)的向量入口單元,執(zhí)行中斷服務(wù)程序。上一頁下一頁返回5.2MCS-51單片機(jī)中斷處理過程硬件調(diào)用中斷服務(wù)程序時,把程序計數(shù)器PC的內(nèi)容壓入堆棧(但不能自動保存程序狀態(tài)字PSW的內(nèi)容),同時把被響應(yīng)的中斷服務(wù)程序的入口地址裝入PC中。五個中斷源服務(wù)程序的入口地址見表5-1。通常,在中斷入口地址處安排一條跳轉(zhuǎn)指令,以跳轉(zhuǎn)到用戶的服務(wù)程序入口。中斷服務(wù)程序的最后一條指令必須是中斷返回指令RET1。CPU執(zhí)行完這條指令后,把響應(yīng)中斷時所置位的優(yōu)先級激活,觸發(fā)器清零,然后從堆棧中彈出兩個字節(jié)的內(nèi)容(斷點地址)裝入程序計數(shù)器PC中,CPU就從原來被中斷處重新執(zhí)行被中斷的程序。上一頁下一頁返回5.2MCS-51單片機(jī)中斷處理過程5.2.2中斷響應(yīng)時間外部中斷INT0和INT1的電平在每個機(jī)器周期的S5P2時刻被采樣并鎖存到IE0和IE1中,這個置入到IE0和IE1的狀態(tài)在下一個機(jī)器周期才被查詢電路查詢。如果產(chǎn)生了一個中斷請求,而且滿足響應(yīng)的條件,CPU響應(yīng)中斷,由硬件生成一條長調(diào)用指令轉(zhuǎn)到相應(yīng)的服務(wù)程序入口。這條指令是雙機(jī)器周期指令。因此,從中斷請求有效到執(zhí)行中斷服務(wù)程序的第一條指令的時間間隔至少需要三個完整的機(jī)器周期。如果中斷請求被前面所述的三個條件之一封鎖,將需要更長的響應(yīng)時間。若一個同級的或高優(yōu)先級的中斷已經(jīng)在進(jìn)行,則延長的等待時間顯然取決于正在處理的中斷服務(wù)程序的長度。上一頁下一頁返回5.2MCS-51單片機(jī)中斷處理過程如果正在執(zhí)行的一條指令還沒有進(jìn)行到最后一個周期,則所延長的等待時間不會超過三個機(jī)器周期,這是因為MCS一51指令系統(tǒng)中最長的指令(MUL和DIV)也只有四個機(jī)器周期;假若正在執(zhí)行的是RETI指令或者是訪問IE或IP指令,則延長的等待時間不會超過五個機(jī)器周期,因為完成正在執(zhí)行的指令還需要一個周期,加上為完成下一條指令所需要的最長時間—四個周期,如MUL和DIV指令因此,在系統(tǒng)中只有一個中斷源的情況下,響應(yīng)時間總是在3一8個機(jī)器周期之間。5.2.3中斷返回中斷返回是指中斷服務(wù)完成后,計算機(jī)返回到斷點(即原來主程序被斷開的位置),繼續(xù)執(zhí)行原來的程序。上一頁下一頁返回5.2MCS-51單片機(jī)中斷處理過程中斷返回由專門的中斷返回指令“RETI”實現(xiàn),該指令的功能是把斷點地址取出,送回到程序計數(shù)器PC中去。另外,它還通知中斷系統(tǒng)已完成中斷處理,將清除優(yōu)先級狀態(tài)觸發(fā)器。特別要注意:不能用“POET”指令代替“RETI”指令。5.2.4中斷請求的撤除在中斷請求被響應(yīng)前,中斷源發(fā)出的中斷請求是由CPU鎖存在特殊功能寄存器TCON和SOON的相應(yīng)中斷標(biāo)志位中的。一旦某個中斷請求得到響應(yīng),CPU必須把它的相應(yīng)中斷標(biāo)志位復(fù)位成“0”狀態(tài)。否則,MCS-51就會因為中斷標(biāo)志位未能得到及時撤除而重復(fù)響應(yīng)同一中斷請求,這是絕對不容許的。上一頁下一頁返回5.2MCS-51單片機(jī)中斷處理過程MCS-51有五個中斷源,分屬于三種中斷類型。這三種類型是:外部中斷、定時器溢出中斷和串行口中斷。對于這三種中斷類型的中斷請求,其撤除方法是不相同的。現(xiàn)對它們分述如下:1.定時器溢出中斷請求的撤除TF0和TF1是定時器溢出中斷標(biāo)志位(見TCON),它們因定時器溢出中斷源的中斷請求的輸入而置位,因定時器溢出中斷得到響應(yīng)而自動復(fù)位成“0”狀態(tài)。因此,定時器溢出中斷源的中斷請求是自動撤除的,用戶根本不必專門撤除它們。2.串行口中斷請求的撤除TI和PEI是串行口中斷的標(biāo)志位(見SCON),中斷系統(tǒng)不能自動將它們撤除。上一頁下一頁返回5.2MCS-51單片機(jī)中斷處理過程這是因為MCS-51進(jìn)入串行口中斷服務(wù)程序后常需要對它們進(jìn)行檢測,以測定串行口發(fā)生了接收中斷還是發(fā)送中斷為防止CPU再次響應(yīng)這類中斷,用戶應(yīng)在中斷服務(wù)程序的適當(dāng)位置處通過如下指令將它們撤除:CLRTI;撤除發(fā)送中斷

CLRRI;撤除接收中斷若采用字節(jié)型指令,則也可采用如下指令:ANLSOON,#0FCH;撤除發(fā)送和接收中斷3.外部中斷請求的撤除外部中斷請求有兩種觸發(fā)方式:電平觸發(fā)和負(fù)邊沿觸發(fā)。對于這兩種不同的中斷觸發(fā)方式,MCS-51撤除它們的中斷請求的方法是不相同的。上一頁下一頁返回5.2MCS-51單片機(jī)中斷處理過程在負(fù)邊沿觸發(fā)方式下,外部中斷標(biāo)志IE0或IE1,是依靠CPU兩次檢測INT0或INT1上觸發(fā)電平狀態(tài)而置位的。因此,芯片設(shè)計者使CPU在響應(yīng)中斷時自動復(fù)位IE0或IE1就可撤除INT0或INT1上的中斷請求,因為外部中斷源在得到CPU的中斷服務(wù)時是不可能再在INT0或INT1上產(chǎn)生負(fù)邊沿而使中斷標(biāo)志位IE0或IE1置位的。在電平觸發(fā)方式下,外部中斷標(biāo)志IE0或IE1是依靠CPU檢測INT0或INT1上低電平而置位的。盡管CPU響應(yīng)中斷時相應(yīng)中斷標(biāo)志IE0或IE1能自動復(fù)位成”0”狀態(tài),但若外部中斷源不能及時撤除它在INT0或INT1上的低電平,就會再次使已經(jīng)變成“0”的中斷標(biāo)志IE0或IE1置位,這是絕對不允許的。因此,電平觸發(fā)型外部請求的撤除必須使INT0或INT1上低電平隨著其中斷被CPU響應(yīng)而變成高電平。上一頁下一頁返回5.2MCS-51單片機(jī)中斷處理過程一種可供采用的電平型外部中斷的撤除電路如圖5-3所示。由圖可見,當(dāng)外部中斷源產(chǎn)生中斷請求時,Q觸發(fā)器復(fù)位成“0”狀態(tài),Q端的低電平被送到INT0端,該低電平被MCS一51檢測到后就使中斷標(biāo)志IE0置“1“。80051響應(yīng)INT0上中斷請求便可轉(zhuǎn)入INT0中斷服務(wù)程序執(zhí)行,故我們可以在中斷服務(wù)程序開頭安排如下程序來撤除INT0上的低電平:INSVR:ANLP1,#0FEHORLP2,#01HCLRIE0…………上一頁下一頁返回5.2MCS-51單片機(jī)中斷處理過程……80C51執(zhí)行上述程序就可在P1.0上產(chǎn)生一個寬度為兩個機(jī)器周期的負(fù)脈沖。在該負(fù)脈沖作用下,Q觸發(fā)器被置位成“1”狀態(tài),INT0上電平也因此而變高,從而撤除了其上的中斷請求。上一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器MCS-51單片機(jī)內(nèi)部有兩個16位可編程的定時器/計數(shù)器,即定時器T0和定時器T1(80x52提供三個定時器,第三個稱定時器T2)。它們既可用作定時器方式,又可用作計數(shù)器方式。此外,T1還可以作為串行口的波特率發(fā)生器。5.4.1定時器/計數(shù)器的結(jié)構(gòu)和工作原理1.定時器/計數(shù)器的結(jié)構(gòu)定時器/計數(shù)器的結(jié)構(gòu)框圖見圖5-6。定時器/計數(shù)器的基本部件是兩個8位的計數(shù)器(其中TH1,TL1是T1的計數(shù)器,TH0,TL0是T0的計數(shù)器)拼裝而成。TMOD是定時器/計數(shù)器的工作方式寄存器,由它確定定時器/計數(shù)器的工作方式;TCON是定時器/計數(shù)器的控制寄存器,用于定時器/計數(shù)器的啟動和停止以及設(shè)置溢出標(biāo)志。下一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器2.定時器/計數(shù)器的工作原理在作定時器使用時,輸入的時鐘脈沖是由晶體振蕩器的輸出經(jīng)12分頻后得到的,所以定時器也可看作是對計算機(jī)機(jī)器周期的計數(shù)器。因為每個機(jī)器周期包含12個振蕩周期,故每一個機(jī)器周期定時器加1,可以把輸入的時鐘脈沖看成機(jī)器周期信號。故其頻率為晶振頻率的1/12。如果晶振頻率為12MHz,則定時器每接收一個輸入脈沖的時間為1μs。當(dāng)它用作對外部事件計數(shù)時,接相應(yīng)的外部輸入引腳T0(P3.4)或T1(P3.5)。在這種情況下,當(dāng)檢測到輸入引腳上的電平由高跳變到低時,計數(shù)器就加1(它在每個機(jī)器周期的S5P2時采樣外部輸入,當(dāng)采樣值在這個機(jī)器周期為高,在下一個機(jī)器周期為低時,則計數(shù)器加1)。上一頁下一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器加1操作發(fā)生在檢測到這種跳變后的一個機(jī)器周期中的S3P1時,因此需要兩個機(jī)器周期來識別一個從“1"到“0”的跳變,故最高計數(shù)頻率為晶振頻率的1/24。這就要求輸入信號的電平至少應(yīng)在跳變后一個機(jī)器周期內(nèi)保持不變,以保證在給定的電平再次變化前至少被采樣一次。5.4.2定時器/計數(shù)器的控制定時器/計數(shù)器有四種工作方式,其工作方式的選擇及控制都由兩個特殊功能寄存器(TMOD和TCON)的內(nèi)容來決定。用指令改變TMOD或TCON的內(nèi)容后,則在下一條指令的第一個機(jī)器周期的S1P1時起作用。1.工作方式寄存器TMOD上一頁下一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器特殊功能寄存器TMOD為定時器的方式控制寄存器,寄存器中每位的定義如圖5-7所示。高4位用于定時器1,低4位用于定時器0。其中,M1,M0用來確定所選的工作方式,如表5-2所示。1)M1M0:定時器/計數(shù)器四種工作方式選擇,如表5-2所示.2)C/T:定時器方式或計數(shù)器方式選擇位。C/T=1時,為計數(shù)器方式;C/T=0時,為定時器方式。(3)GATE:定時器/計數(shù)器運行控制位,用來確定對應(yīng)的外部中斷請求引腳(INT0,INT1)是否參與T0或T1的操作控制。當(dāng)GATE=0時,只要定時器控制寄存器TCON中的TRO(或TR1)被置1時,T0(或T1)被允許開始計數(shù)(TCON各位含義見后面敘述);當(dāng)GATE=1時,不僅要TCON中的TRO或TR1置位,還需要P3口的INT0或INT1引腳為高電平,才允許計數(shù)。上一頁下一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器2.控制寄存器TCON特殊功能寄存器TCON用于控制定時器的操作及對定時器中斷的控制。圖各位定義如圖5-8所示。圖中,D0一D3位與外部中斷有關(guān),已在中斷系統(tǒng)一節(jié)中介紹。(1)TR0;T0的運行控制位。該位置1或清零用來實現(xiàn)啟動計數(shù)或停止計數(shù)。(2)TFO;T0的溢出中斷標(biāo)志位。當(dāng)T0計數(shù)溢出時由硬件自動置1;在CPU中斷處理時由硬件清零。(3)TR1;T1的運行控制位,功能同TRO。(4)TF1;T1的溢出中斷標(biāo)志位,功能同TFO。TMOD和TCON寄存器在復(fù)位時其每一位均清零。上一頁下一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器5.4.3定時器/計數(shù)器的工作方式如前所述,MCS一51片內(nèi)的定時器/計數(shù)器可以通過對特殊功能寄存器TMOD中的控制位C/T的設(shè)置來選擇定時器方式或計數(shù)器方式;通過對M1M0兩位的設(shè)置來選擇四種工作方式。1.方式0M1M0=00時,被設(shè)置為工作方式。,等效邏輯結(jié)構(gòu)框圖如圖5-9所示(以定時器/計數(shù)器T1為例,TMOD.5TMOD.4=00)。13位計數(shù)器,由TLx(x=0,1)低5位和THx高8位構(gòu)成。TLx低5位溢出則向THx進(jìn)位,THx計數(shù)溢出則把TCON中的溢出標(biāo)志位TFx置“1'"圖5-9的C/T位控制的電子開關(guān)決定了定時器/計數(shù)器的兩種工作模式。上一頁下一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器(1)C/T=0,電子開關(guān)打在上面位置,T1(或T0)為定時器工作模式,把時鐘振蕩器12分頻后的脈沖作為計數(shù)信號。(2)C/T=1,電子開關(guān)打在下面位置,T1(或T0)為計數(shù)器工作模式,計數(shù)脈沖為P3.4(或P3.5)引腳上的外部輸入脈沖,當(dāng)引腳上發(fā)生負(fù)跳變時,計數(shù)器加1。GATE位狀態(tài)決定定時器/計數(shù)器的運行控制取決于TRx一個條件還是TRx和INTx(x=0,1)引腳狀態(tài)兩個條件。(1)GATE=0,A點(見圖5-9)電位恒為1,B點電位僅取決于TRx狀態(tài)。TRx=1,B點為高電平,控制端控制電子開關(guān)閉合,允許T1(或T0)對脈沖計數(shù);TRx=0,B點為低電平,電子開關(guān)斷開,禁止T1(或T0)計數(shù)。上一頁下一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器(2)GATE=1,B點電位由INTx(x=0,1)的輸入電平和TRx的狀態(tài)這兩個條件來確定。當(dāng)TRx=1,且INTx-1時,B點才為1,控制端控制電子開關(guān)閉合,允許T1(或T0)計數(shù)。故這種情況下計數(shù)器是否計數(shù)是由TRx和INTx兩個條件來共同控制的。2.方式1當(dāng)M1M0=01時,定時器/計數(shù)器工作于方式1,這時定時器/計數(shù)器的等效電路邏輯結(jié)構(gòu)如圖5-10所示。方式1和方式0的差別僅僅在于計數(shù)器的位數(shù)不同:方式1為16位計數(shù)器,由THx高8位和TLx低8位構(gòu)成(x=0,1);方式0則為13位計數(shù)器,有關(guān)控制狀態(tài)位的含義(GATE,C/T,TFx,TRx)與方式0相同。上一頁下一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器3.方式2方式0和方式1的最大特點是計數(shù)溢出后,計數(shù)器為全0。因此在循環(huán)定時或循環(huán)計數(shù)應(yīng)用時就存在用指令反復(fù)裝入計數(shù)初值的問題。這不僅影響定時精度,也給程序設(shè)計帶來麻煩。方式2就是針對此問題而設(shè)置的。當(dāng)M1M0為10時,定時器/計數(shù)器處于工作方式2,這時定時器/計數(shù)器的等效邏輯結(jié)構(gòu)如圖5-11所示(以定時器T1為例,x=1)。定時器/計數(shù)器的方式2為自動恢復(fù)初值(初值自動裝入)的8位定時器/計數(shù)器。TLx(x=0,1)作為常數(shù)緩沖器,當(dāng)TLx計數(shù)溢出時,在溢出標(biāo)志TFx置“1”的同時,還自動將THx中的初值送至TLx,使TLx從初值開始重新計數(shù)。上一頁下一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器方式2可省去用戶軟件中重裝初值的指令執(zhí)行時間,簡化定時初值的計算方法,可以相當(dāng)精確地確定定時時間。4.方式3方式3是為增加一個8位定時器/計數(shù)器而設(shè),使MCS-51單片機(jī)具有3個定時器/計數(shù)器。方式3只適用于T0,T1不能工作在方式3。T1處于方式3時相當(dāng)于TR1=0,停止計數(shù)(此時T1可用來作為串行口波特率產(chǎn)生器)。1)工作方式3下的T0TMOD的低2位為11時,T0的工作方式被選為方式3,各引腳與T0的邏輯關(guān)系如圖5-12所示。上一頁下一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器定時器/計數(shù)器T0分為兩個獨立的8位計數(shù)器TL0和TH0,TL0使用T0的狀態(tài)控制位C/T,GATE,TR0,TF0,而TH0被固定為一個8位定時器(不能作為外部計數(shù)模式),并使用定時器T1的狀態(tài)控制位TR1和TF1,同時占用定時器T1的中斷請求源TF1。2)T0工作在方式3時T1的各種工作方式一般情況下,當(dāng)T1用作串行口的波特率發(fā)生器時,T0才工作在方式3。T0處于工作方式3時,T1可定為方式0、方式1和方式2,用來作為串行口的波特率發(fā)生器或不需要中斷的場合。(1)T1工作在方式。T1的控制字中M1M0=00時,T1工作在方式0,工作示意圖如圖5-13所示。上一頁下一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器(2)T1工作在方式1當(dāng)T1的控制字中M1M0=01時,T1工作在方式1,工作示意圖如圖5-14所示。(3)T1工作在方式2當(dāng)T1的控制字中M1M0=10時,T1工作在方式2,工作示意圖如圖5-15所示。4)T1設(shè)置在方式3當(dāng)T0設(shè)置在方式3時,再把T1也設(shè)成方式3,此時T1停止計數(shù)。上一頁下一頁返回5.3MCS-51單片機(jī)的定時器/計數(shù)器5.4.4定時器/計數(shù)器初始值計算公式1.定時器初值的計算我們把計數(shù)器從初值開始作加1計數(shù)到計滿為全1所需要的計數(shù)值設(shè)定為C,計數(shù)初值設(shè)定為D,由此可得到的計算通式為

D=M-C

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論