第六章定時器ijianhua.ppt_第1頁
第六章定時器ijianhua.ppt_第2頁
第六章定時器ijianhua.ppt_第3頁
第六章定時器ijianhua.ppt_第4頁
第六章定時器ijianhua.ppt_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第6章 定時器/計數(shù)器及應(yīng)用,6.1 定時器/計數(shù)器的結(jié)構(gòu) 6.2 定時器/計數(shù)器的工作方式,退出,6.1 定時器/計數(shù)器的結(jié)構(gòu),6.1.1 定時器/計數(shù)器的結(jié)構(gòu) 定時器/計數(shù)器的結(jié)構(gòu)如圖6-1所示。,6.1.2 定時器/計數(shù)器的工作方式寄存器TMOD 定時器/計數(shù)器是一種可編程部件,在工作之前必須通過軟件設(shè)定它的工作方式,即對工作方式寄存器TMOD中每位進(jìn)行設(shè)定。下面介紹每位的含義: TMOD(89H),其中,低4位用于決定T0的工作方式,高4位用于決定T1的工作方式。 1、M1和M0工作方式控制位 M0和M1為工作方式控制位,確定4種工作方式,如表7-1所示。,2、C/T定時器/計數(shù)器方式

2、選擇位 C/T=0,設(shè)置為定時方式,對機(jī)器周期進(jìn)行計數(shù); C/T=1,設(shè)定為計數(shù)方式,對外部信號進(jìn)行計數(shù), 外部信號接至T0(P3.4)或T1(P3.5)引腳。 3、GATE門控位 GATE=0時,只要用軟件使TR0(或TR1)置1就能啟動定時器T0(或T1); GATE=1時,只有在INT0(或INT1)引腳為高電平的情況下,且由軟件使TR0(或TR1)置1時,才能啟動定時器T0(或T1)工作。,6.1.3 定時器/計數(shù)器的控制寄存器TCON 設(shè)定好了定時器/計數(shù)器的工作方式后,它還不能進(jìn)入工作狀態(tài),必須通過設(shè)置控制寄存器TCON中的某些位來啟動它工。要使定時器/計數(shù)器停止運行,也必須通過設(shè)

3、置TCON中的某些位來實現(xiàn)。當(dāng)定時器/計數(shù)器計滿溢出,或有外部中斷請求時,TCON能標(biāo)明溢出和中斷情況。下面介紹控制寄存器TCON每位的含義:,TF1:定時器T1溢出標(biāo)志位。當(dāng)定時器T1溢出時,由硬件自動使TF1置1,并向CPU申請中斷。CPU響應(yīng)中斷后,自動對TF1清零。TF1也可以用軟件清零。 TR1:定時器T 1運行控制位??捎绍浖?(或清零)來啟動(或關(guān)閉)定時器T1,使定時器T1開始計數(shù)。用指令SETB TR1(或CLR TR1)使TR1置1(或清零)。,TF0:定時器T0溢出標(biāo)志位。其功能與TF1相同。 TR0:定時器T0運行控制位。其功能與TR1相同。 IE1:外部中斷1請求標(biāo)

4、志位。 IT1:外部中斷1觸發(fā)方式控制位。 IE0:外部中斷0請求標(biāo)志位。 IT0:外部中斷0觸發(fā)方式控制位。 IE1、IT1、IE0、IT0這4位將在第3節(jié)講述。 控制寄存器TCON的位地址是88H,可以對它進(jìn)行位尋址。,6.2 定時器/計數(shù)器的工作方式,6.2.1 工作方式0 定時器/計數(shù)器T0工作在方式0時,16位計數(shù)器只用了13位,即TH0的高8位和TL0的低5位,組成一個13位定時器/計數(shù)器。,1、工作在定時方式 2、工作在計數(shù)方式 【例6-1】利用定時器T0產(chǎn)生定時脈沖。每隔2ms產(chǎn)生寬度為2個機(jī)器周期的正脈沖,由P1.0輸出此定時序列脈沖信號(設(shè)時鐘頻率為6MHZ)。 解:首先求

