《單片機(jī)應(yīng)用及控制技術(shù)》第7章-定時計(jì)數(shù)器_第1頁
《單片機(jī)應(yīng)用及控制技術(shù)》第7章-定時計(jì)數(shù)器_第2頁
《單片機(jī)應(yīng)用及控制技術(shù)》第7章-定時計(jì)數(shù)器_第3頁
《單片機(jī)應(yīng)用及控制技術(shù)》第7章-定時計(jì)數(shù)器_第4頁
《單片機(jī)應(yīng)用及控制技術(shù)》第7章-定時計(jì)數(shù)器_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第7章定時/計(jì)數(shù)器上海電子信息職業(yè)技術(shù)學(xué)院何永艷主編7.1定時/計(jì)數(shù)概述80C51單片機(jī)內(nèi)部有兩個定時/計(jì)數(shù)器T0和T1,其核心是計(jì)數(shù)器,基本功能是加1。這兩個計(jì)數(shù)器都是由兩個8位的RAM單元組成的,即每個計(jì)數(shù)器都是16位的計(jì)數(shù)器,從0-65535。7.1.1定時/計(jì)數(shù)器的概念1.定時功能對片內(nèi)機(jī)周脈沖計(jì)數(shù),是定時器。2.計(jì)數(shù)器功能對外部事件脈沖(下降沿)計(jì)數(shù),是計(jì)數(shù)器。定時/計(jì)數(shù)器作為計(jì)數(shù)器時,外部事件脈沖必須從規(guī)定的引腳輸入。且外部脈沖的最高頻率不能超過時鐘頻率的1/24。7.1.2.定時/計(jì)數(shù)器的功能7.2定時/計(jì)數(shù)器的方式控制寄存器7.2.1.定時/計(jì)數(shù)器控制寄存器TCON(88H)7.2.2定時/計(jì)數(shù)器工作方式控制寄存器TMOD7.3定時/計(jì)數(shù)器的四種工作方式7.3.1工作方式0

定時/計(jì)數(shù)器的工作方式0稱之為13位定時/計(jì)數(shù)器方式它由TL0/1的低5位和TH0/1的8位構(gòu)成13位的計(jì)數(shù)器此時TL0/1的高3位未用。7.3.2工作方式1

工作方式1是16位的定時/計(jì)數(shù)器方式,將TMOD的M1M0設(shè)為01即可。7.3.3工作方式2工作方式2--自動再裝入預(yù)置數(shù)的工作方式。預(yù)置數(shù)放T0或T1的高8位中,在工作方式2中只有低8位參與計(jì)數(shù)而高8位是不參與計(jì)數(shù)的,用作預(yù)置數(shù)的存放,這樣計(jì)數(shù)范圍就小了。通常工作方式2用于波特率發(fā)生器。工作方式2特別適合于用作較精確的脈沖信號發(fā)生器7.3.4工作方式3在這種工作方式下T0被拆成2個獨(dú)立的定時/計(jì)數(shù)器來用。其中TL0可以構(gòu)成8位的定時器或計(jì)數(shù)器工作方式,而TH0則只能作為定時器用。7.3.5定時/計(jì)數(shù)方法51系列單片機(jī)的計(jì)數(shù)器是16位的,也就是最大的計(jì)數(shù)值范圍是0-65535,因此計(jì)數(shù)器計(jì)到65536個脈沖就會產(chǎn)生溢出。定時時間和計(jì)數(shù)值可以編程設(shè)定,其方法是在計(jì)數(shù)器內(nèi)設(shè)置一個初值,然后加1計(jì)滿后溢出。調(diào)整計(jì)數(shù)器初值,可調(diào)整從初值到計(jì)滿溢出的數(shù)值,即調(diào)整了定時時間和計(jì)數(shù)值。80C51定時/計(jì)數(shù)初值計(jì)算公式:7.4定時/計(jì)數(shù)器的應(yīng)用使用定時器實(shí)時或計(jì)數(shù)時,需要先對定時器進(jìn)行設(shè)置,即進(jìn)行初始化等步驟,應(yīng)用步驟如下:1.合理選擇定時/計(jì)數(shù)器工作方式2.計(jì)算定時/計(jì)數(shù)器定時初值(按上述公式1計(jì)算)3.編制應(yīng)用程序1)定時/計(jì)數(shù)器的初始化。包括定義TMOD、寫入定時初值、設(shè)置中斷系統(tǒng)、啟動定時/計(jì)數(shù)器運(yùn)行等。

2)正確編制定時/計(jì)數(shù)器中斷服務(wù)程序。注意是否需要重裝定時初值,若需要連續(xù)反復(fù)使用原定時時間,且未工作在方式2,則應(yīng)在中斷服務(wù)程序中重裝定時初值。3)若講定時/計(jì)數(shù)器用于計(jì)數(shù)方式,則外部事件脈沖必須從P3.4(T0)或P3.5(T1)引腳輸入。且外部脈沖的最高頻率不能超過時鐘頻率的1/24。7.4.1定時/計(jì)數(shù)器應(yīng)用步驟【例7.1】利用定時/計(jì)數(shù)器T0,產(chǎn)生200us的定時,并使P1.0引腳上輸出周期為400us的方波,設(shè)系統(tǒng)時鐘頻率為12MHz。解:由于晶振為12MHz,所以機(jī)器周期T為1us。定時時間為200us,定時時間比較短,可以用工作方式0、1、2、3來定時?,F(xiàn)舉例分別用工作方式1、2兩種方式編程。1.用工作方式2實(shí)現(xiàn)定時1)計(jì)算計(jì)數(shù)初值XT0初值=28-200us/1us=256-200=56=38H即TH0=38H,TL0=38H2)求T0的方式控制字TMOD:

