單片機(jī)原理及應(yīng)用-定時(shí)及計(jì)數(shù)器_第1頁(yè)
單片機(jī)原理及應(yīng)用-定時(shí)及計(jì)數(shù)器_第2頁(yè)
單片機(jī)原理及應(yīng)用-定時(shí)及計(jì)數(shù)器_第3頁(yè)
單片機(jī)原理及應(yīng)用-定時(shí)及計(jì)數(shù)器_第4頁(yè)
單片機(jī)原理及應(yīng)用-定時(shí)及計(jì)數(shù)器_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

5.1定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)

5.2工作方式

5.3綜合應(yīng)用第5章定時(shí)/計(jì)數(shù)器

主要內(nèi)容:5.1定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)TCONTMOD

基本原理

基本部件是兩個(gè)8位的計(jì)數(shù)器(其中TH1,TL1是T1的計(jì)數(shù)器,TH0,TL0是T0的計(jì)數(shù)器)兩種工作模式:定時(shí)和計(jì)數(shù)通過(guò)TMOD中C/T※位來(lái)控制。定時(shí):其計(jì)數(shù)脈沖來(lái)源于晶振(經(jīng)12分頻后提供)每個(gè)機(jī)器周期使定時(shí)器加1。計(jì)數(shù)方式時(shí):對(duì)外部事件計(jì)數(shù),接相應(yīng)的外部輸入引腳T0(P3.4)或T1(P3.5)。在這種情況下,檢測(cè)到輸入引腳上的電平由高跳變到低時(shí),計(jì)數(shù)器就加1。最高計(jì)數(shù)頻率為晶振的1/24。

1工作方式控制寄存器TMOD

2啟停與中斷控制器TCON字節(jié)地址88H(1)確定工作方式——對(duì)TMOD賦值。若賦值語(yǔ)句為:MOV TMOD #10H(2)預(yù)置定時(shí)或計(jì)數(shù)的初值——直接將初值寫(xiě)入TH0、TL0或TH1、TL1。定時(shí)/計(jì)數(shù)器的初值因工作方式的不同而不同。設(shè)最大值為M,則各種工作方式下M值如下:

方式0:M=213=8192

方式1:M=216=65536

方式2:M=28=256

方式3:定時(shí)器0分為兩個(gè)8位計(jì)數(shù)器,所以?xún)蓚€(gè)定時(shí)器的M值均為256。

因定時(shí)/計(jì)數(shù)器工作的實(shí)質(zhì)是做“加1”計(jì)數(shù),所以,當(dāng)最大計(jì)數(shù)值M值已知時(shí),初值X可計(jì)算如下:

X=M–計(jì)數(shù)值3定時(shí)/計(jì)數(shù)器的初始化定時(shí)器采用方式1定時(shí),M=65536,如要求每50ms溢出一次,采用12MHz晶振,則計(jì)數(shù)周期T=1μs,計(jì)數(shù)值=50000,所以,計(jì)數(shù)初值為:X=65536–50000=15536=3CB0H將3C、B0、分別預(yù)置給TH1、TL1。(3)根據(jù)需要開(kāi)啟定時(shí)/計(jì)數(shù)器中斷——直接對(duì)IE寄存器賦值。(4)啟動(dòng)定時(shí)/計(jì)數(shù)器工作——將TR0或TR1置“1”。

GATE=0時(shí),直接由軟件置位啟動(dòng);

GATE=1時(shí),除軟件置位外,還必須在外中斷引腳處加上相應(yīng)的電平值才能啟動(dòng)。例5-1中因GATE=0,所以直接由軟件置位啟動(dòng),其指令為:

SETB TR15.2工作方式(1)方式0

由THX的8位和TLX的低5位組成13位計(jì)數(shù)器

13位計(jì)數(shù)加1到全“1”,再加1就產(chǎn)生溢出,置TCON的TFX位為1,同時(shí)計(jì)數(shù)器全變?yōu)椤?”定時(shí)/計(jì)數(shù)方式0時(shí)的邏輯電路結(jié)構(gòu)圖解:1)確定工作方式

2)預(yù)置定時(shí)或計(jì)數(shù)的初值

3)編得1s延時(shí)子程序如下:例5.1系統(tǒng)時(shí)鐘頻率12MHZ,用定時(shí)器1,方式0實(shí)現(xiàn)1s的延時(shí)。X的實(shí)際填寫(xiě)值應(yīng)為X=0110001100011000B=6318H即TH1=63H,TL1=18H。則定時(shí)器1的初值X=M–計(jì)數(shù)值=8192–5000=3192=C78H=0110001111000BMOV TMOD,#00HDELAY:MOV R3,#200 ;置5ms計(jì)數(shù)循環(huán)初值

