項目5單片機定時器計數(shù)器應(yīng)用教學(xué)提綱_第1頁
項目5單片機定時器計數(shù)器應(yīng)用教學(xué)提綱_第2頁
項目5單片機定時器計數(shù)器應(yīng)用教學(xué)提綱_第3頁
項目5單片機定時器計數(shù)器應(yīng)用教學(xué)提綱_第4頁
項目5單片機定時器計數(shù)器應(yīng)用教學(xué)提綱_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、項目5單片機定時器計數(shù)器應(yīng)用一、定時器一、定時器/ /計數(shù)器組成計數(shù)器組成 51單片機的兩個定時器/計數(shù)器部件主要由T0,T1,工作方式控制寄存器TMOD,定時器/計數(shù)器的控制寄存器TCON組成。(1)T0與T1 T0由兩個8位寄存器TH0、TL0組成,其中TH0是T0的高8位,TL0是T0的低8位。T1的結(jié)構(gòu)與T0一樣,只是組成它的兩個8位寄存器分別為TH1、TL1。T0與T1都是二進制加1計數(shù)器,即每一個脈沖來到時都能使計數(shù)器的當前值加1,可以實現(xiàn)最大16位二進制加計數(shù)。脈沖來源有兩種,一個是利用外部在單片機P3.4、P3.5端口輸入脈沖信號,另一個是單片機晶體振蕩頻率的12分頻產(chǎn)生的。(

2、2)TMOD TMOD為定時器/計數(shù)器的工作方式控制寄存器,共8位,分為高4位和低4位兩組,其中高4位控制T1,低4位控制T0,分別用于設(shè)定T1和T0的工作方式。TMOD不支持位操作,其格式為位 序D7D6D5D4D3D2D1D0位符號GATEM1M0GATEM1M0控制T1控制T0 GATE,門控位,控制定時器啟動操作方式,即定時器的啟動是否受外部脈沖控制。當GATE1時,計數(shù)器的啟停受TRx(x為0或1,下同)和外部引腳外部中斷的雙重控制,只有兩者都是1時,定時器才能開始工作。控制T0運行,控制T1運行。當GATE0時,計數(shù)器的啟停只受TRx控制,不受外部中斷輸入信號的控制C/ ,定時器/

3、計數(shù)器的工作模式選擇位。C/ 1時,為計數(shù)器模式;C/ 0時,為定時器模式。M1、M0,定時器/計數(shù)器T0和T1的工作方式控制位,M1、M0控制定時器/計數(shù)器的工作方式見表5-1所示。 表表5-1 定時器定時器/計數(shù)器工作方式控制計數(shù)器工作方式控制 M1 M0 工作方式 功能 0 0 方式0 13位計數(shù),由THx的8位和TLx的低5位組成 0 1 方式1 16位計數(shù),由THi的8位和TLx的8位組成 1 0 方式2 利用TLx的8位計數(shù),當TLx計數(shù)溢出時,自動重裝Thi的數(shù)據(jù),TLx在此基礎(chǔ)上繼續(xù)計數(shù) 1 1 方式3 兩個8位計數(shù)器,僅適用T0,T1停止計數(shù) (3)TCON TCON是定時器

4、/計數(shù)器控制寄存器,也是8位寄存器,其中高四位用于定時器/計數(shù)器;低四位用于單片機的外部中斷,低四位會在外部中斷相關(guān)內(nèi)容中介紹。TCON支持位操作,其格式為 TCON D7D6D5D4D3D2D1D0位名稱 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TR1,定時器T1的啟??刂莆弧R1由指令置位和復(fù)位,以啟動或停止定時器/計數(shù)器開始定時或計數(shù)。除此以外,定時器的啟動與TMOD中的門控位GATE也有關(guān)系。當門控位GATE0時,TR11即啟動計數(shù);當GATE1時,TR11且外部中斷引腳 1時才能啟動定時器開始計數(shù)。TF1,定時器T1的溢出中斷標志位。在T1計數(shù)溢出時,由硬件

5、自動將TF1置1,向CPU請求中斷。CPU響應(yīng)時,由硬件自動將TF1清零。TF1的結(jié)果可用來程序查詢,但在查詢方式中,由于T1不產(chǎn)生中斷,TF1置1后需要在程序中用指令將其清零。 TR0,T0的計數(shù)啟??刂莆唬δ芡琓R1。當GATE1時,T0受TR0和外部中斷引腳的雙重控制。 TF0,T0的溢出中斷標志位,功能同TF1。 51單片機的定時器/計數(shù)器T0、T1具有4種工作方式,分別由多功能寄存器TMOD和TCON控制,下面分別介紹4種工作方式的工作原理。5.3定時器的工作方式定時器的工作方式一、方式一、方式0 當M1,M0為00時,定時器工作T0、T1設(shè)置為方式0。方式0為13位的定時/計數(shù)器

