定時器工作原理_第1頁
定時器工作原理_第2頁
定時器工作原理_第3頁
定時器工作原理_第4頁
定時器工作原理_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、定時器工作原理通電延時型。只要在定時的時間段內(nèi)(即1分鐘)定時器一直得電,則常開觸電就會閉合,只要定時器不斷電常開觸電就會一直閉合。定時器斷電則常開觸電斷開圖6.1?定時器/計數(shù)器結(jié)構(gòu)框圖定時器/計數(shù)器1定時器/計數(shù)器0位序D7D6D5D4D3D2D1D0位標(biāo)志GATEC/M1M0GATEC/M1M0M1M0工式功?能?說?明00113位計數(shù)器01216位計數(shù)器103自動再裝入8位計數(shù)器114定時器0:分成兩個8位計數(shù)器定時器1:II停止計數(shù)【例6.1】?設(shè)置定時器1工作于方式1,定時工作方式與外部中斷無關(guān),則M1=QM0=1GATE=0因此,高4位應(yīng)為0001;定時器0未用,低4位可隨意置數(shù)

2、,但低兩位不可為11(因方式3時,定時器1停止計數(shù)),一般將其設(shè)為0000。因此,指令形式為:MOV?TMO-10H定時器/計數(shù)器工作方式與程設(shè)計通過對特殊功能寄存器TMOD中的設(shè)置M1、M0兩位的設(shè)置來選擇四種工作方式,定時器/計數(shù)器0、1和2的工作方式相同,方式3的設(shè)置差別較大。6.3.1 ?工作方式0工作方式寄存器TMOD中的M1M0為:00。定時器/計數(shù)器T0工作在方式0時,16位計數(shù)器只用了13位,即TH0的高8位和TL0的低5位,組成一個13位定時器/計數(shù)器。當(dāng)TL0的低5位計滿溢出時,向TH0進位,TH0溢出時,對中斷標(biāo)志位TF0置位,向CPU申請中斷。定時器/計數(shù)器0方式0的邏

