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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

2)正確編制定時(shí)/計(jì)數(shù)器中斷服務(wù)程序。注意是否需要重裝定時(shí)初值,若需要連續(xù)反復(fù)使用原定時(shí)時(shí)間,且未工作在方式2,則應(yīng)在中斷服務(wù)程序中重裝定時(shí)初值。3)若講定時(shí)/計(jì)數(shù)器用于計(jì)數(shù)方式,則外部事件脈沖必須從P3.4(T0)或P3.5(T1)引腳輸入。且外部脈沖的最高頻率不能超過(guò)時(shí)鐘頻率的1/24。7.4.1定時(shí)/計(jì)數(shù)器應(yīng)用步驟【例7.1】利用定時(shí)/計(jì)數(shù)器T0,產(chǎn)生200us的定時(shí),并使P1.0引腳上輸出周期為400us的方波,設(shè)系統(tǒng)時(shí)鐘頻率為12MHz。解:由于晶振為12MHz,所以機(jī)器周期T為1us。定時(shí)時(shí)間為200us,定時(shí)時(shí)間比較短,可以用工作方式0、1、2、3來(lái)定時(shí)?,F(xiàn)舉例分別用工作方式1、2兩種方式編程。1.用工作方式2實(shí)現(xiàn)定時(shí)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)編寫(xiě)源程序:(1)查詢(xún)方式ORG0000HLJMPMAIN ;跳轉(zhuǎn)至主程序ORG0100HMAIN: MOVTMOD,#02H ;置T0工作于方式2MOVTH0,#38H;裝入T0初值MOVTL0,#38HSETBTR0 ;啟動(dòng)T0LOOP: JBCTF0,LOOP1 ;查詢(xún)定時(shí)時(shí)間到否?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開(kāi)中斷

SETBEA;CPU開(kāi)中斷

SETBTR0;啟動(dòng)T0SJMP$;等待中斷

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

RETI;中斷返回

END2.用工作方式1實(shí)現(xiàn)定時(shí)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)編寫(xiě)源程序:(1)查詢(xún)方式ORG0000HLJMPMAIN ;跳轉(zhuǎn)至主程序ORG0100HMAIN:MOVTMOD,#01H ;置T0工作于方式1MOVTH0,#0FFH;裝入T0初值

MOVTL0,#38H SETBTR0 ;啟動(dòng)T0LOOP:JBCTF0,LOOP1 ;查詢(xún)定時(shí)時(shí)間到否?

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開(kāi)中斷

SETBEA;CPU開(kāi)中斷

SETBTR0;啟動(dòng)T0SJMP$;等待中斷

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

MOVTH0,#0FFH;重置T0初值

MOVTL0,#38HRETI;中斷返回

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

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

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

MOV TL1,#00H ;

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

SETB TR1 ;啟動(dòng)T1 JNB P3.3,$ ;等待INT1變高

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

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

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

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

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定時(shí)器方式1 MOV TH0,#3CH ;置T0初值50mS MOV TL0,#0B0H

MOV IE,#10000010B ;T0開(kāi)中

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論