6、,由TLx的低5位和Thx的高8位構(gòu)成。在計數(shù)的過程中,TLx的低五位溢出時向THx進位,THx溢出時置位對應(yīng)的中斷標志位TFx,并向CPU申請中斷,T0、T1工作在方式0情況一樣,下面以T0為例說明工作方式0的具體控制。T0工作于方式0時的邏輯框圖如圖4-1所示。圖圖5-1 5-1 定時器在方式定時器在方式0 0時的邏輯結(jié)構(gòu)時的邏輯結(jié)構(gòu) 當C/0時,電子開關(guān)接到上面,Tx的輸入脈沖信號由振晶體蕩器的12分頻而得到,即每一個機器周期使T0的數(shù)值加1,這時T0用作定時器用。 當C/1時,電子開關(guān)接到下面,計數(shù)脈沖是來自T0的外部脈沖輸入端單片機P3.4的輸入信號,P3.4腳上每出現(xiàn)一個脈沖,都使

7、T0的數(shù)值加1,這時T0用作計數(shù)器用。 當GATE0時,A點為“1”,B點電位就取決于TR0狀態(tài)。TR0為“1” 時,B點為高電平,電子開關(guān)閉合,計數(shù)脈沖就能輸入到T0,允許計數(shù)。TR0為“0”時,B點為低電平,電子開關(guān)斷開,禁止T0計數(shù)。即GATE0時,T0或T1的啟動與停止僅受TR0或TR1控制。 當GATE1時,A點受(P3.4)和TR0的雙重控制。只有1,且TR0為“1”時,B點才是高電平,使電子開關(guān)閉合,允許T0計數(shù)。即GATE1時,必須滿足INT0和TR0同時為1的條件,T0才能開始定時或計數(shù)。 在方式0中,計數(shù)脈沖加到13位的低5位TL0上。當TL0加1計數(shù)溢出時,向TH0進位,

8、當13位計數(shù)器計滿溢出時,溢出中斷標志TF01,向CPU請求中斷,表示定時器計數(shù)已溢出,CPU進入中斷服務(wù)程序入口時,由內(nèi)部硬件清零TF0。二、方式二、方式1 當M1、M0為01時,定時器/計數(shù)器工作于方式1。方式l與方式0差不多,不同的是方式l的計數(shù)器為16位,由高8位THx和低8位TLx構(gòu)成。定時器T0工作于方式1的邏輯框圖如圖5-2所示。方式1的具體工作過程和工作控制方式與方式0類似,這里不再重復(fù)說明。圖圖5-2定時器在方式定時器在方式1時的邏輯結(jié)構(gòu)時的邏輯結(jié)構(gòu)三、方式三、方式2 當M1、M0為10時,定時器/計數(shù)器工作在方式2。方式2為8位定時器/計數(shù)器工作狀態(tài)。TLx計滿溢出后,會自

9、動預(yù)置或重新裝入THx寄存的的數(shù)據(jù)。TLi為8位計數(shù)器,THi為常數(shù)緩沖器。當TLi計滿溢出時,使溢出標志TFi置1。同時將THi中的8位數(shù)據(jù)常數(shù)自動重新裝入TLi中,使TLi從初值開始重新計數(shù)。定時器T0工作于方式2的邏輯框圖如圖5-3所示。 這種工作方式可以省去用戶軟件重裝常數(shù)的程序,簡化定時常數(shù)的計算方法,可以實現(xiàn)相對比較精確的定時控制。方式2常用于定時控制。如希望得到1s的延時,若采12MHz的振蕩器,則計數(shù)脈沖周期即機器周期為1微秒,如果設(shè)定TL006H,TH006H,C/T0,TLi計滿剛好200微秒,中斷5000次就能實現(xiàn)。另外,方式2還可用作串行口的波特率發(fā)生器。圖圖5-35-

10、3定時器在方式定時器在方式2 2時的邏輯結(jié)構(gòu)時的邏輯結(jié)構(gòu)四、方式四、方式3 當M1、M0為11時,定時器工作于方式3。方式3只適用于T0。當T0工作在方式3時,TH0和TL0分為兩個獨立的8位定時器,可使51系列單片機具有3個定時器/計數(shù)器。定時器T0工作于方式3時的邏輯圖如圖4-4所示。 此時,TL0可以作為定時器/計數(shù)器用。使用T0本身的狀態(tài)控制位C/T,GATE,TR0,和TF0,它的操作與方式0和方式1類似。但TH0只能作8位定時器用,不能用作計數(shù)器方式, TH0的控制占用T1的中斷資源TR1和TF1和T1的中斷資源。在這種情況下,T1可以設(shè)置為方式02。此時定時器T1只有兩個控制條件

