定時(shí)器計(jì)數(shù)器_第1頁
定時(shí)器計(jì)數(shù)器_第2頁
定時(shí)器計(jì)數(shù)器_第3頁
定時(shí)器計(jì)數(shù)器_第4頁
定時(shí)器計(jì)數(shù)器_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

定時(shí)器計(jì)數(shù)器第一頁,共三十二頁,編輯于2023年,星期日

第7章定時(shí)器/計(jì)數(shù)器第二頁,共三十二頁,編輯于2023年,星期日7.1定時(shí)器/計(jì)數(shù)器的功能和結(jié)構(gòu)7.2定時(shí)器/計(jì)數(shù)器的工作原理7.3定時(shí)器/計(jì)數(shù)器的工作方式7.4定時(shí)器/計(jì)數(shù)器的編程本章要點(diǎn):第7章定時(shí)器/計(jì)數(shù)器第三頁,共三十二頁,編輯于2023年,星期日7.1定時(shí)器/計(jì)數(shù)器的功能和結(jié)構(gòu)7.1.1定時(shí)器/計(jì)數(shù)器的功能7.1.2定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)第7章定時(shí)器/計(jì)數(shù)器第四頁,共三十二頁,編輯于2023年,星期日7.1.2定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)第7章定時(shí)器/計(jì)數(shù)器第五頁,共三十二頁,編輯于2023年,星期日7.2定時(shí)器/計(jì)數(shù)器的工作原理第7章定時(shí)器/計(jì)數(shù)器第六頁,共三十二頁,編輯于2023年,星期日7.3定時(shí)器/計(jì)數(shù)器的工作方式7.3.1工作方式寄存器-TMOD第7章定時(shí)器/計(jì)數(shù)器第七頁,共三十二頁,編輯于2023年,星期日(1)GATE:門控位,實(shí)現(xiàn)選通控制GATE=0時(shí),只需用軟件使TR0(或TR1)置1就可以啟動(dòng)定時(shí)器,而不管INT0(或INT1)的電平是高電平還是低電平;GATE=1時(shí),只有在INT0(或INT1)引腳為高電平,而且TR0(或TR1)置1時(shí),才能啟動(dòng)定時(shí)器工作.(2)C/T:計(jì)數(shù)/定時(shí)方式選擇位C/T=0,設(shè)置為定時(shí)方式,定時(shí)器計(jì)數(shù)單片機(jī)內(nèi)部計(jì)數(shù)脈沖;當(dāng)C/T=1,設(shè)置為計(jì)數(shù)功能,計(jì)數(shù)器對來自T0(P3.4)或T1(P3.5)端的外部脈沖計(jì)數(shù)。7.3.1工作方式寄存器-TMOD第7章定時(shí)器/計(jì)數(shù)器第八頁,共三十二頁,編輯于2023年,星期日(3)M1M0:這兩位指定定時(shí)器/計(jì)數(shù)器的工作方式,可形成四種編碼M1M0工作方式功能說明00方式013位計(jì)數(shù)器01方式116位計(jì)數(shù)器10方式2自動(dòng)再裝入8位計(jì)數(shù)器11方式3定時(shí)器0:分成兩個(gè)8位計(jì)數(shù)器7.3.1工作方式寄存器-TMOD第7章定時(shí)器/計(jì)數(shù)器第九頁,共三十二頁,編輯于2023年,星期日1.方式07.3.2定時(shí)器/計(jì)數(shù)器工作方式第7章定時(shí)器/計(jì)數(shù)器第十頁,共三十二頁,編輯于2023年,星期日2.方式17.3.2定時(shí)器/計(jì)數(shù)器工作方式第7章定時(shí)器/計(jì)數(shù)器第十一頁,共三十二頁,編輯于2023年,星期日3.方式27.3.2定時(shí)器/計(jì)數(shù)器工作方式第7章定時(shí)器/計(jì)數(shù)器第十二頁,共三十二頁,編輯于2023年,星期日4.方式37.3.2定時(shí)器/計(jì)數(shù)器工作方式第7章定時(shí)器/計(jì)數(shù)器第十三頁,共三十二頁,編輯于2023年,星期日7.3.4計(jì)數(shù)初值的計(jì)算由于定時(shí)器/計(jì)數(shù)器以加1方式計(jì)數(shù),假設(shè)計(jì)數(shù)值為x,則應(yīng)裝入定時(shí)器/計(jì)數(shù)器的初值為:(n為不同方式下計(jì)數(shù)器的位數(shù))第7章定時(shí)器/計(jì)數(shù)器第十四頁,共三十二頁,編輯于2023年,星期日每個(gè)機(jī)器周期包括12個(gè)振蕩周期,若晶振頻率為6MHz,一個(gè)機(jī)器周期:計(jì)數(shù)個(gè)數(shù)為:其中Tp為機(jī)器周期則應(yīng)裝入的計(jì)數(shù)初值為:【例】要求定時(shí)為1mS,晶振頻率12MHz。7.3.4計(jì)數(shù)初值的計(jì)算第7章定時(shí)器/計(jì)數(shù)器第十五頁,共三十二頁,編輯于2023年,星期日應(yīng)注意以下兩點(diǎn):

