第6章-2單片機_第1頁
第6章-2單片機_第2頁
第6章-2單片機_第3頁
第6章-2單片機_第4頁
第6章-2單片機_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、6.4 定時定時/計數(shù)器的編程和應用計數(shù)器的編程和應用 6.4.1 定時功能應用舉例定時功能應用舉例 6.4.2 計數(shù)功能應用舉例計數(shù)功能應用舉例實例實例5 定時器中斷控制的流水燈采用定時中斷方式,實現(xiàn)下圖流水燈控制功能。要求燈的循環(huán)速率為每秒1次。分析:分析:利用定時器直接進行1s延時是無法實現(xiàn)的,但可以將定時中斷與軟件計數(shù)聯(lián)合起來增加延時長度,即利用定時中斷進行中斷次數(shù)統(tǒng)計利用定時中斷進行中斷次數(shù)統(tǒng)計。例如,1s延時可以視為20次50ms定時中斷的累積延時量。若采用12MHz頻率定時方式1,則計數(shù)初值為: a = -50000 = 0 x3cb0實例5運行效果視頻6.4 定時定時/計數(shù)器的

2、編程和應用計數(shù)器的編程和應用 6.4.1 定時功能應用舉例定時功能應用舉例 6.4.2 計數(shù)功能應用舉例計數(shù)功能應用舉例計數(shù)器方式要點:計數(shù)器方式要點:由引腳T0(P3.4)和T1(P3.5)輸入外部脈沖信號;當T0或T1腳出現(xiàn)由1到0 負跳變脈沖時,計數(shù)器值加1;當計數(shù)器溢出時,TFx硬件置1;由于檢測一個負跳變需要2個機器周期,即24個振蕩周期,故最高計數(shù)頻率=oscf241補充實例補充實例2 將第5章實例5“計數(shù)顯示器”中的查詢法按鍵檢測改用T0中斷方式實現(xiàn)。分析分析 將T0設(shè)置為計數(shù)器方式2,設(shè)法使其在1個外部脈沖到來時就能溢出(即計數(shù)溢出周次為1)產(chǎn)生中斷請求。計數(shù)初值a =最大計數(shù)

3、空間 - 計數(shù)溢出周次 = 28 1 = 255 = 0 xff初始化,TMOD = 0000 0110B = 0 x06補充實例2程序:補充實例2運行效果:外部中斷的擴展問題(5.4.2)1、利用查詢法擴展外部中斷源利用查詢法擴展外部中斷源通過門電路連接多個外部中斷源,利用輸入端口線作為各個中斷源的識別線。2、利用定時器擴展外部中斷源利用定時器擴展外部中斷源通過定時器引腳連接外部中斷源,利用工作在計數(shù)器方式下的1個計數(shù)脈沖信號產(chǎn)生溢出中斷。main() P0=P2=table0;/顯示初值“00” TMOD=0 x06;/T0計數(shù)方式2 TH0=TL0=0 xff; /計數(shù)初值 ET0=1;

4、 EA=1; /開中斷 TR0=1;/啟動T0 while(1);實例實例2 測量從P3.2(INT0)輸入的正脈沖的寬度,測量結(jié)果以BCD碼形式存放在片內(nèi)RAM 40H開始的單元處(設(shè)40H地址存放個位,系統(tǒng)時鐘為12MHz,被測脈沖信號周期不超過100ms) 。原理分析原理分析:GATE=TR0=1時允許INT0的脈沖控制定時器的啟停,即INT0=1可啟動定時器,INT0=0可關(guān)閉定時器。若T0為定時器方式(計數(shù)初值為0),則根據(jù)T0先啟動、再關(guān)閉后的計數(shù)值可算出被測脈沖寬度。實例實例2參考程序參考程序T0實例實例2電路電路 脈沖設(shè)置脈沖設(shè)置(100ms)在在Proteus軟件中實現(xiàn)軟件中

5、實現(xiàn)C51源碼級調(diào)試源碼級調(diào)試的方法:形成OMF (absolute objectmodule format files,絕對目標文件) 格式文件。 omf文件文件設(shè)置設(shè)置omf文件加載啟動調(diào)試omf文件窗口片內(nèi)RAM窗口實例2的運行結(jié)果結(jié)果:計數(shù)值為50000脈沖脈寬值為50ms。運行到光標實例2的運行結(jié)果視頻實例實例2小結(jié)小結(jié)1、測量未知脈沖寬度的方法利用INTx引腳接入待測脈沖設(shè)置Tx定時方式 THx和TLx清零利用查詢語句輔助計時用Tx計數(shù)值計算脈寬值;2、C51對存儲器單元的操作方法定義指針變量并賦地址值按指針變量對數(shù)據(jù)進行讀寫操作;3、十六進制數(shù)轉(zhuǎn)BCD碼的方法從最低位開始反復進行

6、模10計算 取模后刪去最低位(整除10)直至整除10的結(jié)果為0 ;4、在Proteus中進行C51調(diào)試的方法改變keil 的輸出設(shè)置形成omf格式編譯文件在Proteus中加載omf文件利用類似匯編調(diào)試方法進行調(diào)試。實例實例3 設(shè)計一個波形展寬程序。設(shè)由P3.4輸入一個低頻窄脈沖信號。當P3.4波形發(fā)生負跳變時,由P3.0口輸出一個500s寬的同步脈沖(設(shè)系統(tǒng)頻率為6MHz)。1)將T0設(shè)置為1次計數(shù)方式次計數(shù)方式2,初值設(shè)為0 xff。這樣P3.4一旦發(fā)生負跳變T0就會產(chǎn)生溢出;2)查詢TF0標志位。當TF0=1時將T0設(shè)置為500 s定定時方式時方式2,初值設(shè)為-250(=-5006/12

7、),同時使P3.0輸出低電平;3)查詢TF0標志位。待T0再次溢出后使P3.0輸出高電平,然后將T0設(shè)置為1次計數(shù)方式次計數(shù)方式2,如此往復進行。分析:分析:可以采取如下做法:T0實例3參考程序?qū)嵗?電路圖實例3仿真運行效果實例4 采用10MHz晶振,在P1.0腳上輸出周期為2.5s,占空比為20%的脈沖信號。分析:10兆晶振,方式1最大定時為78.643ms;若取10ms產(chǎn)生定時,則2.5s對應于250次溢出;高電平占20%(500ms),則對應于50次溢出。a = -1000010/12=-8333 t =(2n-a)12/fosc ( s)2.5s0.5s次數(shù)=50?次數(shù)=250?中斷函數(shù)流程圖實例4參考程序?qū)嵗?仿真運行效果本章小結(jié)1、定時/計數(shù)器的工作原理是,利用加1計數(shù)器對時鐘脈沖或外來脈沖進行自動計數(shù)。當計滿溢出時可引起中斷標志(TFx)硬件置位。據(jù)此表示定時時間到或計數(shù)次數(shù)到。定時器本質(zhì)上是計數(shù)器,前者是對時鐘脈沖進行計數(shù),后者則是對外來脈沖進行計數(shù)。2、51單片機包括兩個16位定時器T0 (TH0、TL0)和T1 (TH1、TL1),還包括兩個控制寄存器TCON和TMOD。通過TMOD控制字可以設(shè)置定時與計數(shù)兩種模式,設(shè)置方式0方式3四種工作方式;通過T

溫馨提示

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

評論

0/150

提交評論