版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第六章定時器1、16位定時/計數(shù)器2、工作:對脈沖計數(shù)3、控制:計數(shù)啟動和允許信號4、狀態(tài):計數(shù)器溢出信號定時器的結(jié)構(gòu)定時器是集成在單片機(jī)中的功能部件,通過設(shè)置后,具有一定自管理和獨自工作的能力,與CPU通過內(nèi)部總線連接及交換信息,其邏輯結(jié)構(gòu)如圖所示。定時器的工作原理定時/計數(shù)器中的核心部件為可預(yù)置初值16位計數(shù)器。預(yù)置初值后開始計數(shù),直至計數(shù)值歸0或產(chǎn)生溢出,可申請中斷。計數(shù)器有加
1計數(shù)或減1計數(shù)兩種形式。計數(shù)脈沖是頻率穩(wěn)定的系統(tǒng)時鐘的分頻信號,則稱為定時方式,計數(shù)脈沖是外部脈沖信號,則稱為計數(shù)方式。定時方式計數(shù)方式定時器的控制定時器工作方式寄存器TMOD定時器的控制定時器控制寄存器TCON定時器工作方式寄存器TMODTMOD用于控制T0和T1的工作方式。其定義如下:
TMODD7D6D5D4D3D2D1D089HGATEC/TM1M0GATEC/TM1M0定時器1定時器0方式選擇位M1、M0:4種工作方式:M1
M0方式功能描述00013位01116位1028位自動重裝113T0為兩個8位定時器控制寄存器TCONCON的作用是控制定時器的啟動、停止以及標(biāo)志定時器的溢出和中斷情況。定時器控制字TCON的格式如下:
TCON8FH8EH8DH8CH8BH8AH89H88H88HTF1TR1TF0TR0IE1IT1IE0IT0(1)啟動控制位TR0、TR1。TRx=0,停止定時器工作TRx=1,啟動定時器工作
例:啟動T0: SETB TR0(2)溢出中斷標(biāo)志位TF0、TF1。
定時器溢出使硬件置TFx=1,引起中斷請求,CPU響應(yīng)中斷后,硬件自動清零,也可由軟件清零。TCON是可以位尋址的,因此可用位操作指令清溢出或啟動定時器工作。復(fù)位時,TCON所有位均為0。定時器的工作方式方式3方式2方式0方式1方式0:13位計數(shù)器定時器工作方式0為一個13位的定時/計數(shù)器。定時器T1的結(jié)構(gòu)和操作與定時器T0相同。該方式下,16位寄存器只用13位,其中TL0的高3位未用,低5位也是整個13位的低5位,TH0占整個13位的高8位。當(dāng)TL0的低5位溢出時,向TH0進(jìn)位,而TH0溢出時,向中斷標(biāo)志TF0進(jìn)位(稱硬件置位TF0),并申請中斷。確認(rèn)定時器0是否完成操作可通過查詢TF0是否置位,或是否產(chǎn)生定時器中斷。方式1:16位計數(shù)器
設(shè)置M1M0為01,則定時器工作于方式1,此時為一個16位的定時/計數(shù)器,其邏輯電路結(jié)構(gòu)如圖所示。在這種方式下,其電路結(jié)構(gòu)和操作方式與方式0基本相同,僅在計數(shù)器的位數(shù)方面有差別。方式2:初始常數(shù)自動重裝載
設(shè)置M1M0為10,則定時器工作于方式2,此時為一個能自動重裝初值的8位定時/計數(shù)器,其邏輯電路結(jié)構(gòu)如圖所示。方式3:兩個8位獨立計數(shù)器
設(shè)置M1M0為11,則定時器工作于方式3,其邏輯電路結(jié)構(gòu)如圖所示。在工作方式3模式下,定時/計數(shù)器0被拆成兩個獨立的8位計數(shù)器TL0和TH0。其中TL0既可以作計數(shù)器使用,也可以作為定時器使用,定時/計數(shù)器0的各控制位和引腳信號全歸它使用,其功能和操作與方式0或方式1完全相同。TH0就沒有那么多“資源”可利用了,只能作為簡單的定時器使用,而且由于定時/計數(shù)器0的控制位已被TL0占用,因此只能借用定時/計數(shù)器1的控制位TR1和TF1,也就是以計數(shù)溢出去置位TF1,TR1則負(fù)責(zé)控制TH0定時的啟動和停止。由于TL0既能作定時器也能作計數(shù)器使用,而TH0只能作定時器使用而不能作計數(shù)器使用,因此在方式3模式下,定時/計數(shù)器0可以構(gòu)成二個定時器或者一個定時器和一個計數(shù)器。
如果定時/計數(shù)器0工作于工作方式3,那么定時/計數(shù)器1的工作方式就不可避免受到一定的限制,因為自己的一些控制位已被定時/計數(shù)器借用,只能工作在方式0、方式1或方式2下,如果設(shè)置T1工作在方式3,則T1停止工作,相當(dāng)于其他方式時令TR1=0。定時器的初始化啟停位TRx的設(shè)置中斷允許位的設(shè)置計數(shù)初值的計算并裝入THx,TLx工作方式寄存器TMOD的設(shè)置定時器初始化編程使用定時器工作之前,先寫入控制寄存器,確定好定時器工作方式。
初始化編程格式:
MOVTMOD,#方式字
;選擇方式
MOVTHx,#XH
;裝入Tx時間常數(shù)
MOVTLx,#XL
SETBEA ;開Tx中斷
SETBETx
SETBTRx
;啟動Tx定時器定時器的編程步驟4TH3RD2ND1ST溢出處理編程格式計算時間常數(shù)按時間或計數(shù)長度選擇方式按實際需要選擇定時/計數(shù)功能定時器定時方式下的應(yīng)用查詢方式定時應(yīng)用兩種方式中斷方式查詢方式先查詢定時器溢出標(biāo)志,再進(jìn)行溢出處理。
…
;定時器初始化
WAIT:JBC TFx,PT;檢測溢出標(biāo)志
SJMP WAIT
PT:MOV THx,#XH;重裝時間常數(shù)
MOV TLx,#XL
…
;溢出處理 SJMP WAIT中斷方式初始化后執(zhí)行其他任務(wù),中斷服務(wù)程序處理溢出。ORG 0000H LJMP MAINORG 000BH(001BH)
;Tx中斷入口LJMP INT_xMAIN: …
;初始化后執(zhí)行其他程序 …SJMP$INT_x: …
;溢出中斷服務(wù)程序MOV THx,#XH
;重裝時間常數(shù)MOV TLx,#XLRETIEND
主程序
中斷子程序應(yīng)用舉例1由P1.0輸出方波信號,周期為2ms,設(shè)fosc=12MHz。解:每隔1ms改變一次P1.0的輸出狀態(tài)。
①選擇定時器工作方式,計算時間初值用T0非門控方式1定時。
計算時間常數(shù):X=216-t/T=216-1000/1=FC18H
②溢出處理編程格式應(yīng)用舉例1查詢方式:匯編語言程序如下:START:MOVTMOD,#01HMOVTL0,#18HMOV TH0,#FCHMOVIE,#00HSETB TR0LOOP:JBCTF0,PTF0SJMP LOOPPTF0:CPL P1.0MOV TL0,#18HMOV TH0,#FCHSJMPLOOPEND應(yīng)用舉例1中斷方式:方波周期用定時器T0來確定,采用中斷的方法來確定,即在T0中設(shè)置一個時間常數(shù)(計數(shù)初值),使其每隔1ms產(chǎn)生一次中斷,CPU響應(yīng)中斷后,改變一次P1.0的輸出狀態(tài)。T0中斷入口地址為000BH。應(yīng)用舉例1匯編語言程序如下:ORG 0000HAJMP MAINORG 000BHAJMP PT0INTORG 0100HMAIN:MOVSP,#60HMOV TMOD,#01HMOV TL0,#18HMOV TH0,#FCHSETB EASETB ET0SETB TR0HERE:SJMPHEREPT0INT:CPLP1.0MOV
TL0,#18HMOV TH0,#FCHRETIEND應(yīng)用舉例2例:門控方式測量正脈沖寬度。
下面以T1為例,來介紹門控制位GATE1的應(yīng)用。門控制位GATE1可使定時器/計數(shù)器T1的啟動計數(shù)受的控制,當(dāng)GATE1=1,TR=1時,只有引腳輸入高電平時,T1才被允許計數(shù),利用GATE1的這個功能,(對于GATE0也是一樣的),可測量引腳(P3.3)上正脈沖的寬度(機(jī)器周期數(shù))。引腳輸入被檢測信號,記錄在正脈沖的時間內(nèi)包含機(jī)器脈沖個數(shù)。設(shè)脈寬小于65.5ms,等待查詢,正脈沖過后,讀出TH1TL1。程序如下:
ORG0000HRESET:AJMPMAINORG0400HMAIN: MOVSP,#60HMOVTMOD,#90HMOVTL1,#00HMOVTH1,#00HLOOP0:JBP3.3,LOOP0SETBTR1LOOP1:JNBP3.3,LOOP1LOOP2:JBP3.3,LOOP2CLR TR1LOOP3:LCALLDIRAJMPLOOP3應(yīng)用舉例3LED亮1s滅1s閃爍,設(shè)時鐘頻率為6MHz。長定時方法:增加一個軟件計數(shù)器或一個硬件計數(shù)器。硬件方式:T0定時,T1計數(shù)T0的定時跳變信號P1.0的負(fù)跳變次數(shù),計滿5個跳變?yōu)?s。應(yīng)用舉例3匯編語言程序如下:START: MOVTMOD,#61H MOVTL1,#0FBH MOVTH1,#0FBH CLRP1.0 SETBTR1LOOP1: CPLP1.7LOOP2: MOVTH0,#3CH MOVTL0,#0B0H SETBTR0LOOP3:JBCTF0,LOOP4
SJMPLOOP3LOOP4:CPLP1.0
JBCTF1,LOOP5
SJMPLOOP2LOOP5:MOVTL1,#0FBH
MOVTH1,#0FBH
SJMPLOOP1
END應(yīng)用舉例4使用內(nèi)部定時器0,按方式1工作,即作為16位定時器使用每隔0.05sT1溢出中斷一次,P1口的P1.0~P1.7分別接八個發(fā)光二極管,要求編寫程序模擬——時序控制裝置,要求八盞燈依次循環(huán)點亮,間隔時間是一秒鐘,即第一秒第一盞亮,第二秒第二盞亮……第八秒第八盞亮(記為一次循環(huán)),第九秒第一盞亮……并一直循環(huán)下去。并使用R3記錄循環(huán)次數(shù)。應(yīng)用舉例4主程序框圖:中斷子程序框圖:應(yīng)用舉例4匯編語言程序如下: ORG0000H AJMPSTART ORG000BH
;定時器中斷入口 AJMPINT_T0
;定時器子程序 ORG0040HSTART: MOVSP,#60H
;設(shè)定堆棧入口
MOVTMOD,#10H
;設(shè)定定時器工作方式
MOVTL0,#0E0H
;設(shè)定定時器初始值 MOVTH0,#0B1H MOVR0,#00H
;R0記錄循環(huán)次數(shù),置初值 MOVR1,#50H
;置中斷次數(shù) MOVR3,#00H
;R3記錄循環(huán)次數(shù),初值0
SETBTR0
;定時器0工作SETBET0
;定時器中斷允許SETBEA
;CPU中斷允許SJMP$
;等待中斷INT_T0:PUSHACC
;堆棧,保存現(xiàn)場PUSHPSWPUSHDPLPUSHDPHCLRTR0
;關(guān)定時器0MOVTL0,#0E0H
;重新置定時器初值MOVTH0,#0B1HSETBTR0
;開定時器0應(yīng)用舉例4DJNZR1,EXIT
;條件滿足,跳出,恢復(fù)現(xiàn)場MOVR1,#50
;置循環(huán)次數(shù)MOVDPTR,#DATA1
;DPTR指向數(shù)據(jù)區(qū)首地址MOVA,R0MOVCA,@A+DPTR
;查表,選擇要輸出的值MOVP1,A
;向P1口輸出INCR0
;循環(huán)一次R0自加1ANL00H,#07H
;判斷循環(huán)是否到8次MOVA,R1
JNZEXIT
;判斷條件,跳轉(zhuǎn)INCR3
;記錄循環(huán)次數(shù)EXIT: POPDPH
;堆棧,恢復(fù)現(xiàn)場POPDPLPOPPSWPOPACCRETIDATA1:DB01H,02H,04H,08H,10H,20H,40H,80H
;數(shù)據(jù)區(qū) END 應(yīng)用舉例5假設(shè)某MCS-51應(yīng)用系統(tǒng)的兩個外部中斷源已被占用,設(shè)置定時器T1工作在方式2,作波特率發(fā)生器用。現(xiàn)要求增加一個外部中斷源,并控制P1.0引腳輸出一個5KHz左右的方波。假設(shè)系統(tǒng)時鐘為6MHz。1ST2ND3RD方式選擇初值計算程序設(shè)計應(yīng)用舉例5方式選擇:設(shè)置TL0工作在方式3計數(shù)模式,把T0引腳(P3.4)作增加的外部中斷輸入端,TL0的初值設(shè)置為0FFH,當(dāng)檢測到T0引腳電平出現(xiàn)負(fù)跳變時,TL0增1并溢出,申請中斷,這相當(dāng)于跳沿觸發(fā)的外部中斷源。TH0為8位方式3定時模式,定時控制P1.0輸出5KHz的方波信號,如圖所示。應(yīng)用舉例5初值計算:TL0的初值設(shè)為0FFH。由于5kHz的方波的周期為200,所以TH0的定時時間為100。TH0的初值計算如下:X=28-t/T=28-100/2=CEH程序設(shè)計
源程序如下:ORG0000HLJMPMAINORG000BHLJMPTL0INTORG001BH
LJMPTH0INT
ORG0100HMAIN: MOVTMOD,#27H
;T0為方式3計數(shù),T1為方式2定時 MOVTL0,#0FFH MOVTH0,#CEH
MOVTL1,#datal;data根據(jù)根據(jù)波特率常數(shù)要求來定MOVTH1,#datah;datal為data的低8位,datah為高8位MOVTCON,#55H
;允許T0中斷MOVIE,#9FH;啟動T1.TL0INT:MOVTL0,#0FFH
;TL0中斷服務(wù)程序,TL0重新裝入初值RETITH0INT:MOVTH0,#CEHCPLP1.0;P1.0位取反輸出RETI應(yīng)用舉例6利用單片機(jī)實現(xiàn)實時時鐘的設(shè)計(晶振頻率為6MHZ)計數(shù)初值的計算秒、分、時的實現(xiàn)程序設(shè)計1ST2ND3RD應(yīng)用舉例6計數(shù)初值的計算:若使用定時器的方式1,定時間最大為131ms。我們把定時時間設(shè)定為100ms,初值計算如下:X=216-t/T=216-100000/2=3CB0H
秒、分、時的實現(xiàn):秒計時采用中斷方式進(jìn)行溢出次數(shù)的累計,計滿十次,可得到秒計時。從秒到分,從分到時是通過軟件累加并進(jìn)行比較的方法來實現(xiàn)的。要求每滿1秒則“秒”單元32H中的內(nèi)容自動加1;“秒”單元滿60,則“分”單元31H中的內(nèi)容加1;“分”單元滿60,則“時”單元30H中的內(nèi)容自動加1;“時”單元滿24,則將32H、31H、30H的內(nèi)容全部清零。程序設(shè)計程序如下:ORG0000HAJMPMAINORG000BH
;T0的中斷入口AJMPIT0P
;跳T0的中斷服務(wù)入口ORG1000HMAIN: MOVTMOD,#01H
;T0為方式1定時 MOV20H,#0AHCLRAMOV30H,AMOV31H,AMOV32H,ASETBET0SETBEAMOVTL0,#0B0H
應(yīng)用舉例6MOVTH0,#3CHSETBTR0HERE:SJMPHERE;等待中斷PUSHPSW;T0的中斷服務(wù)程序入口,保護(hù)現(xiàn)場PUSHACCMOVTL0,#0B0H;重新給T0裝初值;MOVTH0,#3CHDJNZ20H,RETUNT;1秒未到返回MOV20H,#0AH;1秒時間到,重置中斷次數(shù)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋買賣合同解除的解除合同法律途徑3篇
- 教育機(jī)構(gòu)股東權(quán)益維護(hù)3篇
- 撤銷授權(quán)委托書的法律約束力3篇
- 文物流運年度招標(biāo)指南3篇
- 斷橋鋁門窗原材料采購招標(biāo)3篇
- 插座配件采購合同3篇
- 旅游區(qū)建筑施工合同3篇
- 工業(yè)泵安裝工程合同書3篇
- 文化藝術(shù)交流活動服務(wù)合作協(xié)議3篇
- 酒吧給水設(shè)施施工協(xié)議
- GB/T 532-1997硫化橡膠或熱塑性橡膠與織物粘合強(qiáng)度的測定
- 埃美柯閥門檢驗報告匯總-391黃銅調(diào)節(jié)閥
- 實驗三 藥物溶出曲線的測定
- 2023年國旗護(hù)衛(wèi)隊工作計劃三篇
- NPUAP壓瘡指南更新的解讀
- 傳統(tǒng)針刺手法及鄭氏針法臨床應(yīng)用解讀67張課件
- 天津市河西區(qū) 2020-2021學(xué)年度第一學(xué)期九年級期末質(zhì)量調(diào)查物理試卷(PDF打印版+含答案)
- ERAS在胃腸外科圍手術(shù)期中的應(yīng)用和進(jìn)展陳開波
- 醫(yī)療預(yù)防保健機(jī)構(gòu)聘用證明
- 三亮三創(chuàng)三比三評會議記錄
- 劍橋英語 中級班 聽力腳本劍橋二
評論
0/150
提交評論