定時計數(shù)初值的設(shè)定_第1頁
定時計數(shù)初值的設(shè)定_第2頁
定時計數(shù)初值的設(shè)定_第3頁
定時計數(shù)初值的設(shè)定_第4頁
定時計數(shù)初值的設(shè)定_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

定時計數(shù)初值的設(shè)定第一頁,共十四頁,編輯于2023年,星期日第二頁,共十四頁,編輯于2023年,星期日第三頁,共十四頁,編輯于2023年,星期日知識回顧設(shè)單片機(jī)時鐘電路的振蕩頻率fosc為11.0592MHz,則經(jīng)12分頻后得到的機(jī)器周期T0為:

T0===1.085us單片機(jī)

要進(jìn)行計數(shù),不能直接將要計數(shù)的值作為初值放在寄存器中(因為MCS-51單片機(jī)的定時/計數(shù)器T0和T1都是增量計數(shù)器),而是將計數(shù)的最大值減去實際要計數(shù)的值,將差值存入寄存器中。第四頁,共十四頁,編輯于2023年,星期日定時/計數(shù)器計數(shù)初值的計算公式其中,n為由工作方式?jīng)Q定的定時/計數(shù)器位數(shù)。在工作方式0下,n為13,213=8192,在工作方式1下,n為16,216=65536.計數(shù)初值=2n-實際計數(shù)值第五頁,共十四頁,編輯于2023年,星期日例1在工作方式1下,要用定時器T0定時50ms。需以下幾個步驟:1.設(shè)置定時/計數(shù)器T0工作方式TMOD=0x01;//TMOD=00000001B低四位設(shè)置定時/計數(shù)器T0,GATA=0,C/T=0,M1M0=01C/T=0,T0為定時功能第六頁,共十四頁,編輯于2023年,星期日2.計算實際計數(shù)值可按下面公式計算:

實際計數(shù)值===46083第七頁,共十四頁,編輯于2023年,星期日3.確定定時器T0的計數(shù)初值定時/計數(shù)器T0計數(shù)初值為(216-46083)用C語言將其存入寄存器TH0和TL0,語句如下:TH0=(65536-46083)/256;TL0=(65536-46083)%256;第八頁,共十四頁,編輯于2023年,星期日4.啟動定時器T0

用C語言啟動定時器T0語句:TR0=1;定時器T0啟動后,每個機(jī)器周期器寄存器TH0和TL0中的計數(shù)值就會自動加1,經(jīng)過46083個周期后,計數(shù)值會增加到溢出值65536,從而產(chǎn)生溢出。第九頁,共十四頁,編輯于2023年,星期日

解:由于定時器工作在模式2和3下時的最大定時時間只有0.256ms,因此要想獲得2ms的定時時間,定時器必須工作在模式0或模式1。

采用方式0,可得定時器初值:

定時/計數(shù)器T0計數(shù)初值為(213-2000)=8192-2000=6192

實際計數(shù)值===2000例2

若單片機(jī)時鐘頻率為12MHz,請計算2ms的定時器初值

第十頁,共十四頁,編輯于2023年,星期日思考:設(shè)定時器T0工作在模式0時,時鐘振蕩頻率為6?MHz,要求定時時間為1?ms。第十一頁,共十四頁,編輯于2023年,星期日單片機(jī)發(fā)音頻率的控制1.原理用單片機(jī)驅(qū)動蜂鳴器,只要讓單片機(jī)送給蜂鳴器的電平信號每隔音頻的半周期取反一次,即可使蜂鳴器發(fā)出相應(yīng)音頻的方法。2.方法驅(qū)動蜂鳴器發(fā)音時,電平信號的取反時間要由定時器來控制。例如1KHz音頻發(fā)音為例,其音頻的半周期為0.5ms,即500us。則要計數(shù)的脈沖為500/1.085=460次,可用定時器的方式0來定時,使用定時器T1,則需以下步驟:第十二頁,共十四頁,編輯于2023年,星期日①設(shè)置定時/計數(shù)器T1工作方式TMOD=0x00;//M1M0=00②確定定時器T1的計數(shù)初值定時/計數(shù)器T1計數(shù)初值為(213-460)=(8192-460)將其存入寄存器中,語句如下:TH1=(8192-460)/32;TL1=(8192-460)%32;③啟動定時器T1TR1=1第十三頁,共十四頁,編輯于2023年,星期日#include<reg51.h>頭文件sbitsound=P3^7;將3.7腳輸出voidmain(void)主函數(shù){

TMOD=0x00;定時器T1工作方式0TH1=(8192-460)/32;定時器T1的高八位賦初值TL1=(8192-460)%32;定時器的第5位賦初值TR1=1;啟動定時器T1while(1)無限循環(huán){while(TF1==0)查詢定時器T1是否溢出;未溢出則等待TF1=0;溢出則軟件清零,并執(zhí)行下面程序sound=~sound;將P3.7腳取反TH1=

溫馨提示

  • 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

提交評論