MOV TMOD,#00H ;設(shè)定時(shí)器1為方式0 MOV TH1,#63H ;置定時(shí)器初值

MOV TL1,#18H SETB TR1 ;啟動(dòng)T1LP1: JBC TF1,LP2 ;查詢(xún)計(jì)數(shù)溢出

SJMP LP1 ;未到5ms繼續(xù)計(jì)數(shù)LP2: MOV TH1,#63H ;重新置定時(shí)器初值

MOV TL1,#18H DJNZ R3,LP1 ;未到1s繼續(xù)循環(huán)

RET ;返回主程序(2)方式1

唯一的差別是THX和TLX組成一個(gè)16位計(jì)數(shù)器。

上例中X=65536–50000=15536=3CB0H定時(shí)/計(jì)數(shù)方式1時(shí)的邏輯電路結(jié)構(gòu)圖(3)方式2

方式2是將兩個(gè)8位計(jì)數(shù)器THX和TLX分成獨(dú)立的兩部分,初始常數(shù)自動(dòng)重新裝入設(shè)置初值時(shí)同時(shí)送THX和TLX定時(shí)/計(jì)數(shù)方式2例5.2試用定時(shí)器1,方式2實(shí)現(xiàn)1s延時(shí)。解:因方式2是8位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:256×1μs=256μs,為實(shí)現(xiàn)1s延時(shí),可選擇定時(shí)時(shí)間為250μs,再循環(huán)4000次。定時(shí)時(shí)間選定后,可確定計(jì)數(shù)值為250,則定時(shí)器1的初值為:X=M–計(jì)數(shù)值=256–250=6=6H

采用定時(shí)器1,方式2工作,因此,TMOD=20H。

DELAY: MOV R5,#28H ;置25ms計(jì)數(shù)循環(huán)初值

MOV R6,#64H ;置250μs計(jì)數(shù)循環(huán)初值

MOV TMOD,#20H;置定時(shí)器1為方式2 MOV TH1,#06H ;置定時(shí)器初值

MOV TL1,#06H SETB TR1 ;啟動(dòng)定時(shí)器LP1: JBC TF1,LP2 ;查詢(xún)計(jì)數(shù)溢出

SJMP LP1 ;無(wú)溢出繼續(xù)計(jì)數(shù)LP2: DJNZ R6,LP1 ;未到25ms繼續(xù)循環(huán)

MOV R6,#64H DJNZ R5,LP1 ;未到1s繼續(xù)循環(huán)

RET 可編得1s延時(shí)子程序如下:(4)方式3:只適用于T0,TL0組成完整的8位定時(shí)/計(jì)數(shù)器;TH0只作為定時(shí)器用,借用T1的控制位TR1和TF1;T1還可以設(shè)置為方式0~2,用于任何不需要中斷的場(chǎng)合。TF1TH0(8位)例5.3用定時(shí)器0,方式3實(shí)現(xiàn)1s延時(shí)。解:根據(jù)題意,定時(shí)器0中的TH0只能為定時(shí)器,定時(shí)時(shí)間可設(shè)為250μs;TL0設(shè)置為計(jì)數(shù)器,計(jì)數(shù)值可設(shè)為200。TH0計(jì)滿溢出后,用軟件復(fù)位的方法使T0(P3.4)引腳產(chǎn)生負(fù)跳變,TH0每溢出一次,T0引腳便產(chǎn)生一個(gè)負(fù)跳變,TL0便計(jì)數(shù)一次。TL0計(jì)滿溢出時(shí),延時(shí)時(shí)間應(yīng)為50ms,循環(huán)20次便可得到1s的延時(shí)。由上述分析可知,

TH0計(jì)數(shù)初值為X=(256–250)=6=06H

TL0計(jì)數(shù)初值為X=(256–200)=56=38H

TMOD=00000111B=07H可編得1s延時(shí)子程序如下:DELAY:MOV R3,#14H ;置1000ms計(jì)數(shù)循環(huán)初值

MOV TMOD,#07H ;置定時(shí)器0為方式3計(jì)數(shù)

MOV TH0,#06H ;置TH0初值

MOV TL0,#38H ;置TL0初值

SETB TR0 ;啟動(dòng)TL0 SETB TR1 ;啟動(dòng)TH0LP1: JBC TF1,LP2 ;查詢(xún)TH0計(jì)數(shù)溢出

SJMP LP1 ;未到250μs繼續(xù)循環(huán)LP2: MOV TH0,#06H ;重置TH0初值

CLR P3.4 ;T0引腳產(chǎn)生負(fù)跳變

NOP ;負(fù)跳變持續(xù)

NOP SETB P3.4 ;T0引腳恢復(fù)高電平