3、輯結(jié)構(gòu)如圖6.2所示。1 .工作在定時方式C/?=0,定時器對機器周期計數(shù)。定時器在工作前,應(yīng)先對13位的計數(shù)器賦值,開始計數(shù)時,在初值的基礎(chǔ)上進行減1計數(shù)。定時時間的計算公式為:定時時間=(213?數(shù)初值)X振周期X12或?時時間=(213?數(shù)初),機器周期若晶振頻率為12MHz,則最短定時時間為213-(213-1).1/12)106X12=1.最長定時時間為(213-0)X(1/12)M06X12=8192.=1,13位計數(shù)器對外部輸入信號進行加1計數(shù)利用?由0變?yōu)?時,開始計數(shù),?由1變?yōu)?時,停止計數(shù),可以測量在?端出現(xiàn)的正脈沖的寬度。計數(shù)值的范圍是1213=8192(個外部脈沖.【

4、例6.2】假設(shè)AT89S52單片機晶振頻率為12MHz,要求定時時間8ms,使用定時器T0,工作方式0,計算定時器初值X。解:二?(213?)刈器周期?單片機晶振頻率為12MHz時,機器周期=1.?.?8M03?=?(?,)X1?X=8192-8000=192?轉(zhuǎn)換成二進制數(shù)為:【例6.3】假設(shè)AT89S52單片機晶振頻率為12MHz,所需定時時間為250.§當(dāng)T0工作在方式0時T0計數(shù)器的初值是多少?解:二?(213?)刈器周期?單片機晶振頻率為12MHz時,機器周期=1.!?!?250=?(213?.X1?X?=8192-250=7942?轉(zhuǎn)換成二進制數(shù)為:【例6.4利用T0方式

5、0產(chǎn)生1ms的定時,在P1.2引腳上輸出周期為2ms的方波。設(shè)單片機晶振頻率fosc=12MHz。解:(1)解題思路要在P1引腳輸出周期為2ms的方波,只要使P1每隔1ms取反一次即可。執(zhí)行指令為CPL?P1.2(2)確定工作方式?:?方式0?TMOD=00H=0:T0為定時功能;(D2位)GATE=0,只要用軟件使TRO(或TR1)置1就能啟動定時器T0(或T1);?M1M0=00,工作方式0?:?TMOD的為?=00H?TMOD.4TMOD可取任意,因T1不用,這里取0。?.用?MOV?TMOD,#00H?即可設(shè)定T0的工作方式(3)計算1ms定時時T0的初值機器周期??T=1/foscX

6、12=1.設(shè)T0的計數(shù)初值為X0,則?X0=?(213X)s?.?921000?7?92D?專換成二進制數(shù)為:?,??氐5位?等高8位裝入TH0?低5位11000=18H裝入TL0?1?1?EA=1,CPU開放中斷;?ET0=1,允許T0中斷;(4)編程可米用中斷和查詢兩種方式編寫程序。方法一:中斷方式ORG?0000H?AJMP?MAIN?主程序MAIN?ORG?000BH?AJMP?IT0P?,T0中斷服務(wù)程序IT0P?ORG?1000H?MAIN:MOV?SP,#60H?設(shè)堆棧指針?MOV?TH0,#0E0H?定時器T0送初值?MOVTMOD,#00H?設(shè)置T0為方式0,定時?MOV?T

7、L0,#18H?送定時初值?MOVTH0#0E0HSETB?EA?CPU開中斷?SETB?ET0?T0允許中斷?SETBTR0?動T0定時HERE:?SJMP?HERE?待中斷中斷服務(wù)程:IT0P:?ORG?1200H?T0中斷入口?MOV?TL0#18H?重新裝入計數(shù)初值?MOV?TH0#0E0H?CPL?P1.2?輸出方波?RETI?斷返回?END?MOV?TMOD#00H?;設(shè)置T0為方式0,定時?MOV?TL0#18H?送初?MOV?TH0#0E0H?SETB?TR0?動T0定時LOOP:?JBC?TFQNEXT?;查詢定時時間到否?SJMP?LOOPNEXT:MOV?TL0,#18H

8、?重新裝入計數(shù)初值?MOVTH0#0E0H?CPL?P1.2?WB方波?SJMP?LOOP?復(fù)循環(huán)6.3.2 ?工作方式1工作方式寄存器TMOD中的M1M0為:01。定時器T0工作方式1與工作方式0類同,差別在于其中的計數(shù)器的位數(shù)。工作方式1以16位計數(shù)器參與計數(shù)。定時器/計數(shù)器0方式1的邏輯結(jié)構(gòu)如圖6.3所示。1.工作在定時方式C/?=0,定時器對機器周期計數(shù)。定時時間的計算公式為:定時時間=(213?數(shù)初值)振周期X12或?時時間=(213?數(shù)初),機器周期若晶振頻率為12MHz,則最短定時時間為216(2161),1/12)106X12=1.s最長定時時間為(216-0)X(1/12)M

9、06X12=65536.$65.5msC/?=1,16位計數(shù)器對外部輸入信號進行加1計數(shù)。計數(shù)值的范圍是1216=65536(個外部脈沖)?!纠?.5】假設(shè)AT89S52單片機晶振頻率為12MHz,所需定時時間為10m.當(dāng)T0工作在方式1時T0計數(shù)器的初值是多少?解:二?(216?刈器周期?單片機晶振頻率為12MHz時,機器周期=1.?.?10M03?=?(213?)X1?X=65536-10000=55536?專換成二進制數(shù)為:【例6.6】假設(shè)AT89S52單片機晶振頻率為12MHz,定時器T0的定時初值為9800,計算T0工作在方式1時的定時時間。解:二?(216?,機器周期H?HIIIH

10、HIH?=?(216?-9800)M?t=655369800=55736.【例6.7】?用定時器T0產(chǎn)生50HZ的方波。由P1.0輸出此方波(設(shè)時鐘頻率為12MHZ).采用中斷方式。解:50HZ的方波周期T為??T=1/50=20ms可以用定時器產(chǎn)生10ms的定時,每隔10ms改變一次P1.0的電,,即可得至150HZ的方波。定時器T0應(yīng)工作在方式1。(1)工作在方式1時的T0初值,根據(jù)下式計算:?t=?(216?,)刈器周期?時鐘頻率為12MHz,則機器周期?=1.?10103?=?(?)X1?X=65536-10000=55536轉(zhuǎn)換為二進制數(shù):?您8位??氐8位高8位?=0D8H裝入TH

11、0,低8位?=0CCH裝入TL0(2)程序ORG?0000H?AJMP?MAIN?OrG?000bh?.的中斷入口地址AJMP?T0INT?ORG?0100HMAIN:?MOV?TMOD,#01H?設(shè)置T0為工作方式1MOV?TH0,#0D8H?裝入定時器初值MOV?TL0,#0CCHSETB?ET0?置T0允許中斷SETB?EA?CPU開中斷SETB?TR0?動T0SJMP?$?寺中斷中斷服務(wù)程序;ORG?0300HT0INT:CPL?P1.0?P1.0取反MOV?TH0,#0D8H?;重新裝入定時初值MOV?TL0,#0CCHRETI注:??SETB?ET0?置T0允許中斷SETB?EA?

12、CPU開中斷這兩條指令可以等效為??MOV?IE,#82H。6.3.3?工作方式2定時器/計數(shù)器0方式2的邏輯結(jié)構(gòu)如圖6.4所示。工作方式寄存器TMOD中的M1M0為:10定時器/計數(shù)器在工作方式2時,16位的計數(shù)器分成了兩個獨立的8位計數(shù)器TH和TLo此時,定時器/計數(shù)器構(gòu)成了一個能重復(fù)置初值的8位計數(shù)器。中,TL用作8位計數(shù)器,TH用來保存計數(shù)的初值。每當(dāng)TL計滿溢出時,自動將TH的初值再次裝入TLo1.工作在定時方式C/?=0,定時器對機器周期計數(shù)。定時時間的計算公式為:定時時間=(28?沙數(shù)初)一振周期M2或??時時間=(28?數(shù)初值)刈器周期若晶振頻率為12MHz,則最短定時時間為2

13、8-(28-1).1/12)106X12=1.最長定時時間為-0)X(1/12)X10,2=256.C/?=1,8位計數(shù)器對外部輸入信號進行加1計數(shù)。計數(shù)值的范圍是128=256(個外部脈沖)?!纠?.8利用T0方式2實現(xiàn)以下功能:當(dāng)T0(P3.4)引腳每輸入一個負(fù)脈沖時,使P1.0輸出一個500.s的同步脈沖。設(shè)晶振頻率為6MHz,請編程實現(xiàn)該功能。波形如圖6.5所示。圖6.5?,J6.6波形圖(1)?確定工作方式首先選T0為方式2,外部事件計數(shù)方式。當(dāng)P3.4引腳上的電發(fā)生負(fù)跳變時,T0計數(shù)器加1,溢出標(biāo)志TF0置1;然后改變T0為500.s定時工作方式,并使P1.0輸出由1變?yōu)?。T0定

14、時到產(chǎn)生溢出,使P1.0引腳恢復(fù)輸出高電平。T0先計數(shù),后定時,分時操作。根據(jù)題目要求方式控制,TMOD是:計數(shù)時:(TMOD)=00000110B=06H定時時:(TMOD)=00000010B=02H(2)計算初值機器周期T=12/fosc=12/6MHZ=2.s計數(shù)時:計數(shù)個數(shù)?X=1計數(shù)初值?=(256-X)=(256-1)=255=0FFH,(TH0)=(TL0)=0FFH定時時:計數(shù)個數(shù)?X=T/Tm=500,2.s=250定時初值?=256X=256250=6,(TH0)=(TL0)=06H?采用查詢方法START:MOV?TMOD,#06H?T0方式2,外部計數(shù)方式?MOV?T

15、H0#0FFH?T0計數(shù)初值?MOV?TL0#0FFH?SEtb?tR0?/T0計數(shù)LOOPI:JBC?TF0,PTF01?查詢T0溢出標(biāo)志,TF0=1時轉(zhuǎn)移,且TF0=0(查P3.4負(fù)跳變)?SJMPLOOPIPTF01:CLRTR0?停止計數(shù)?MOV?TMOD#02H?;T0方式2,定時?MOV?TH0#06H?T0定時500.初值?MOV?TL0#06H?CLR?p.?.0,0?SETB?TR0?動定時500.LOOP2:JBC?TF0,PTF02?查詢溢出標(biāo)志,定時到TF0=l?轉(zhuǎn)移,且TF0=0(第一個500.否)?SJMP?LOOP2PTF02:SETB?P1?P1.0置1(到了第

16、一個500ss)?CLR?TR0?Bt計數(shù)?SJMP?START6.3.4?工作方式3工作方式寄存器TMOD中的M1M0為:11。工作方式3僅對定時器/計數(shù)器0有效,此時,將16位的計數(shù)器分為兩個獨立的8位計數(shù)器TH0和TL0。當(dāng)定時器/計數(shù)器0工作在方式3時,定時器/計數(shù)器1只能工作在方式02,并且工作在不需要中斷的場合。在一般情況下,當(dāng)定時器/計數(shù)器1用作,行口波特率發(fā)生器時,定時器/計數(shù)器0才設(shè)置為工作方式3。此時常把定時器/計數(shù)器1設(shè)置為方式2,用作波特率發(fā)生器。定時器/計數(shù)器0在方式3下的邏輯結(jié)構(gòu)如圖6.6所示?!纠?.9】設(shè)某用戶系統(tǒng)中已使用了兩個外部中斷源,并置定時器T1工作在方式2,作,行口波特率發(fā)生器用?,F(xiàn)要求再增加一個外部中斷源,并由P1.0引腳輸出一個5kHz的方波。fosc=12MHz。(1)?確定工作方式T0方式3下,TL0作計數(shù)用,而TH0可用作8位的定時器,定時控制P1.0引腳輸出5kHz的方波信號。T1為方式2,定時。TMOD是:?00100111B=27H(2)?計算初值TL0初值:FFH,TH0初值X0計算如下:P1.0的方波頻率為5kHz,故周期T=1/(5kHz)=0.2ms=200.用TH0定時100.時,Xo=256-100X12/12=156(3)程序如下:MOV?TMOD,#27H?T0為方式3,計數(shù);T1為方式2,定時?MOV?

溫馨提示

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

評論

0/150

提交評論