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

下載本文檔

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

文檔簡介

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

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

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

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

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

6、12=1.設(shè)T0的計(jì)數(shù)初值為X0,則?X0=?(213X)s?.?921000?7?92D?專換成二進(jìn)制數(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?定時(shí)器T0送初值?MOVTMOD,#00H?設(shè)置T0為方式0,定時(shí)?MOV?T

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

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

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

10、HIH?=?(216?-9800)M?t=655369800=55736.【例6.7】?用定時(shí)器T0產(chǎn)生50HZ的方波。由P1.0輸出此方波(設(shè)時(shí)鐘頻率為12MHZ).采用中斷方式。解:50HZ的方波周期T為??T=1/50=20ms可以用定時(shí)器產(chǎn)生10ms的定時(shí),每隔10ms改變一次P1.0的電,,即可得至150HZ的方波。定時(shí)器T0應(yīng)工作在方式1。(1)工作在方式1時(shí)的T0初值,根據(jù)下式計(jì)算:?t=?(216?,)刈器周期?時(shí)鐘頻率為12MHz,則機(jī)器周期?=1.?10103?=?(?)X1?X=65536-10000=55536轉(zhuǎn)換為二進(jì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?裝入定時(shí)器初值MOV?TL0,#0CCHSETB?ET0?置T0允許中斷SETB?EA?CPU開中斷SETB?TR0?動T0SJMP?$?寺中斷中斷服務(wù)程序;ORG?0300HT0INT:CPL?P1.0?P1.0取反MOV?TH0,#0D8H?;重新裝入定時(shí)初值MOV?TL0,#0CCHRETI注:??SETB?ET0?置T0允許中斷SETB?EA?

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

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

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

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

16、一個(gè)500ss)?CLR?TR0?Bt計(jì)數(shù)?SJMP?START6.3.4?工作方式3工作方式寄存器TMOD中的M1M0為:11。工作方式3僅對定時(shí)器/計(jì)數(shù)器0有效,此時(shí),將16位的計(jì)數(shù)器分為兩個(gè)獨(dú)立的8位計(jì)數(shù)器TH0和TL0。當(dāng)定時(shí)器/計(jì)數(shù)器0工作在方式3時(shí),定時(shí)器/計(jì)數(shù)器1只能工作在方式02,并且工作在不需要中斷的場合。在一般情況下,當(dāng)定時(shí)器/計(jì)數(shù)器1用作,行口波特率發(fā)生器時(shí),定時(shí)器/計(jì)數(shù)器0才設(shè)置為工作方式3。此時(shí)常把定時(shí)器/計(jì)數(shù)器1設(shè)置為方式2,用作波特率發(fā)生器。定時(shí)器/計(jì)數(shù)器0在方式3下的邏輯結(jié)構(gòu)如圖6.6所示。【例6.9】設(shè)某用戶系統(tǒng)中已使用了兩個(gè)外部中斷源,并置定時(shí)器T1工作在方式2,作,行口波特率發(fā)生器用?,F(xiàn)要求再增加一個(gè)外部中斷源,并由P1.0引腳輸出一個(gè)5kHz的方波。fosc=12MHz。(1)?確定工作方式T0方式3下,TL0作計(jì)數(shù)用,而TH0可用作8位的定時(shí)器,定時(shí)控制P1.0引腳輸出5kHz的方波信號。T1為方式2,定時(shí)。TMOD是:?00100111B=27H(2)?計(jì)算初值TL0初值:FFH,TH0初值X0計(jì)算如下:P1.0的方波頻率為5kHz,故周期T=1/(5kHz)=0.2ms=200.用TH0定時(shí)100.時(shí),Xo=256-100X12/12=156(3)程序如下:MOV?TMOD,#27H?T0為方式3,計(jì)數(shù);T1為方式2,定時(shí)?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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論