5、出定時器T0初值。由于時鐘頻率為6MHZ,所以,機(jī)器周期為2s。 因為:t=(213-T0初值) 機(jī)器周期 所以,當(dāng)t=2ms時,則:(213-T0初值) 210-6=210-3,解得:T0初值=7096=11011101 11000B,其中將高8位11011101 B=DDH賦給TH0,低5位11000B=18H賦給TL0。 方法一: 采用查詢工作方式,編程如下: ORG 0000H AJMP MAIN ORG 0100H MAIN: CLR P1.0 MOV TMOD , #00H ;設(shè)定T0的工作方式 MOV TH0 , #0DDH ;給定時器T0送初值,MOV TL0 , #18H S

6、ETB TR0 ;啟動T0工作 LOOP: JNB TF0 , $ ;$為當(dāng)前指令指針地址 CLR TF0 SETB P1.0 ;產(chǎn)生2s正脈沖 CLR P1.0 MOV TH0 , #0DDH ;重裝載TH0和TL0 MOV TL0 , #18H SJMP LOOP END,方法二: 采用中斷工作方式,編程如下: ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 0100H MAIN: CLR P1.0 MOV TH0 , #0DDH ;給定時器T0送初值,MOV TL0 , #18H MOV IE , #82H ;允許T0中斷 SETB TR0 ;啟

7、動T0 SJMP $ 中斷服務(wù)程序: ORG 0300H T0INT: SETB P1.0 CLR P1.0 MOV TH0 , #0DDH ;重裝載TH0和TL0 MOV TL0 , #18H RETI,6.2.2 工作方式1 定時器T0工作方式1與工作方式0類同,差別在于其中的計數(shù)器的位數(shù)。工作方式0以13位計數(shù)器參與計數(shù),工作方式1則以16位計數(shù)器參與計數(shù)。,1、工作在定時方式 2、工作在計數(shù)方式 工作方式1是16位計數(shù)器。這是工作方式1與工作方式0在計數(shù)方式時唯一差別。 【例6-2】 用定時器T0產(chǎn)生50HZ的方波。由P1.0輸出此方波(設(shè)時鐘頻率為12MHZ)。 解:50HZ的方波周

8、期為20ms,可以用定時器產(chǎn)生10ms的定時,每隔10ms改變一次P1.0的電平,即可得到50HZ的方波。此時,應(yīng)使定時器T0工作在方式1。工作在方式1時的T0初值,根據(jù)下式計算:,t=(216-T0初值) 機(jī)器周期 解得t=55536= 11011000 11001100B=D8CCH,其中將高8位D8H賦給TH0,低8位CCH賦給TL0。 采用中斷工作方式,編程如下: ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 0100H,MAIN: MOV TMOD , #01H MOV TH0 , #0D8 H MOV TL0 , #0CC H MOV I

9、E , #82H SETB TR0 SJMP $,中斷服務(wù)程序; ORG 0300H T0INT: CPL P1.0 MOV TH0 , #0D8H MOV TL0 , #0CCH RETI 6.2.3 工作方式2 定時器T0在工作方式2時,16位的計數(shù)器分成了兩個獨立的8位計數(shù)器TH0和TL0。,6.2.2 方式1 M1、M0=01,16位的計數(shù)器。 6.2.3 方式2 計數(shù)滿后自動裝入計數(shù)初值。 M1、M0=10 ,等效框圖如下:,TLX作為常數(shù)緩沖器,當(dāng)TLX計數(shù)溢出時,在置“1”溢出標(biāo)志TFX的同時,還自動的將THX中的初值送至TLX,使TLX從初值開始重新計數(shù)。定時器/計數(shù)器的方式2

10、工作過程如圖6-5(X=0,1)。,省去用戶軟件中重裝初值的程序,精確的定時。 6.2.4 方式3 增加一個附加的8位定時器/計數(shù)器,從而具有3個定時器/計數(shù)器。,只適用于定時器/計數(shù)器T0。T1不能工作在方式3, T1方式3時相當(dāng)于TR1=0,停止計數(shù)(此時T1可用來作串行口波特率產(chǎn)生器)。 1工作方式3下的T0 T0分為兩個獨立的8位計數(shù)器:TL0和TH0 。TL0使用T0的狀態(tài)控制位C/T*、GATE、TR0、,而TH0被固定為一個8位定時器(不能作外部計數(shù)模式),并使用定時器T1的狀態(tài)控制位TR1和TF1,同時占用定時器T1的中斷請求源TF1。 各引腳與T0的邏輯關(guān)系如圖所示:,2T0