(1)正確編制定時(shí)器/計(jì)數(shù)器的初始化程序包括定義TMOD、寫入定時(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í)初值。7.4定時(shí)器/計(jì)數(shù)器的編程第7章定時(shí)器/計(jì)數(shù)器第十六頁,共三十二頁,編輯于2023年,星期日7.4.1定時(shí)器應(yīng)用實(shí)例【例7-2】使用定時(shí)器/計(jì)數(shù)器T0的方式0,設(shè)定1ms的定時(shí)。在P1.0引腳上產(chǎn)生周期為2ms的方波輸出。晶體振蕩器的頻率為fosc=6MHz。

解:(1)定時(shí)常數(shù)計(jì)算

振蕩器頻率為fosc=6MHz=6×106HZ,方式0計(jì)數(shù)器長度n=13,2n=213=8192

定時(shí)時(shí)間:t=1ms=1×10-3s

機(jī)器周期:Tp=12/6×106=2us

計(jì)數(shù)值:x=Tc/Tp=1ms/2us=500

那么應(yīng)裝入的初值為8192-500=7692

定時(shí)常數(shù)TC轉(zhuǎn)換成二進(jìn)制數(shù)TCB=1111000001100B。

所以TCH=1EH,TCL=0CH。那么應(yīng)該寫入T0的形式為TH0=1EH,TL0=0CH。第7章定時(shí)器/計(jì)數(shù)器第十七頁,共三十二頁,編輯于2023年,星期日(2)TMOD的設(shè)定(即控制字)7.4.1定時(shí)器應(yīng)用實(shí)例第7章定時(shí)器/計(jì)數(shù)器第十八頁,共三十二頁,編輯于2023年,星期日(3)編程 ORG 0000H

AJMP MAIN;轉(zhuǎn)到主程序

ORG 000BH ;T0中斷矢量地址

AJMP INQP;轉(zhuǎn)到中斷服務(wù)程序

ORG 0050H

MAIN: MOV TMOD,#00H;設(shè)置T0為方式0定時(shí)

MOV TH0,#1EH;裝入T0的定時(shí)常數(shù)

MOV TL0,#0CH

SETB TR0;啟動(dòng)T0

SETB ET0;允許T0中斷

SETB EA;CPU開中斷

SJMP $;等待T0中斷發(fā)生

ORG 0100H ;中斷服務(wù)程序

INQP: MOV TH0,#1EH ;重裝定時(shí)常數(shù)

MOV TL0,#0CH

CPL P1.0 ;P1.0變反輸出

