版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第六章
單片微機的定時器/計數(shù)器
原理及應(yīng)用
Single-chipmicrocomputertimer/counterPrinciplesandApplications
6.1概述6.2定時器/計數(shù)器T0、T16.3定時器/計數(shù)器T26.4監(jiān)視定時器(看門狗)T36.5定時器/計數(shù)器的應(yīng)用編程▲定時或計數(shù)方法:1.硬件法:2.軟件法:3.可編程定時器/計數(shù)器:6-1概述summarize▲定時器資源:80C51:T0和T1;80C52:T0、T1、T280C552(Philips):
T0、T1、T2、T3(看門狗)▲定時器/計數(shù)器的核心:
◆計數(shù)∶T0、T1(或T2)引腳,1→0計數(shù)增l ◆定時∶對機器周期計數(shù) ◆波特率發(fā)生器∶串行接口的波特率發(fā)生器加1計數(shù)器▲功能:6.2定時器/計數(shù)器T0、T1
Timer/counterT0,T1圖6–1定時器/計數(shù)器T0、T1的內(nèi)部結(jié)構(gòu)框圖
⒈T0、T1的方式寄存器——TMOD6.2.1與定時器/計數(shù)器T0、T1有關(guān)的特殊功能寄存器----TMOD、TCON、TH、TL、IE、IPD7 D6 D5D4 D3D2D1D0GATEC/TM1M0GATEC/TM1M0T1T0◆GATE
門控位圖6–2◆C/T:功能選擇位定時時鐘脈沖:1/12fosc最高計數(shù)頻率:1/24fosc◆M1、M0:工作方式選擇位。M1M0工作方式
計數(shù)器配置
00方式013位計數(shù)器
01方式116位計數(shù)器
10方式2自動重裝載的8位計數(shù)器
11方式3T0分為兩個8位計數(shù)器,T1停止計數(shù)
⒉
定時器/計數(shù)器T0、T1的控制寄存器——TCON
位地址8FH8EH8DH8CH8BH8AH89H88H位名稱TF1TR1TF0TR0IE1IT1IE0IT0功能T1
中斷標志啟動T1T0中斷標志啟動T2中斷標志觸發(fā)方式中斷標志
觸發(fā)方式⒊T0、T1的數(shù)據(jù)寄存器——TH1、TL1,TH0、TL0⒋定時器/計數(shù)器中斷⑴中斷允許寄存器IE
⑵中斷矢量⑶中斷優(yōu)先級寄存器IPEX0ET0EX1ET1ES——EAPX0PT0PX1PT1PS——--T0:有4種工作方式可選(方式0,1,2,3)T1:有3種工作方式可選(方式0,1,2)⒈方式0--13位定時器/計數(shù)器(M1=0、M0=0)
最大計數(shù)值213=8192,當fosc=12MHZ時,Tmax=8192μS6.2.2定時器/計數(shù)器T0、T1的工作方式Timer/counterT0,T1'sworkmethodB=TRx·(GATE+INTx)⒉方式1----16位定時器/計數(shù)器(M1=0、M0=1)最大計數(shù)值216=65535,當fosc=12MHZ時,Tmax=65535μS⒊方式2----8位定時器/計數(shù)器自動重裝載(M1=1、M0=0)優(yōu)點:缺點:適用范圍:最大計數(shù)值為28=256⒋方式3----僅T0有此方式,T1無方式3中斷矢量000BH中斷矢量001BH定時器/計數(shù)器T0方式3時,T1的邏輯結(jié)構(gòu)圖⑴T0方式3下的T0
在方式3情況下,T0被拆成二個獨立的8位計數(shù)器TH0、TL0?!鳷L0:8位定時/計數(shù)器,使用T0原有的控制寄存器資源:TF0,TR0,GATE,C/T,INT0,中斷矢量等;▲TH0:8位定時器,占用T1的中斷溢出標志TF1,運行控制開關(guān)TR1,中斷矢量001BH,只能對片內(nèi)機器周期脈沖計數(shù)⑵T0方式3情況下的T1▲T1由于其TF1、TR1被T0的TH0占用,計數(shù)器溢出時,只能將輸出信號送至串行口,即用作串行口波特率發(fā)生器。
▲定時器初值的計算6.5定時器/計數(shù)器的應(yīng)用編程
Timer/counterapplicationprogramming
L與工作方式有關(guān),13、16、8▲定時器溢出率為定時時間的倒數(shù)fosc=12MHZ時,1機周=1S;fosc=6MHZ
時,1機周=2S6.5.1定時器的應(yīng)用ApplicationofTimer
定時時間=脈沖數(shù)×脈沖周期(機器周期)
定時時間t=(2L-初值TC)×
解:⑴工作方式0:
213–500S/2S=8192-250=7942=1F06H=1111100000110BTL0=00110B=06H TH0=11111000B=F8H【例】
已知晶振6MHz,要求定時0.5ms,試分別求出T0工作于方式0、方式1、方式2時的定時初值。⑵工作方式1:
T0初值=216-500s/2s=65536–250=65286=FF06HTH0=FFH;TL0=06H⑶工作方式2:
T0初值=28-500s/2s=256-250=6TH0=06H;TL0=06H。解:分析采用方式0定時時間t=1ms=1000μS定時常數(shù):TC=213-1000/2=8192-500=7692=11110000
01100B用定時器T0:TMOD=00H,TH0=F0H,TL0=0CH【例】
要求在P1.0引腳上輸出周期為2ms的方波 fosc=6MHz▲查詢方式
ORG0000H AJMPST ORG0030HST: MOVSP,#60H MOVTMOD,#00H ;方式0L1: MOVTH0,#0F0H ;初值
MOVTL0,#0CH CPLP1.0 SETBTR0L2: JBCTF0,L1 SJMPL2 END▲中斷方式:
ORG 0000H AJMP MAIN ORG 000BH ;T0中斷矢量
AJMPINQP ORG 0030HMAIN: MOVTMOD,#00H;設(shè)T0為定時器方式0 MOV TH0,#0F0H
;寫定時常數(shù)(定時1ms)
MOV TL0,#0CH SETBTR0
;啟動T0
SETB ET0
;允許T0中斷
SETB EA
;開放CPU中斷
AJMP$
;定時中斷等待
ORG 0100H
;T0中斷服務(wù)程序
INQP: MOVTH0,#0F0H
;重寫定時常數(shù)
MOV TL0,#0CH
CPL P1.0
;P1.0變反輸出
RETI采用方式1定時時間t=1ms=1000μS定時常數(shù):TC=216-1000/2=65535-500=65035=11111110
00001011B=FE0BH用定時器T0:TMOD=01H,TH0=FEH,TL0=0BH編程與前相同如果要求產(chǎn)生周期為2S的方波,怎樣編程?【例】欲用80C51產(chǎn)生兩個方波,一個方波周期為200μs,另一個方波周期為400μs,該80C51同時使用串行口,用定時器/計數(shù)器作為波特率發(fā)生器,波特率為2400,
fOCS=9.216MHz
。計算:?TL0初值:?TH0初值:?TH1、TL1初值為:分析:這時T0采用方式3工作,其中,TL0產(chǎn)生100μs定時,由P1.0輸出方波1TH0產(chǎn)生200μs定時,由Pl.1輸出方波2;T1設(shè)置為方式2,作波特率發(fā)生器用。F6H編程:
ORG 0000H AJMP MAIN ORG 000BH ;TL0的中斷入口
AJMPITL0 ORG 00lBH ;TH0的中斷入口
AJMPITH0 ORG0100HMAIN: MOVSP,#60H ;設(shè)棧指針
MOV TMOD,#23H ;設(shè)T0為方式3,TI為2 MOV TL0,#0B3H;設(shè)TL0初值(100μs定時) MOV TH0,#66H;設(shè)TH0初值(200μs定時) MOV TL1,#0F6H;設(shè)TL1初值(波特率為2400) MOV TH1,#0F6H;設(shè)TH1初值 SETB TR0;啟動
TL0 SETB TR1;啟動TH0 SETB ET0;允許TL0中斷
SETB ET1;允許TH0中斷
SETB EA;CPU中斷開放
AJMP $ ORG 0200HITL0:MOVTL0,#0B3H ;重裝定時常數(shù)
CPL P1.0 ;輸出方波1(200μs) RETIITH0:MOVTH0,#66H ;重裝定時常數(shù)
CPL P1.1 ;輸出方波2(400μs) RETI不用方式3,能否只用T0產(chǎn)生兩個時間?【例】假如一個用戶系統(tǒng)已使用了兩個外部中斷源,即INT0和INT1,用戶系統(tǒng)要求從P1.0引腳上輸出一個5kHz的方波,并要求采用定時器/計數(shù)器作為串行口的波特率發(fā)生器,另外還需要再增加一個外部中斷源。 6.5.2計數(shù)器的應(yīng)用
Applicationofthecounter▲分析:除兩個外中斷(INT0、INT1)外,還需要兩個定時器(5KHZ和波特率發(fā)生器)和一個計數(shù)器(擴展外中斷)把T0設(shè)置為方式3:TL0設(shè)置為計數(shù)器,TH0只能做8位定時器(產(chǎn)生5KHz方波),T1就作為波特率發(fā)生器,設(shè)為方式2。頻率5kHz即周期為200μs,則定時時間100μs,若采用12MHz的晶體振蕩器,則機器周期為1μs。
計算時間常數(shù):TC=28-100/1=156▲編程:
ORG 0000H SJMP MAIN ORG 000BH AJMP TL0INT ;TL0中斷入口
ORG 001BH AJMP TH0INT ;TH0中斷入口
ORG0030HMAIN:MOVTMOD,#27H;T0為方式3,TL0為計數(shù)方式,TH0為 ;定時;T1作波特率發(fā)生器,方式2 MOV TH0,#156 ;TH0定時常數(shù)
MOV TL0,#0FFH ;TL0計數(shù)常數(shù)
MOV TL1,#BAUD;BAUD根據(jù)波特率算出 MOV TH1,#BAUD MOV TCON,#55H;TR0和TR1為1,啟動TL0和TH0 MOVIE,#8AH SJMP $
ORG 0100HTL0INT: MOV TL0,#0FFH ;重置計數(shù)長度
(中斷處理) RETITH0INT: MOV TH0,#156 ;重置定時常數(shù)
CPL P1.0 ;P1.0引腳輸出方波
RETITF1TR1TF0TR0IE1IT1IE0IT0GATEC/TM1M0GATEC/TM1M06.5.3門控位GATE的應(yīng)用ApplicationofGateGATE
【例】利用定時器/計數(shù)器測定圖示波形的一個周期長度。INT1(P3.3)TR1置1T1開始計時TR1清零▲分析:若GATE=1,則T1為定時器時,當TR1=1且INT1為高電平時,才啟動定時器。查詢法:
ORG 0000HSTART: MOV TMOD,#90H MOV TL1,#00H ;置為最大定時值
MOV TH1,#00H LP1: JB P3.3,LP1 ;P3.3為高電平,等待
SETBTR1 ;當P3.3為低時,置TR1為1LP2: JNB P3.3,LP2 ;當P3.3為低電平時,再等待LP3: JB P3.3,LP3
CLR TR1 MOV30H,TL0 MOV31H,TH0
SJMP $當fosc=12MHz時,最大被測脈寬為65536μs。此編程實際只測量了高電平的寬度,若被測波形除了接至P3.3,另外同時通過一個反相器接至P3.2(INT0),則通過編程同時可以測得波形的高電平寬度和低電平寬度。中斷法:【分析】設(shè)6MHz晶振,T0為方式1,定時溢出時間為100ms計數(shù)初值為FFFEH:(TH1)=FFH,(TL1)=FEH。編程:ORG 0000H SJMP MAIN ORG 000BH ;定時器T0中斷入口
AJMP TIME0
ORG 00IBH ;定時器T1中斷入口
AJMPTIME1
ORG 0030HMAIN:MOVR0,#0 ;清除T0定時中斷次數(shù)計數(shù)器
MOV TMOD,#59H;T0為定時器,方式1,GATE=1 ;T1為計數(shù)器、方式1 MOV TH0,#3CH ;T0定時器初值
MOV TL0,#0B0H MOV TH1,#0FFH ;T1計數(shù)器初值
MOV TL1,#0FEH SETBTR0 ;啟動T0定時器
SETB TR1 ;啟動T1計數(shù)器
MOV IP,#08H;T1中斷優(yōu)先級高于T0 SETB ET1 ;允許T1中斷
SETB ET0 ;允許T0中斷
SETB EA ;CPU開中斷
SETB 20H ;設(shè)20H為T1計數(shù)中斷標志LOOP: SETBF0 ;設(shè)F0為T0定時中斷標志
JB F0,$ ;T0定時未溢出,等待
JB 20H,LOOP ;判T1若未溢出則循環(huán) SJMP $
ORG 0100H TIME0: MOV TL0,#0B0H;重置T0定時器初值
MOV TH0,#3CH
INC R0 ;T0定時溢出計數(shù)器加1 CPLF0 ;T0定時中斷標志變反
RETI ORG 0200HTIME1: CLRF0 ;清除T0定時中斷標志
CLR20H ;清除T1計數(shù)中斷標志
CLRET0 ;禁止T0、T1中斷
CLRET1 CLREA ;關(guān)中斷
RETI80C51可以隨時讀寫計數(shù)寄存器TLx和THx(x為0或1),用于實時顯示計數(shù)值等。辦法是:先讀THx,后讀TLx,再重讀THx,若兩次讀得的THx值是一樣的,則可以確定讀入的數(shù)據(jù)是正確的;若兩次讀得的THx值不一致,則必須重讀。
6.5.4運行中讀定時器/計數(shù)器Readoperationtimer/counter
例.飛讀RDTIME:MOV A,TH0 ;讀TH0 MOV R0,TL0 ;讀TL0并存入R0 CJNEA,TH0,RDTIME;與上次讀入的TH0比較,若不等,重讀
MOV R1,A ;存TH0在R1中
RETEND
圖6–1定時器
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 免疫性疾病的飲食輔助
- 遼寧省2025秋九年級英語全冊Unit5Whataretheshirtsmadeof課時6SectionB(3a-SelfCheck)課件新版人教新目標版
- 2025年濕電子化學(xué)品項目發(fā)展計劃
- 干性皮膚的清潔與保養(yǎng)方法
- 腹瀉的藥物治療與護理配合
- 術(shù)前焦慮的識別與干預(yù)策略
- 護理實踐中的問題解決與決策制定
- 心臟瓣膜疾病的護理與跨學(xué)科合作
- 子宮肉瘤患者的日常護理
- 體位引流護理的社區(qū)推廣應(yīng)用
- 物流金融風(fēng)險管理
- 國開24273丨中醫(yī)藥學(xué)概論(統(tǒng)設(shè)課)試題及答案
- 國家開放大學(xué)電大《當代中國政治制度(本)》形考任務(wù)4試題附答案
- 河道臨時圍堰施工方案
- 2025年廣東省公需課《人工智能賦能制造業(yè)高質(zhì)量發(fā)展》試題及答案
- 有機肥可行性研究報告
- 2025年-基于華為IPD與質(zhì)量管理體系融合的研發(fā)質(zhì)量管理方案-新版
- 法律職業(yè)資格考試客觀題(試卷一)試卷與參考答案(2025年)
- 腹壁下動穿支課件
- 廣西協(xié)美化學(xué)品有限公司年產(chǎn)7400噸高純有機過氧化物項目環(huán)評報告
- 智慧樹知道網(wǎng)課《艾滋病、性與健康》課后章節(jié)測試答案
評論
0/150
提交評論