11、工作在方式3下T1的各種工作方式 當(dāng)T1用作串行口的波特率發(fā)生器時, T0才工作在方式3。 T0處于方式3時, T1可定為方式0、方式1和方式2,用來作為串行口的波特率發(fā)生器,或不需要中斷的場合。 (1)T1工作在方式0,(2) T1工作在方式1 (3) T1工作在方式2,1、工作在定時方式 2、工作在計數(shù)方式 工作方式2與工作方式0、方式1的差別,在于工作方式2是一個8位的計數(shù)器。 6.2.4 工作方式3 工作方式3僅對定時器T0有效。當(dāng)定時器T0工作在方式3時,將16位的計數(shù)器分為兩個獨立的8位計數(shù)器TH0和TL0。,當(dāng)定時器T0工作在方式3時,定時器T1只能工作在方式02,并且工作在不需

12、要中斷的場合。,例6-2 假設(shè)系統(tǒng)時鐘為6MHz,編寫定時器T0產(chǎn)生1秒定時的程序。 (1)T0工作方式的確定 定時時間較長,采用哪一種工作方式? 由各種工作方式的特性,可計算出: 方式0最長可定時16.384ms;,方式1最長可定時131.072ms; 方式2最長可定時512s。 選方式1,每隔100ms中斷一次,中斷10次為1s。 (2)計算計數(shù)初值 因為:(216-X)210-6 = 10-1 所以:X=15536=3CB0H 因此:TH0=3CH,TL0=B0H (3)10次計數(shù)的實現(xiàn) 采用循環(huán)程序法。 (4)程序設(shè)計 參考程序 :,ORG 0000H RESET: LJMP MAIN

13、 ;上電,轉(zhuǎn)主程序入口MAIN ORG 000BH ;T0的中斷入口 LJMP IT0P ;轉(zhuǎn)T0中斷處理程序IT0P ORG 1000H MAIN: MOV SP,#60H ;設(shè)堆棧指針 MOV B,#0AH ;設(shè)循環(huán)次數(shù)10次 MOV TMOD,#01H ;設(shè)T0工作在方式1 MOV TL0,#0B0H ;給T0設(shè)初值 MOV TH0,#3CH SETB TR0 ;啟動T0 SETB ET0 ;允許T0中斷,SETB EA ;CPU開放中斷 HERE: SJMP HERE ;等待中斷 ITOP: MOV TL0,#0B0H ;T0中斷子程序,重裝初值 MOV TH0,#3CH ; DJNZ

14、 B,LOOP CLR TR0 ;1s定時時間到,停止T0工作 LOOP: RETI,例6-4 利用T1的方式2對外部信號計數(shù),要求每計滿100個數(shù),將P1.0取反。 本例是方式2計數(shù)模式的應(yīng)用。 (1)選擇工作方式,外部信號由T1(P3.5) 腳輸入,每發(fā)生一次負(fù)跳變計數(shù)器加1,每輸入100個脈沖,計數(shù)器產(chǎn)生溢出中斷,在中斷服務(wù)程序中將P1.0取反一次。 T1 方式2的控制字為TMOD=60H。不使用T0時,TMOD的低4位可任取,但不能使T0進(jìn)入方式3,這里取全0。 (2)計算T1的初值 X=28-100=156=9CH 因此,TL1的初值為9CH,重裝初值寄存器TH1=9CH (3)程序

15、設(shè)計 ORG 0000H LJMP MAIN ORG 001BH ;T1中斷服務(wù)程序入口,CPL P1.0 ;P1.0位取反 RETI ORG 0100H MAIN: MOV TMOD,#60H ;設(shè)T1為方式2計數(shù) MOV TL0,#9CH ;T0置初值 MOV TH0,#9CH SETB TR1 ;啟動T1 HERE: AJMP HERE,6.4.4 門控制位GATE的應(yīng)用測量脈沖寬度 GATE1可使定時器/計數(shù)器T1的啟動計數(shù)受INT1*的控制,可測量引腳INT1*(P3.3)上正脈沖的寬度(機(jī)器周期數(shù))。,參考程序: ORG 0000H RESET: AJMP MAIN ;復(fù)位入口轉(zhuǎn)主程序 ORG 0100H MAIN: MOV SP,#60H MOV TMOD,#90H ;T1為方式1定時控制字 MOV TL1,#00H MOV TH1,#00H LOOP0: JB P3.3,LOOP0 ;INT1*高,則循環(huán) S

溫馨提示

  • 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

提交評論