RETI ;中斷返回第7章定時(shí)器/計(jì)數(shù)器第十九頁,共三十二頁,編輯于2023年,星期日7.4.2計(jì)數(shù)器應(yīng)用實(shí)例【例7-3】試設(shè)定定時(shí)器/計(jì)數(shù)器T0為計(jì)數(shù)方式2。當(dāng)T0引腳出現(xiàn)負(fù)跳變時(shí),向CPU申請中斷。解:(1)定數(shù)常數(shù)計(jì)算當(dāng)T0引腳出現(xiàn)負(fù)跳變時(shí),即向CPU申請中斷,意思是說當(dāng)計(jì)數(shù)器計(jì)數(shù)到28時(shí)就會(huì)溢出,設(shè)計(jì)數(shù)初值為X,再計(jì)數(shù)一次計(jì)數(shù)器就溢出,用公式表示為X+1=28,所以X=28-1=255=11111111B=0FFH,故此時(shí)的定數(shù)常數(shù)應(yīng)為TCB=0FFH。第7章定時(shí)器/計(jì)數(shù)器第二十頁,共三十二頁,編輯于2023年,星期日(2)TMOD的設(shè)定(即控制字)

7.4.2計(jì)數(shù)器應(yīng)用實(shí)例第7章定時(shí)器/計(jì)數(shù)器第二十一頁,共三十二頁,編輯于2023年,星期日(3)編程 ORG 0000H AJMP MAIN ;轉(zhuǎn)到主程序 ORG 000BH ;T0的中斷入口 AJMP INTS ;轉(zhuǎn)到中斷服務(wù)程序

ORG 0100H ;主程序入口地址MAIN: MOV SP,#60H ;設(shè)棧指針

MOV TMOD,#06H ;設(shè)T0為計(jì)數(shù)方式2 MOV TL0,#0FFH ;設(shè)TL0初值

MOV TH0,#0FFH ;設(shè)TH0初值

SETB TR0 ;啟動(dòng)計(jì)數(shù)

SETB ET0 ;允許T0中斷

SETB EA ;中斷開放

SJMP $;等待T0中斷發(fā)生;中斷處理程序INTS: PUSH A;現(xiàn)場保護(hù),把寄存器A中的值壓入堆棧中

PUSH DPL;把數(shù)據(jù)指針的低位DPL中的值壓入堆棧中

PUSH DPH;把數(shù)據(jù)指針的高位DPH中的值壓入堆棧中 ;現(xiàn)場恢復(fù)POP DPH;把數(shù)據(jù)指針的高位DPH中的值從堆棧中取出POP DPL;把數(shù)據(jù)指針的低位DPL中的值從堆棧中取出

POP A;把寄存器A中的值從堆棧中取出

RETI第7章定時(shí)器/計(jì)數(shù)器第二十二頁,共三十二頁,編輯于2023年,星期日【實(shí)例7-1】已知晶振12MHZ,參見圖7-9,要求利用定時(shí)器T0使圖中發(fā)光二極管D進(jìn)行秒閃爍。

解析:發(fā)光二極管進(jìn)行秒閃爍。即一秒鐘一亮一暗,亮500ms,暗500ms。晶振12MHz,一個(gè)機(jī)器周期是1μs,T0方式1最大定時(shí)只能65ms多(注:216=65536)。取T0定時(shí)50ms,計(jì)數(shù)10次,即可實(shí)現(xiàn)500ms定時(shí)。(1)計(jì)算定時(shí)初值T0初值=216-50000μs/1μs=65536–50000=15536=3CB0HTH0=3CH;TL0=B0H7.5

實(shí)例解析第7章定時(shí)器/計(jì)數(shù)器第二十三頁,共三十二頁,編輯于2023年,星期日(2)設(shè)置TMOD0000

0

0

01B=01H

T0方式T0與INT0無關(guān)T1控制位

(3)編程ORG 0000H ;復(fù)位地址 LJMP MAIN ;轉(zhuǎn)入主程序 ORG 000BH ;T0中斷入口地址 LJMP IT0 ;轉(zhuǎn)入T0中斷服務(wù)程序 ORG 0100H ;主程序首地址MAIN: MOV TMOD,#01H ;設(shè)置T0為工作方式1 MOV TH0,#3CH ;裝入定時(shí)常數(shù) MOV TL0,#0B0H MOV IE,#10000010B ;T0開中斷 MOV R7,#0AH ;設(shè)置循環(huán)次數(shù)為10次 SETB TR0 ;T0運(yùn)行 SJMP $ ;等待中斷第7章定時(shí)器/計(jì)數(shù)器第二十四頁,共三十二頁,編輯于2023年,星期日;中斷服務(wù)程序:ORG000BHITO:MOVTL0,#0B0H;重新裝入時(shí)間常數(shù) MOVTH0,#3CHDJNZR7,LOOP;循環(huán)10次CLRTR0;500ms定時(shí)到了,停止T0工作LOOP:RETI;中斷返回END;程序結(jié)束7.5

