




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章定時(shí)器1、16位定時(shí)/計(jì)數(shù)器2、工作:對(duì)脈沖計(jì)數(shù)3、控制:計(jì)數(shù)啟動(dòng)和允許信號(hào)4、狀態(tài):計(jì)數(shù)器溢出信號(hào)定時(shí)器的結(jié)構(gòu)定時(shí)器是集成在單片機(jī)中的功能部件,通過(guò)設(shè)置后,具有一定自管理和獨(dú)自工作的能力,與CPU通過(guò)內(nèi)部總線(xiàn)連接及交換信息,其邏輯結(jié)構(gòu)如圖所示。定時(shí)器的工作原理定時(shí)/計(jì)數(shù)器中的核心部件為可預(yù)置初值16位計(jì)數(shù)器。預(yù)置初值后開(kāi)始計(jì)數(shù),直至計(jì)數(shù)值歸0或產(chǎn)生溢出,可申請(qǐng)中斷。計(jì)數(shù)器有加
1計(jì)數(shù)或減1計(jì)數(shù)兩種形式。計(jì)數(shù)脈沖是頻率穩(wěn)定的系統(tǒng)時(shí)鐘的分頻信號(hào),則稱(chēng)為定時(shí)方式,計(jì)數(shù)脈沖是外部脈沖信號(hào),則稱(chēng)為計(jì)數(shù)方式。定時(shí)方式計(jì)數(shù)方式定時(shí)器的控制定時(shí)器工作方式寄存器TMOD定時(shí)器的控制定時(shí)器控制寄存器TCON定時(shí)器工作方式寄存器TMODTMOD用于控制T0和T1的工作方式。其定義如下:
TMODD7D6D5D4D3D2D1D089HGATEC/TM1M0GATEC/TM1M0定時(shí)器1定時(shí)器0方式選擇位M1、M0:4種工作方式:M1
M0方式功能描述00013位01116位1028位自動(dòng)重裝113T0為兩個(gè)8位定時(shí)器控制寄存器TCONCON的作用是控制定時(shí)器的啟動(dòng)、停止以及標(biāo)志定時(shí)器的溢出和中斷情況。定時(shí)器控制字TCON的格式如下:
TCON8FH8EH8DH8CH8BH8AH89H88H88HTF1TR1TF0TR0IE1IT1IE0IT0(1)啟動(dòng)控制位TR0、TR1。TRx=0,停止定時(shí)器工作TRx=1,啟動(dòng)定時(shí)器工作
例:?jiǎn)?dòng)T0: SETB TR0(2)溢出中斷標(biāo)志位TF0、TF1。
定時(shí)器溢出使硬件置TFx=1,引起中斷請(qǐng)求,CPU響應(yīng)中斷后,硬件自動(dòng)清零,也可由軟件清零。TCON是可以位尋址的,因此可用位操作指令清溢出或啟動(dòng)定時(shí)器工作。復(fù)位時(shí),TCON所有位均為0。定時(shí)器的工作方式方式3方式2方式0方式1方式0:13位計(jì)數(shù)器定時(shí)器工作方式0為一個(gè)13位的定時(shí)/計(jì)數(shù)器。定時(shí)器T1的結(jié)構(gòu)和操作與定時(shí)器T0相同。該方式下,16位寄存器只用13位,其中TL0的高3位未用,低5位也是整個(gè)13位的低5位,TH0占整個(gè)13位的高8位。當(dāng)TL0的低5位溢出時(shí),向TH0進(jìn)位,而TH0溢出時(shí),向中斷標(biāo)志TF0進(jìn)位(稱(chēng)硬件置位TF0),并申請(qǐng)中斷。確認(rèn)定時(shí)器0是否完成操作可通過(guò)查詢(xún)TF0是否置位,或是否產(chǎn)生定時(shí)器中斷。方式1:16位計(jì)數(shù)器
設(shè)置M1M0為01,則定時(shí)器工作于方式1,此時(shí)為一個(gè)16位的定時(shí)/計(jì)數(shù)器,其邏輯電路結(jié)構(gòu)如圖所示。在這種方式下,其電路結(jié)構(gòu)和操作方式與方式0基本相同,僅在計(jì)數(shù)器的位數(shù)方面有差別。方式2:初始常數(shù)自動(dòng)重裝載
設(shè)置M1M0為10,則定時(shí)器工作于方式2,此時(shí)為一個(gè)能自動(dòng)重裝初值的8位定時(shí)/計(jì)數(shù)器,其邏輯電路結(jié)構(gòu)如圖所示。方式3:兩個(gè)8位獨(dú)立計(jì)數(shù)器
設(shè)置M1M0為11,則定時(shí)器工作于方式3,其邏輯電路結(jié)構(gòu)如圖所示。在工作方式3模式下,定時(shí)/計(jì)數(shù)器0被拆成兩個(gè)獨(dú)立的8位計(jì)數(shù)器TL0和TH0。其中TL0既可以作計(jì)數(shù)器使用,也可以作為定時(shí)器使用,定時(shí)/計(jì)數(shù)器0的各控制位和引腳信號(hào)全歸它使用,其功能和操作與方式0或方式1完全相同。TH0就沒(méi)有那么多“資源”可利用了,只能作為簡(jiǎn)單的定時(shí)器使用,而且由于定時(shí)/計(jì)數(shù)器0的控制位已被TL0占用,因此只能借用定時(shí)/計(jì)數(shù)器1的控制位TR1和TF1,也就是以計(jì)數(shù)溢出去置位TF1,TR1則負(fù)責(zé)控制TH0定時(shí)的啟動(dòng)和停止。由于TL0既能作定時(shí)器也能作計(jì)數(shù)器使用,而TH0只能作定時(shí)器使用而不能作計(jì)數(shù)器使用,因此在方式3模式下,定時(shí)/計(jì)數(shù)器0可以構(gòu)成二個(gè)定時(shí)器或者一個(gè)定時(shí)器和一個(gè)計(jì)數(shù)器。
如果定時(shí)/計(jì)數(shù)器0工作于工作方式3,那么定時(shí)/計(jì)數(shù)器1的工作方式就不可避免受到一定的限制,因?yàn)樽约旱囊恍┛刂莆灰驯欢〞r(shí)/計(jì)數(shù)器借用,只能工作在方式0、方式1或方式2下,如果設(shè)置T1工作在方式3,則T1停止工作,相當(dāng)于其他方式時(shí)令TR1=0。定時(shí)器的初始化啟停位TRx的設(shè)置中斷允許位的設(shè)置計(jì)數(shù)初值的計(jì)算并裝入THx,TLx工作方式寄存器TMOD的設(shè)置定時(shí)器初始化編程使用定時(shí)器工作之前,先寫(xiě)入控制寄存器,確定好定時(shí)器工作方式。
初始化編程格式:
MOVTMOD,#方式字
;選擇方式
MOVTHx,#XH
;裝入Tx時(shí)間常數(shù)
MOVTLx,#XL
SETBEA ;開(kāi)Tx中斷
SETBETx
SETBTRx
;啟動(dòng)Tx定時(shí)器定時(shí)器的編程步驟4TH3RD2ND1ST溢出處理編程格式計(jì)算時(shí)間常數(shù)按時(shí)間或計(jì)數(shù)長(zhǎng)度選擇方式按實(shí)際需要選擇定時(shí)/計(jì)數(shù)功能定時(shí)器定時(shí)方式下的應(yīng)用查詢(xún)方式定時(shí)應(yīng)用兩種方式中斷方式查詢(xún)方式先查詢(xún)定時(shí)器溢出標(biāo)志,再進(jìn)行溢出處理。
…
;定時(shí)器初始化
WAIT:JBC TFx,PT;檢測(cè)溢出標(biāo)志
SJMP WAIT
PT:MOV THx,#XH;重裝時(shí)間常數(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í)間常數(shù)MOV TLx,#XLRETIEND
主程序
中斷子程序應(yīng)用舉例1由P1.0輸出方波信號(hào),周期為2ms,設(shè)fosc=12MHz。解:每隔1ms改變一次P1.0的輸出狀態(tài)。
①選擇定時(shí)器工作方式,計(jì)算時(shí)間初值用T0非門(mén)控方式1定時(shí)。
計(jì)算時(shí)間常數(shù):X=216-t/T=216-1000/1=FC18H
②溢出處理編程格式應(yīng)用舉例1查詢(xún)方式:匯編語(yǔ)言程序如下:START:MOVTMOD,#01HMOVTL0,#18HMOV TH0,#FCHMOVIE,#00HSETB TR0LOOP:JBCTF0,PTF0SJMP LOOPPTF0:CPL P1.0MOV TL0,#18HMOV TH0,#FCHSJMPLOOPEND應(yīng)用舉例1中斷方式:方波周期用定時(shí)器T0來(lái)確定,采用中斷的方法來(lái)確定,即在T0中設(shè)置一個(gè)時(shí)間常數(shù)(計(jì)數(shù)初值),使其每隔1ms產(chǎn)生一次中斷,CPU響應(yīng)中斷后,改變一次P1.0的輸出狀態(tài)。T0中斷入口地址為000BH。應(yīng)用舉例1匯編語(yǔ)言程序如下: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例:門(mén)控方式測(cè)量正脈沖寬度。
下面以T1為例,來(lái)介紹門(mén)控制位GATE1的應(yīng)用。門(mén)控制位GATE1可使定時(shí)器/計(jì)數(shù)器T1的啟動(dòng)計(jì)數(shù)受的控制,當(dāng)GATE1=1,TR=1時(shí),只有引腳輸入高電平時(shí),T1才被允許計(jì)數(shù),利用GATE1的這個(gè)功能,(對(duì)于GATE0也是一樣的),可測(cè)量引腳(P3.3)上正脈沖的寬度(機(jī)器周期數(shù))。引腳輸入被檢測(cè)信號(hào),記錄在正脈沖的時(shí)間內(nèi)包含機(jī)器脈沖個(gè)數(shù)。設(shè)脈寬小于65.5ms,等待查詢(xún),正脈沖過(guò)后,讀出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è)時(shí)鐘頻率為6MHz。長(zhǎng)定時(shí)方法:增加一個(gè)軟件計(jì)數(shù)器或一個(gè)硬件計(jì)數(shù)器。硬件方式:T0定時(shí),T1計(jì)數(shù)T0的定時(shí)跳變信號(hào)P1.0的負(fù)跳變次數(shù),計(jì)滿(mǎn)5個(gè)跳變?yōu)?s。應(yīng)用舉例3匯編語(yǔ)言程序如下: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)部定時(shí)器0,按方式1工作,即作為16位定時(shí)器使用每隔0.05sT1溢出中斷一次,P1口的P1.0~P1.7分別接八個(gè)發(fā)光二極管,要求編寫(xiě)程序模擬——時(shí)序控制裝置,要求八盞燈依次循環(huán)點(diǎn)亮,間隔時(shí)間是一秒鐘,即第一秒第一盞亮,第二秒第二盞亮……第八秒第八盞亮(記為一次循環(huán)),第九秒第一盞亮……并一直循環(huán)下去。并使用R3記錄循環(huán)次數(shù)。應(yīng)用舉例4主程序框圖:中斷子程序框圖:應(yīng)用舉例4匯編語(yǔ)言程序如下: ORG0000H AJMPSTART ORG000BH
;定時(shí)器中斷入口 AJMPINT_T0
;定時(shí)器子程序 ORG0040HSTART: MOVSP,#60H
;設(shè)定堆棧入口
MOVTMOD,#10H
;設(shè)定定時(shí)器工作方式
MOVTL0,#0E0H
;設(shè)定定時(shí)器初始值 MOVTH0,#0B1H MOVR0,#00H
;R0記錄循環(huán)次數(shù),置初值 MOVR1,#50H
;置中斷次數(shù) MOVR3,#00H
;R3記錄循環(huán)次數(shù),初值0
SETBTR0
;定時(shí)器0工作SETBET0
;定時(shí)器中斷允許SETBEA
;CPU中斷允許SJMP$
;等待中斷INT_T0:PUSHACC
;堆棧,保存現(xiàn)場(chǎng)PUSHPSWPUSHDPLPUSHDPHCLRTR0
;關(guān)定時(shí)器0MOVTL0,#0E0H
;重新置定時(shí)器初值MOVTH0,#0B1HSETBTR0
;開(kāi)定時(shí)器0應(yīng)用舉例4DJNZR1,EXIT
;條件滿(mǎn)足,跳出,恢復(fù)現(xiàn)場(chǎng)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)場(chǎng)POPDPLPOPPSWPOPACCRETIDATA1:DB01H,02H,04H,08H,10H,20H,40H,80H
;數(shù)據(jù)區(qū) END 應(yīng)用舉例5假設(shè)某MCS-51應(yīng)用系統(tǒng)的兩個(gè)外部中斷源已被占用,設(shè)置定時(shí)器T1工作在方式2,作波特率發(fā)生器用?,F(xiàn)要求增加一個(gè)外部中斷源,并控制P1.0引腳輸出一個(gè)5KHz左右的方波。假設(shè)系統(tǒng)時(shí)鐘為6MHz。1ST2ND3RD方式選擇初值計(jì)算程序設(shè)計(jì)應(yīng)用舉例5方式選擇:設(shè)置TL0工作在方式3計(jì)數(shù)模式,把T0引腳(P3.4)作增加的外部中斷輸入端,TL0的初值設(shè)置為0FFH,當(dāng)檢測(cè)到T0引腳電平出現(xiàn)負(fù)跳變時(shí),TL0增1并溢出,申請(qǐng)中斷,這相當(dāng)于跳沿觸發(fā)的外部中斷源。TH0為8位方式3定時(shí)模式,定時(shí)控制P1.0輸出5KHz的方波信號(hào),如圖所示。應(yīng)用舉例5初值計(jì)算:TL0的初值設(shè)為0FFH。由于5kHz的方波的周期為200,所以TH0的定時(shí)時(shí)間為100。TH0的初值計(jì)算如下:X=28-t/T=28-100/2=CEH程序設(shè)計(jì)
源程序如下:ORG0000HLJMPMAINORG000BHLJMPTL0INTORG001BH
LJMPTH0INT
ORG0100HMAIN: MOVTMOD,#27H
;T0為方式3計(jì)數(shù),T1為方式2定時(shí) MOVTL0,#0FFH MOVTH0,#CEH
MOVTL1,#datal;data根據(jù)根據(jù)波特率常數(shù)要求來(lái)定MOVTH1,#datah;datal為data的低8位,datah為高8位MOVTCON,#55H
;允許T0中斷MOVIE,#9FH;啟動(dòng)T1.TL0INT:MOVTL0,#0FFH
;TL0中斷服務(wù)程序,TL0重新裝入初值RETITH0INT:MOVTH0,#CEHCPLP1.0;P1.0位取反輸出RETI應(yīng)用舉例6利用單片機(jī)實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘的設(shè)計(jì)(晶振頻率為6MHZ)計(jì)數(shù)初值的計(jì)算秒、分、時(shí)的實(shí)現(xiàn)程序設(shè)計(jì)1ST2ND3RD應(yīng)用舉例6計(jì)數(shù)初值的計(jì)算:若使用定時(shí)器的方式1,定時(shí)間最大為131ms。我們把定時(shí)時(shí)間設(shè)定為100ms,初值計(jì)算如下:X=216-t/T=216-100000/2=3CB0H
秒、分、時(shí)的實(shí)現(xiàn):秒計(jì)時(shí)采用中斷方式進(jìn)行溢出次數(shù)的累計(jì),計(jì)滿(mǎn)十次,可得到秒計(jì)時(shí)。從秒到分,從分到時(shí)是通過(guò)軟件累加并進(jìn)行比較的方法來(lái)實(shí)現(xiàn)的。要求每滿(mǎn)1秒則“秒”單元32H中的內(nèi)容自動(dòng)加1;“秒”單元滿(mǎn)60,則“分”單元31H中的內(nèi)容加1;“分”單元滿(mǎn)60,則“時(shí)”單元30H中的內(nèi)容自動(dòng)加1;“時(shí)”單元滿(mǎn)24,則將32H、31H、30H的內(nèi)容全部清零。程序設(shè)計(jì)程序如下:ORG0000HAJMPMAINORG000BH
;T0的中斷入口AJMPIT0P
;跳T0的中斷服務(wù)入口ORG1000HMAIN: MOVTMOD,#01H
;T0為方式1定時(shí) MOV20H,#0AHCLRAMOV30H,AMOV31H,AMOV32H,ASETBET0SETBEAMOVTL0,#0B0H
應(yīng)用舉例6MOVTH0,#3CHSETBTR0HERE:SJMPHERE;等待中斷PUSHPSW;T0的中斷服務(wù)程序入口,保護(hù)現(xiàn)場(chǎng)PUSHACCMOVTL0,#0B0H;重新給T0裝初值;MOVTH0,#3CHDJNZ20H,RETUNT;1秒未到返回MOV20H,#0AH;1秒時(shí)間到,重置中斷次數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 咨詢(xún)策劃居間合作協(xié)議樣本
- 湖北省重大科技創(chuàng)新計(jì)劃
- 個(gè)人技術(shù)使用合同范本
- 出口產(chǎn)品合同范本
- 2024年財(cái)產(chǎn)險(xiǎn)項(xiàng)目招商引資報(bào)告
- 倉(cāng)儲(chǔ)居間合同范本
- 全屋集成合同范本
- 上海中介合同范本
- 農(nóng)村簡(jiǎn)易房屋購(gòu)買(mǎi)合同范本
- 代建房屋合同范本
- 新星諾亞外語(yǔ)學(xué)校劍橋少兒英語(yǔ)一級(jí)上冊(cè)期中測(cè)試題
- QCT 291-2023 汽車(chē)機(jī)械式分動(dòng)器總成性能要求和臺(tái)架試驗(yàn)方法 (正式版)
- 浙教版勞動(dòng)八年級(jí)下冊(cè)全冊(cè)教案教學(xué)設(shè)計(jì)
- 盤(pán)扣式腳手架培訓(xùn)課件
- 【溫州眼鏡出口遭遇技術(shù)貿(mào)易壁壘的現(xiàn)狀及對(duì)策(定量論文)15000字】
- 2024年中國(guó)血糖健康管理行業(yè)白皮書(shū)
- 文華財(cái)經(jīng)“麥語(yǔ)言”函數(shù)手冊(cè)
- 大班數(shù)學(xué)PPT課件《實(shí)物填補(bǔ)數(shù)》
- 乳痛癥的健康宣教
- GB/Z 43281-2023即時(shí)檢驗(yàn)(POCT)設(shè)備監(jiān)督員和操作員指南
- 吊籃檢查記錄
評(píng)論
0/150
提交評(píng)論