JBC TF0,LP3 ;查詢(xún)TL0計(jì)數(shù)溢出

SJMP LP1 ;200次未到繼續(xù)計(jì)數(shù)LP3: MOV TL0,#38H ;重置TL0初值

DJNZ R3,LP1 ;未到1s繼續(xù)循環(huán)

RET

例5.4用單片機(jī)定時(shí)/計(jì)數(shù)器設(shè)計(jì)一個(gè)秒表,由P1口連接的LED采用BCD碼顯示,發(fā)光二極管亮表示0,暗表示1。計(jì)滿60s后從頭開(kāi)始,依次循環(huán)。解:定時(shí)器0工作于定時(shí)方式1,產(chǎn)生1s的定時(shí)。定時(shí)器1工作在方式2,當(dāng)1s時(shí)間到時(shí),由軟件復(fù)位T1(P3.5)腳,產(chǎn)生負(fù)跳變,再由定時(shí)器1進(jìn)行計(jì)數(shù),計(jì)滿60次(1分鐘)溢出,再重新開(kāi)始計(jì)數(shù)。5.3綜合應(yīng)用按上述設(shè)計(jì)思路可知:方式寄存器TMOD的控制字應(yīng)為61H;定時(shí)器1的初值應(yīng)為:256-60=196=0C4H其源程序可設(shè)計(jì)如下:

ORG 0000H MOV TMOD,#61H ;置定時(shí)器0為方式1 定時(shí),置定時(shí)器1為方式2定時(shí)

MOV TH1,#0C4H ;定時(shí)器1置初值

MOV TL1,#0C4H SETB TR0 ;啟動(dòng)定時(shí)器1DISP: MOV A,#00H ;計(jì)數(shù)顯示初始化

MOV P1,ACONT:ACALL DELAY CLR P3.5 ;T1引腳產(chǎn)生負(fù)跳變

NOP NOP SETB P3.5 ;T1引腳恢復(fù)高電平

INC A ;累加器加1 DA A ;將16進(jìn)制數(shù)轉(zhuǎn)換成BCD數(shù)

MOV P1,A ;點(diǎn)亮發(fā)光二極管

JBC TF1,DISP ;查詢(xún)定時(shí)器1計(jì)數(shù)溢出

SJMP CONT ;60s不到繼續(xù)計(jì)數(shù)DELAY:MOV R3,#14H ;置50ms計(jì)數(shù)循環(huán)初值

MOV TH0,#3CH ;置定時(shí)器初值

MOV TL0,#0B0H SETB TR0 ;啟動(dòng)定時(shí)器0LP1: JBC TF0,LP2 ;查詢(xún)計(jì)數(shù)溢出

SJMP LP1 ;未到50ms繼續(xù)計(jì)數(shù)LP2: MOV TH0,#3CH ;重新置定時(shí)器初值

MOV TL0,#0B0H DJNZ R3,LP1 ;未到1s繼續(xù)循環(huán)

RET END思考與練習(xí)1MCS-51單片機(jī)內(nèi)設(shè)有幾個(gè)定時(shí)/計(jì)數(shù)器?它們是由哪些特殊功能寄存器組成?定時(shí)/計(jì)數(shù)器作定時(shí)器用時(shí),其定時(shí)時(shí)間與哪些因素有關(guān)?作計(jì)數(shù)器用時(shí),對(duì)外界計(jì)數(shù)頻率有何限制?已知80C51單片機(jī)系統(tǒng)時(shí)鐘頻率為6MHZ,請(qǐng)利用定時(shí)器T0和P1.2輸出矩形脈沖,其波形如下:

50μs350μs答:設(shè)置T0為方式2定時(shí),定時(shí)50μs,初值X為:

X=28-(6×106×50×10-6)÷12=231=0E7HTH0=TL0=0E7H,TMOD=02H源程序如下:

MOV TMOD, #02H MOV TH0, #0E7H MOV TL0, #0E7H SETB TR0L1: SETB P1.2 MOV R0, #08HDEL: JBC TF0, REP AJMP DELREP: CLR P1.2 DJNZ R0, DEL AJMP L148051單片機(jī)系統(tǒng)時(shí)鐘頻率為12MHZ,請(qǐng)編程使P1.0和P1.1分別輸出周期為2ms和500μs的方波。方法1:選用T0定時(shí),工作于方式3方法2:選用T1定時(shí),工作于方式25、51單片機(jī)定時(shí)器/計(jì)數(shù)器作定時(shí)和計(jì)數(shù)用時(shí),其計(jì)數(shù)脈沖分別由誰(shuí)提供?

6、簡(jiǎn)述如何使用51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器來(lái)測(cè)量一脈沖信號(hào)的高電平寬度。

7、

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論