M1M0=10,GATE=0,C/T=0,可取方式控制字為02H;3)編寫源程序:(1)查詢方式ORG0000HLJMPMAIN ;跳轉(zhuǎn)至主程序ORG0100HMAIN: MOVTMOD,#02H ;置T0工作于方式2MOVTH0,#38H;裝入T0初值MOVTL0,#38HSETBTR0 ;啟動T0LOOP: JBCTF0,LOOP1 ;查詢定時時間到否?AJMPLOOP ;LOOP1:CLRP1.0 ;P1.0取反輸出AJMPLOOP ;繼續(xù)生成波形END(2)中斷方式

ORG0000HLJMPMAIN;跳轉(zhuǎn)到主程序

ORG000BH;T0的中斷入口地址

LJMPDVT0;轉(zhuǎn)向中斷服務(wù)程序

ORG0100HMAIN:MOVTMOD,#02H ;置T0工作于方式2MOVTH0,#38H;裝入T0初值

MOVTL0,#38HSETBET0;T0開中斷

SETBEA;CPU開中斷

SETBTR0;啟動T0SJMP$;等待中斷

DVT0:CPLP1.0;P1.0取反輸出

RETI;中斷返回

END2.用工作方式1實(shí)現(xiàn)定時1)計(jì)算計(jì)數(shù)初值XT0初值=216-200us/1us=65336=FF38H即TH0=0FFH,TL0=38H2)求T0的方式控制字TMOD:

M1M0=01,GATE=0,C/T=0,可取方式控制字為01H;3)編寫源程序:(1)查詢方式ORG0000HLJMPMAIN ;跳轉(zhuǎn)至主程序ORG0100HMAIN:MOVTMOD,#01H ;置T0工作于方式1MOVTH0,#0FFH;裝入T0初值

MOVTL0,#38H SETBTR0 ;啟動T0LOOP:JBCTF0,LOOP1 ;查詢定時時間到否?

AJMPLOOP ;LOOP1:CLRP1.0 ;P1.0取反輸出

MOVTH0,#0FFH;重置T0初值

MOVTL0,#38HAJMPLOOP ;繼續(xù)生成波形

END(2)中斷方式ORG0000HLJMPMAIN;跳轉(zhuǎn)到主程序

ORG000BH;T0的中斷入口地址

LJMPDVT0 ;轉(zhuǎn)向中斷服務(wù)程序

ORG0100HMAIN:MOVTMOD,#01H ;置T0工作于方式2MOVTH0,#0FFH;裝入計(jì)數(shù)初值

MOVTL0,#38HSETBET0;T0開中斷

SETBEA;CPU開中斷

SETBTR0;啟動T0SJMP$;等待中斷

DVT0:CPLP1.0;P1.0取反輸出

MOVTH0,#0FFH;重置T0初值

MOVTL0,#38HRETI;中斷返回

END【例7.2】測量在(P3.3)端出現(xiàn)的正脈沖的寬度??捎檬静ㄆ饔^察。解:門控制位GATE使定時器/計(jì)數(shù)器T1的啟動計(jì)數(shù)受INT1的控制;當(dāng)GATE為1,TR1為1時,只有INT1引腳輸入高電平時,T1才允許計(jì)數(shù),利用GATE的這個功能,可測試INT1引腳(P3.3)上正脈沖的寬度(機(jī)器周期數(shù))。源程序如下:

ORG0040HMOVTMOD,#90H ;定時器T1模式1、定時功能

MOV TH1,#00H ;設(shè)定初值

MOV TL1,#00H ;

JB P3.3,$ ;等待INT1變低

SETB TR1 ;啟動T1 JNB P3.3,$ ;等待INT1變高

JB P3.3,$ ;開始計(jì)數(shù),等待變低

CLRTR1 ;停止計(jì)數(shù)

END【例7.3】已知晶振12MHZ,要求利用定時器T0使圖中發(fā)光二極管進(jìn)行秒閃爍。

解:發(fā)光二極管進(jìn)行秒閃爍。即一秒鐘一亮一暗,亮500ms,暗500ms。晶振12MHz,每機(jī)周1s,T0方式1最大定時只能65ms余。取T0定時50ms,計(jì)數(shù)10次,即可實(shí)現(xiàn)500ms定時。①計(jì)算定時初值

T0初值=216-50000s/1s=65536–50000=15536=3CB0HTH0=3CH;TL0=0B0H。②設(shè)置TMOD:

00000001B=01H③編制程序如下:

ORG 0000H ;復(fù)位地址

LJMP MAIN ;轉(zhuǎn)主程序

ORG 000BH ;T0中斷入口地址

LJMP IT0 ;轉(zhuǎn)T0中斷服務(wù)程序

ORG 0100H ;主程序首地址MAIN: MOV TMOD,#01H ;置T0定時器方式1 MOV TH0,#3CH ;置T0初值50mS MOV TL0,#0B0H

MOV IE,#10000010B ;T0開中

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論