實(shí)例解析第7章定時(shí)器/計(jì)數(shù)器第二十五頁,共三十二頁,編輯于2023年,星期日【實(shí)例7-2】利用定時(shí)器/計(jì)數(shù)器,測定如圖所示波形的一個(gè)周期長度。7.5

實(shí)例解析第7章定時(shí)器/計(jì)數(shù)器第二十六頁,共三十二頁,編輯于2023年,星期日解析:這里利用門控位GATE啟動(dòng)定時(shí)器的方法。設(shè)如圖示定時(shí)器/計(jì)數(shù)器T0為定時(shí)器,為高電平時(shí),啟動(dòng)定時(shí)器;定時(shí)器/計(jì)數(shù)器T1為計(jì)數(shù)器,T1的電平由1到0,計(jì)數(shù)器計(jì)數(shù)。(1)定時(shí)器設(shè)置當(dāng)每秒脈沖數(shù)低于3個(gè)時(shí),每個(gè)脈沖周期330ms左右,故而設(shè)置定時(shí)器的基本定時(shí)為100ms,可以滿足測時(shí)的精度要求。因此,采用門控方式,觸發(fā)啟動(dòng)定時(shí)器;采用方式1,16位計(jì)數(shù)器。7.5

實(shí)例解析第7章定時(shí)器/計(jì)數(shù)器第二十七頁,共三十二頁,編輯于2023年,星期日定時(shí)器T0的TMOD的設(shè)置:控制字為9H時(shí)間常數(shù)計(jì)算:晶體振蕩器為6MHz,基本定時(shí)時(shí)間為100ms,機(jī)器周期Tc為

設(shè)置初值為x:x=216-50000=15536=3CB0H預(yù)置:(TH0)=3CH,(TL0)=0B0HGATEM1M01001

7.5

實(shí)例解析第7章定時(shí)器/計(jì)數(shù)器第二十八頁,共三十二頁,編輯于2023年,星期日(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)先級高于定時(shí)器T0。計(jì)數(shù)器T1的TMOD的設(shè)置:控制字為5H。計(jì)數(shù)器初值為:FFFEH,預(yù)置:(TH1)=0FFH,(TL0)=0FEH。GATEM1M001017.5

實(shí)例解析第7章定時(shí)器/計(jì)數(shù)器第二十九頁,共三十二頁,編輯于2023年,星期日(3)編程 ORG 0000H AJMP MAIN ORG 000BH ;T0的中斷入口 AJMP TIME0;轉(zhuǎn)入中斷程序 ORG 001BH;T1的中斷入口 AJMP TIME1 ;轉(zhuǎn)入中斷程序 ORG 0033HMAIN: MOV SP,#60H ;設(shè)置堆棧指針初值 MOV R3,#0 ;清除軟件計(jì)數(shù)器 SETB P3.2;將P3.2,P3.5置1,即為輸入狀態(tài)

SETB P3.5 MOV TMOD,#59H MOV TH0,#3CH ;裝入定時(shí)器初值

MOV TL0,#0B0H MOV TH1,#0FFH ;裝入計(jì)數(shù)器初值

MOV TL1,#0FEH SETB TR0 ;啟動(dòng)定時(shí)器、計(jì)數(shù)器

第7章定時(shí)器/計(jì)數(shù)器第三十頁,共三十二頁,編輯于2023年,星期日 SETBTR1 MOV IP,#08H ;T0中斷優(yōu)先于T1 SETB ET1 ;允許T1中斷 SETB TF1 ;設(shè)TF0、TF1為中斷標(biāo)志LOOP:SETB TF0 SETB ET0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論