




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
知識(shí)回顧:
6定時(shí)/計(jì)數(shù)器
定時(shí)器/計(jì)數(shù)器(Timer/Counter),是單片機(jī)內(nèi)的重要部件,其作用主要包括產(chǎn)生各種時(shí)標(biāo)間隔、記錄外部事件的數(shù)量等。AT89S51單片機(jī)有2個(gè)16位的定時(shí)器/計(jì)數(shù)器、定時(shí)器/計(jì)數(shù)器0(T0)和定時(shí)器/計(jì)數(shù)器1(T1)。AT89S52包含3個(gè)16位的定時(shí)器/計(jì)數(shù)器:定時(shí)器/計(jì)數(shù)器0(T0),定時(shí)器/計(jì)數(shù)器1(T1)、定時(shí)器/計(jì)數(shù)器2(T2)。AT89S51單片機(jī)還包含有一個(gè)用作看門狗的14位定時(shí)器(T3)。
6.1AT89S51單片機(jī)的定時(shí)器/計(jì)數(shù)器的基本原理
定時(shí)器/計(jì)數(shù)器的核心是一個(gè)16位的加1計(jì)數(shù)器。作定時(shí)器時(shí),其計(jì)數(shù)脈沖來源于時(shí)鐘振蕩器(經(jīng)12分頻后提供)。這個(gè)脈沖的周期稱為單片機(jī)的機(jī)器周期,每一個(gè)機(jī)器周期定時(shí)寄存器自動(dòng)加1,所以定時(shí)器也可看作是計(jì)算機(jī)器周期的計(jì)數(shù)器。作計(jì)數(shù)器時(shí),其計(jì)數(shù)脈沖來源于單片機(jī)外部引腳T0(或T1)的脈沖。即Tx端口有從“1”到“0”的負(fù)跳變,計(jì)數(shù)器就自動(dòng)加1。計(jì)算機(jī)是在每個(gè)機(jī)器周期S5P2狀態(tài)時(shí)采樣Tx端口,當(dāng)前一個(gè)機(jī)器周期采樣為1、后一個(gè)采樣周期采樣為0時(shí),計(jì)數(shù)器即加一計(jì)數(shù)。計(jì)算機(jī)需用兩個(gè)機(jī)器周期來識(shí)別1次計(jì)數(shù),因而最大計(jì)數(shù)速率為振蕩頻率的1/24。
6.2定時(shí)器/計(jì)數(shù)器T0、T1的內(nèi)部結(jié)構(gòu)
AT89S51單片機(jī)的定時(shí)器/計(jì)數(shù)器和微處理器的關(guān)系,如圖6-1所示,定時(shí)器/計(jì)數(shù)器T0由TH0、TL0構(gòu)成,T1由TH1、TL1構(gòu)成。TMOD用于控制和確定各定時(shí)器/計(jì)數(shù)器的功能和工作模式。TCON用于控制定時(shí)器/計(jì)數(shù)器T0、T1的啟動(dòng)和停止計(jì)數(shù),同時(shí)包含定時(shí)/計(jì)數(shù)器的狀態(tài)。它們屬于特殊功能寄存器。這些寄存器的內(nèi)容靠軟件設(shè)置。系統(tǒng)復(fù)位時(shí),寄存器的所有位都被清零。定時(shí)器/計(jì)數(shù)器的T0、T1的特殊功能寄存器有:方式寄存器TMOD、控制寄存器TCON、數(shù)據(jù)寄存器。
圖6-1定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)
AT89S51單片機(jī)有2個(gè)特殊功能寄存器TMOD和TCON:TMOD用于設(shè)置T/C的工作方式;TCON用于控制定時(shí)器T0、T1的啟動(dòng)與停止,并包含了定時(shí)器的狀態(tài)。
1.定時(shí)/計(jì)數(shù)器T0、T1的方式寄存器-TMOD
定時(shí)器工作方式寄存器TMOD用于選擇定時(shí)器的工作方式,它的高4位控制定時(shí)器T1,低4位控制定時(shí)器T0。TMOD中各位的定義如下:GATEC/TM1M0GATEC/TM1M0T1T0TMOD89H
其中::T/C功能選擇位,當(dāng)=1時(shí)為計(jì)數(shù)方式; 當(dāng)=0時(shí)為定時(shí)方式。
M1M0:T/C工作方式定義位,其具體定義方式如表 6―1所示。表6―1定時(shí)/計(jì)數(shù)器工作方式
GATE:門控制位,用于控制定時(shí)器的啟動(dòng)是否受外部中斷源信號(hào)的影響。GATE=0時(shí),與外部中斷無關(guān),由TCON寄存器中的TRx位控制啟動(dòng)。GATE=1時(shí),由控制位TRx和引腳共同控制啟動(dòng),只有在沒有外部中斷請(qǐng)求信號(hào)的情況下(即外部中斷引腳=1時(shí)),才允許定時(shí)器啟動(dòng)。
2.定時(shí)/計(jì)數(shù)器T0、T1的控制寄存器-TCONTCON控制寄存器各位的定義如下:
TF1TR1TF0TR0IE1IT1IE0IT0D7D6D5D4D3D2D1D0TCON88H
其中:
TF0(TF1):為T0(T1)定時(shí)器溢出中斷標(biāo)志位。當(dāng)T0(T1)計(jì)數(shù)溢出時(shí),由硬件置位,并在允許中斷的情況下,發(fā)出中斷請(qǐng)求信號(hào)。當(dāng)CPU響應(yīng)中斷轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件自動(dòng)將該位清0。
TR0(TR1):為T0(T1)運(yùn)行控制位。當(dāng)TR0(TR1)=1時(shí)啟動(dòng)T0(T1);TR0(TR1)=0時(shí)關(guān)閉T0(T1)。該位由軟件進(jìn)行設(shè)置。
TCON的低4位與外部中斷有關(guān),可參閱中斷一節(jié)的有關(guān)內(nèi)容。
TCON寄存器在復(fù)位時(shí)也被清0。
6.3定時(shí)/計(jì)數(shù)器的工作方式
MCS-51單片機(jī)的T/C有4種工作方式,分別由TMOD寄存器中的M1、M0兩位的二進(jìn)制編碼所決定。
1.方式0
當(dāng)M1M0=00時(shí),T/C設(shè)定為工作方式0,構(gòu)成13位的T/C。其邏輯結(jié)構(gòu)如圖6―3所示。在此工作方式下,T/C構(gòu)成一個(gè)13位的計(jì)數(shù)器,由THx的8位和TLx的低5位組成,TLx的高3位未用,滿計(jì)數(shù)值為213。T/C啟動(dòng)后立即加1計(jì)數(shù),當(dāng)TLx的低5位計(jì)數(shù)溢出時(shí)向THx進(jìn)位,THx計(jì)數(shù)溢出則對(duì)相應(yīng)的溢出標(biāo)志位TFx置位,以此作為定時(shí)器溢出中斷標(biāo)志。當(dāng)單片機(jī)進(jìn)入中斷服務(wù)程序時(shí),由內(nèi)部硬件自動(dòng)清除該標(biāo)志。
圖6―3T/C方式0的邏輯結(jié)構(gòu)圖
2.方式1
當(dāng)M1M0=01時(shí),T/C設(shè)定為工作方式1,構(gòu)成16位定時(shí)/計(jì)數(shù)器,其中THx作為高8位,TLx作為低8位,滿計(jì)數(shù)值為216,其余同方式0類似。其邏輯結(jié)構(gòu)如圖6―4所示。圖6―4T/C方式1的邏輯結(jié)構(gòu)圖
3.方式2
當(dāng)M1M0=10時(shí),T/C工作在方式2,構(gòu)成1個(gè)自動(dòng)重裝載的T/C,滿計(jì)數(shù)值為28。在方式0和方式1中,當(dāng)計(jì)數(shù)滿后,若要進(jìn)行下一次定時(shí)/計(jì)數(shù),需用軟件向THx和TLx重新予置計(jì)數(shù)初值。在方式2中THx和TLx被當(dāng)作兩個(gè)8位計(jì)數(shù)器,計(jì)數(shù)過程中,THx寄存8位初值并保持不變,由TLx進(jìn)行8位計(jì)數(shù)。計(jì)數(shù)溢出時(shí),除產(chǎn)生溢出中斷請(qǐng)求外,還自動(dòng)將THx中的初值重新裝到TLx中去,即重裝載。除此之外,方式2也同方式0類似。其邏輯結(jié)構(gòu)如圖6―5所示。
圖6―5T/C方式2的邏輯結(jié)構(gòu)圖
4.方式3
方式3只適用于定時(shí)器T0。當(dāng)定時(shí)器T1處于方式3時(shí)相當(dāng)于TR1=0,停止計(jì)數(shù)。當(dāng)T0工作在方式3時(shí),TH0和TL0被拆成2個(gè)獨(dú)立的8位計(jì)數(shù)器。這時(shí),TL0既可作為定時(shí)器使用,也可作為計(jì)數(shù)器使用,它占用了定時(shí)器T0所使用的控制位(C/、GATE、TR0、TF0),其功能和操作與方式0或方式1完全相同;而TH0只能作定時(shí)器用,并且占據(jù)了定時(shí)器T1的兩個(gè)控制信號(hào)TR1和TF1。在這種情況下,定時(shí)器T1雖仍可用于方式0、1、2,但不能使用中斷方式。圖6―6T/C方式3的邏輯結(jié)構(gòu)圖
作業(yè)P1072、3、4、5知識(shí)回顧:
定時(shí)/計(jì)數(shù)器1的方式1的邏輯結(jié)構(gòu)圖6.5AT89S51單片機(jī)的定時(shí)器/計(jì)數(shù)器編程和應(yīng)用6.5.1定時(shí)器/計(jì)數(shù)器溢出率的計(jì)算定時(shí)器/計(jì)數(shù)器運(yùn)行前,在其中預(yù)先置入的常數(shù),稱為定時(shí)常數(shù)或計(jì)數(shù)常數(shù)(TC)。由于計(jì)數(shù)器是加1(向上)計(jì)數(shù)的,故而預(yù)先置入的常數(shù)均應(yīng)為補(bǔ)碼。其中:t—定時(shí)時(shí)間。 Tc—機(jī)器周期。
fosc—晶體振蕩器頻率。L—計(jì)數(shù)器的長(zhǎng)度。
對(duì)于T0及T1:方式0L=13213=8192
方式1L=16216=65536
方式2L=828=256
對(duì)于T2:
L=16216=65536TC—定時(shí)器/計(jì)數(shù)器初值,即定時(shí)常數(shù)或計(jì)數(shù)常數(shù)。定時(shí)時(shí)間的倒數(shù)即為溢出率,即根據(jù)時(shí)間的定時(shí)時(shí)間t,計(jì)算出TC值,并將其轉(zhuǎn)換成二進(jìn)制數(shù)TCB,然后再分別送入THi、TLi(對(duì)于T0,i=0;對(duì)于T1,i=1)。對(duì)于定時(shí)器/計(jì)數(shù)器T0/T1:方式0時(shí):TCB=TCH+TCL,TCH—高8位,TCL—低5位
MOVTHi,#TCH
;送高8位
MOVTLi,#TCL
;送低5位方式1時(shí):TCB=TCH+TCL,TCH—高8位,TCL—低8位
MOVTHi,#TCH ;送高8位
MOVTLi,#TCL ;送低8位方式2時(shí):TC—8位
MOVTHi,#TCBMOVTLi,#TCB6.5.2定時(shí)器/計(jì)數(shù)器的編程
定時(shí)器/計(jì)數(shù)器的編程可分為以下幾步:1)寫TMOD,只能用字節(jié)尋址。設(shè)置定時(shí)器/計(jì)數(shù)器的工作方式(M1,M0)、功能選擇()及是否使用門控(GATE)。2)將時(shí)間常數(shù)或計(jì)數(shù)常數(shù)寫入THi及TLi,也只能用字節(jié)尋址。根據(jù)上面的計(jì)算結(jié)果寫入THi及TLi。3)啟動(dòng)定時(shí)或計(jì)數(shù),即寫TCON,用字節(jié)尋址或用位尋址。如:
SETBTRi ;啟動(dòng)定時(shí)器
CLRTRi ;停止定時(shí)器4)定時(shí)器中斷開放和禁止,即寫IE。如:
SETBETi ;允許中斷ETiSETBEA ;開放中斷
CLRETi ;禁止中斷ETiCLREA ;關(guān)閉中斷
[例6-1]使用定時(shí)器/計(jì)數(shù)器T1的方式1,設(shè)定1ms定時(shí)。在P1.0引腳上產(chǎn)生周期為2ms的方波輸出。晶體振蕩器的頻率為fosc=6MHz。解:(1)定時(shí)常數(shù)計(jì)算振蕩器的頻率fosc=6MHz=6×106Hz,計(jì)數(shù)器長(zhǎng)度L=16,2L=216=65536。定時(shí)時(shí)間t=1ms=1﹡10-3s。定時(shí)常數(shù)TC轉(zhuǎn)換成二進(jìn)制TCB=1111111000001100B=0FE0CH所以TCH=0FEH(高8位),TCL=0CH(低8位)。(2)TMOD的設(shè)定(即控制字)(3)編程
ORG 000BH ;T0中斷矢量地址
AJMP INQP ORG 0100H ;主程序入口
MOV SP,#60H ;堆棧設(shè)置
MOV TMOD,#10H ;寫控制字
MOV TH1,#0FEH ;寫定時(shí)常數(shù)
MOV TL1,#0CH SETB TR1 ;啟動(dòng)T1 SETB ET1 ;允許T1中斷
SETB EA ;開放CPU中斷
SJMP $ ORG 00XXH ;中斷服務(wù)程序INQP: MOV TH1,#0F0H ;重寫定時(shí)常數(shù)
MOV TL1,#0CH CPL P1.0 ;P1.0變反輸出
RETI ;中斷返回[例6-2]借助于單片機(jī)內(nèi)的定時(shí)器/計(jì)數(shù)器,測(cè)量人體心率。假設(shè)單片機(jī)的晶振頻率為6MHz。[測(cè)量頻率]:由單片機(jī)T0實(shí)現(xiàn)1分鐘的定時(shí),T1負(fù)責(zé)對(duì)外計(jì)數(shù),1分鐘定時(shí)時(shí)間到,讀出T1計(jì)數(shù)器中的數(shù)值就是心率。具體做法:
T0和T1都選方式1,這樣最大定時(shí)時(shí)間 t=65536x2=131.072ms便于計(jì)算讓計(jì)數(shù)器定時(shí)100ms,選30H,31H分別為秒和分存儲(chǔ)單元。30H單元計(jì)數(shù)10次滿1秒,31H單元計(jì)數(shù)60次滿1分。分析:兩種方法:頻率測(cè)量法和周期測(cè)量法。預(yù)置:(TH0)=3CH,(TL0)=0B0HTMOD設(shè)置:MOVTMOD,#51H
時(shí)間常數(shù)計(jì)算:晶體振蕩器為6MHz,基本定時(shí)時(shí)間為100ms,機(jī)器周期Tc為:
設(shè)置初值為xx=216—50000=15536=3CB0H[測(cè)周期]:(1)定時(shí)器T0設(shè)置利用定時(shí)器/計(jì)數(shù)器測(cè)定周期a)波形圖案b)連接示意圖
為高電平時(shí),啟動(dòng)定時(shí)器;定時(shí)器/計(jì)數(shù)器T1為計(jì)數(shù)器,T1的電平由1到0,計(jì)數(shù)器計(jì)數(shù)。
定時(shí)器T0的TMOD的設(shè)置:GATEM1M01001門控定時(shí)器方式1控制字為9H。
時(shí)間常數(shù)計(jì)算:晶體振蕩器為6MHz,基本定時(shí)時(shí)間為100ms,機(jī)器周期Tc為設(shè)置初值為xx=216—50000=15536=3CB0H預(yù)置:
(TH0)=3CH,(TL0)=0B0H(2)計(jì)數(shù)器設(shè)置定時(shí)器/計(jì)數(shù)器T1為計(jì)數(shù)器。計(jì)數(shù)值為2,當(dāng)計(jì)數(shù)1時(shí),啟動(dòng)定時(shí)器;當(dāng)計(jì)數(shù)2時(shí),中斷計(jì)數(shù)器T1,并停止定時(shí)器T0的定時(shí);中斷方式,其優(yōu)先級(jí)高于定時(shí)器T0。計(jì)數(shù)器T1的TMOD的設(shè)置:
C/GATEM1M00101
計(jì)數(shù)器方式1控制字為5H。計(jì)數(shù)初值為:FFFEH,預(yù)置:(TH1)=0FFH,(TL0)=0FEH。MOVTMOD,#59H注:課本上其余例子作為課堂練習(xí)小結(jié):測(cè)量低頻信號(hào),為了快速測(cè)量又保證測(cè)量精度,一般采用測(cè)周法。高頻信號(hào)采用測(cè)頻法。問題1:頻率測(cè)量和周期測(cè)量的界線如何確定?問題2:如何保證測(cè)量結(jié)果的準(zhǔn)確性?總結(jié)要正確使用定時(shí)器/計(jì)數(shù)器,首先要根據(jù)要求確定選用那個(gè)定時(shí)器/計(jì)數(shù)器,工作在什么方式;如何啟動(dòng)定時(shí)器/計(jì)數(shù)器,如何停止定時(shí)器/計(jì)數(shù)器、如何利用定時(shí)器/計(jì)數(shù)器的中斷來進(jìn)行信號(hào)測(cè)量,都是需要考慮的問題。
測(cè)頻程序:
MOV TMOD,#51H;寫控制字
MOV TH0,#3CH ;寫定時(shí)常數(shù)
MOV TL0,#0B0H MOV TH1,#00H;對(duì)心臟電信號(hào)脈沖進(jìn)行計(jì)數(shù)
MOV TL1,#00H MOV 30H,#00H;秒存放單元
MOV 31H,#00H ;分存放單元
MOV 32H,#00H;心率存放單元
SETB TR0;啟動(dòng)T0定時(shí)
SETB TR1;啟動(dòng)T1計(jì)數(shù)
ACALLTEST
;調(diào)用心率測(cè)量程序
MOV 32H,TL1;將測(cè)量結(jié)果存放在32H單元
SJMP $TEST: JNB TF0,$ CLR TF0INC30H CLR C MOV A,30H CJNE A,#0AH,SECOND;判斷是否到1秒鐘
MOV 30H,#00H
;到1秒鐘,清秒單元
INC 31H CLR C MOV A,31H CJNE A,#3CH,SECOND
;判斷是否到1分鐘
CLR TR0 CLR TR1 RETSECOND:MOV TH0,#3BH ;重寫定時(shí)常數(shù)
MOV TL0,#0F0HAJMP TEST
測(cè)周期程序: ORG 0000H AJMP MAIN ORG 000BH ;T0的中斷入口
AJMP TIME0 ORG 001BH ;T1的中斷入口
AJMP TIME1 ORG 0033H
MAIN:MOV SP,#60H MOV R3,#0 ;清除軟件計(jì)數(shù)器
SETB P3.2 ;置P3.2,P3.5為輸入狀態(tài)
SETB P3.5 MOV TMOD,#59H MOV TH0,#3CH ;定時(shí)器初值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 咋樣寫供貨合同范本
- 發(fā)改ppp合同范本
- 買賣銅幣合同范本
- 可再生能源項(xiàng)目合同范本
- 品牌股權(quán)合同范本
- 啟東農(nóng)田流轉(zhuǎn)合同范本
- 廠房帶門面裝修合同范本
- 寫抖音合同范例
- 買房簽意向合同范例
- 動(dòng)物實(shí)驗(yàn)合同范本
- 雙碳視角看歐盟綠色新政政策篇
- 備電綜合解決方案服務(wù)合同
- 噴(烤)漆房VOCs治理設(shè)施日常運(yùn)行臺(tái)賬
- 往復(fù)式壓縮機(jī)組單機(jī)試運(yùn)方案
- 區(qū)域環(huán)境概況
- 爆破片面積計(jì)算
- 設(shè)備安裝檢驗(yàn)批表格
- 車輛清障救援合作協(xié)議
- 全國(guó)書法作品展投稿登記表
- 中醫(yī)師承跟師筆記60篇(共1頁(yè))
- BM 帶小葉片的高壓比壓氣機(jī)葉輪設(shè)計(jì)BladeGen實(shí)例
評(píng)論
0/150
提交評(píng)論