11、,即C/T、M1M0,只要設(shè)置好初值,T1就能自動啟動和記數(shù)。 在T1的控制字M1、M0定義為11時,它就停止工作。通常,當T1用作串行口波特率發(fā)生器或用于不需要中斷控制的場合,T0才定義為方式3,目的是讓單片機內(nèi)部多出一個8位的計數(shù)器。 圖圖5-4 定時器在方式定時器在方式2時的邏輯結(jié)構(gòu)時的邏輯結(jié)構(gòu)4-4 利用利用T0實現(xiàn)數(shù)碼管秒計數(shù)實現(xiàn)數(shù)碼管秒計數(shù)一、程序設(shè)計一、程序設(shè)計 電路采用圖4-5所示, 晶體振蕩頻率為12MHz。為了實現(xiàn)單片機驅(qū)動一個數(shù)碼管的秒計數(shù),程序中把T0(timer0作為定時器并工作在方式1 ,并利用了定時器T0中斷。由于T0工作方式1為16位計數(shù)器,T0計數(shù)最大值為65

12、536,如果計滿5000個機器周期脈沖即5毫秒就讓T0溢出并產(chǎn)生中斷,則T0初裝值應(yīng)為60536,十六進制為EC78H。為了獲得1秒時間,T0中斷需要發(fā)生200次。程序包含主函數(shù),T0的初始化函數(shù)和T0中斷服務(wù)函數(shù),顯示語句放在中斷服務(wù)函數(shù)內(nèi),程序如下:/*/#includecode unsigned char seven_seg10 = 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;unsigned char cp,i; /聲明全局變量void timer0_isr(void) interrupt 1 / timer0

13、中斷服務(wù)函數(shù)TR0 = 0; /停止計數(shù)TL0 = 0 x78; / TL0重新預(yù)置TH0 = 0 xec; / TH0重新預(yù)置TR0 = 0; /開始計數(shù)cp+; / timer0中斷1次,變量cp加1if(cp = 200) /中斷200次,時間剛好為1秒cp = 0;i +;void timer0_initialize(void) / timer0中斷初始化函數(shù)EA = 0; /設(shè)置中斷允許寄存器IE中的 EA位,關(guān)閉中斷總開關(guān)TMOD = 0 x01; /設(shè)置計時器模式控制寄存器,Time0工作在定時方式1TR0 = 0; /設(shè)置計時器控制寄存器TCON寄存器的TR0位為0,Timer

14、0/停止計數(shù)TL0 = 0 x78;TH0 = 0 xec; / Timer0的16位計數(shù)器初始值為0 xee11,12MHz晶體振/頻率,單片機的機器周期為1微妙,Timer0每1微秒加1/計數(shù),加滿溢出變產(chǎn)生中斷,從計數(shù)到中斷剛好為5毫秒PT0 = 1; /設(shè)置中斷優(yōu)先次序寄存器IP中的PT0位,Timer0中斷優(yōu)先ET0 = 1; /設(shè)置中斷允許寄存器IE中ET0的位,開啟中斷小開關(guān)EA = 1; /打開中斷總開關(guān)TR0 = 1; /開始計數(shù)/*/if(i = 10) i = 0;P0 = seven_segi; / P0輸出顯示數(shù)據(jù)TR0=1;void main (void)timer

15、0_initialize(); / timer0初始化,為中斷做好準備while (1); /等待中斷/*/二、程序說明二、程序說明 (1)中斷服務(wù)函數(shù)名中,interruput為關(guān)鍵字,1為timer0中斷號。在reg51.h頭文件中已經(jīng)定義,表5-2為單片機常用中斷的中斷號。在使用中斷服務(wù)函數(shù)時,直接在名后加interruput和中斷號即可。 表表5-2 reg51.h5-2 reg51.h中單片機常用中斷號定義中單片機常用中斷號定義 (2)如果單片機的振蕩頻率為,振蕩周期為,則機器周期為。如MHz,則微秒。利用定時器/計數(shù)器定時中斷時,在程序中首先設(shè)置工作模式,并計算它的初裝值,計算初裝值不好計算,常利用計算機中的計算器工具輔助。timer0工作在模式1可以最大65535微秒中斷1次,如工作模式2,最大256微秒中斷1次。/*/#defined TEMOR0_COUNT 0 xec78TL0 = TEMOR0_COUNT & 0 x00ff; /取TEMOR0_COUNT的低字節(jié)并裝入TL0TH0 = TEMOR0_COUNT 8; / TEMOR0_COUNT左移8位,并將低字節(jié)裝入/*/或/*/TL0 = (65536-5000)% 256; /取低8位TH0 = (65536-5000)/ 256; /取高8位/*/ (3)當程序中只涉及一個中

溫馨提示

  • 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

提交評論