版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
51單片機接口定時器1計數(shù)器與定時器基礎1計數(shù)概念的引入2計數(shù)器的容量
3定時
4溢出5任意定時及計數(shù)的方法預置數(shù)
例:16位計數(shù)器最大的計數(shù)值到65536要計100,那我就先放進65436,再來100個脈沖,不就到了65536了嗎
251單片機的定時器51單片機有兩個定時器:T0,T132/52單片機還有一個定時器:T2T0;T1有雙重含義:引腳P3.4,P3.5??梢砸胪獠棵}沖16位定時器/計數(shù)器電路模塊,定時器數(shù)據(jù)寄存器(16位)。相關寄存器:TH0,TL0,TH1,TL1數(shù)據(jù)寄存器/定時計數(shù)器TMOD定時器模式寄存器TCON控制寄存器定時器工作原理定時器就是計數(shù)器定時器就是由若干個D觸發(fā)器構成的計數(shù)器。計算機中多以16個D觸發(fā)器構成,稱為16位定時器/計數(shù)器。計數(shù)器能夠記錄輸入脈沖的個數(shù)。計數(shù)器可以是加1計數(shù)方式,也可以是減1計數(shù)方式。標準脈沖(固定頻率)輸入時,稱為“定時器Timer”,通常使用本機晶振分頻得到。從引腳進入的脈沖,通常就把定時器改稱“計數(shù)器Counter”可編程計數(shù)器/定時器可以選擇多種CLK來源之一;可以設定加1或減1方式;可以寫入起始計數(shù)值;它的溢出信號可以觸發(fā)中斷或者提供其他芯片/接口使用。好的定時/計數(shù)器有“重裝載寄存器”用于存放計數(shù)初始值,當計數(shù)器溢出時,能自動將此數(shù)裝入計數(shù)器并開始再次計數(shù)??梢蚤_關計數(shù)器的工作。通用可編程定時/計數(shù)器框圖晶振預分頻溢出標志數(shù)據(jù)線重裝/捕獲/比較計數(shù)器啟動開關脈沖源選擇器時鐘輸入腳輸出選擇中斷申請引腳PWM框圖解釋:重裝/比較/捕獲重裝:當定時/計數(shù)器溢出時,能自動將“重裝載寄存器”中的數(shù)據(jù)裝入定時/計數(shù)器,繼續(xù)工作而不需軟件干預。比較:在定時/計數(shù)器數(shù)值變化過程中,當其數(shù)值與“比較寄存器”數(shù)值相等時,通過引腳輸出電平變化,產(chǎn)生PWM波形。捕獲:通過一個引腳輸入的捕獲脈沖(下降沿)觸發(fā),將計數(shù)器值讀入捕獲寄存器并申請中斷。其作用類似“測量脈沖寬度”Intel8031的定時器有2個16位定時器(32系列有3個)。時鐘來源有兩種選擇:f/12或引腳輸入。可開關定時器的工作。只能作加1計數(shù),計數(shù)初始值是溢出數(shù)的補碼。可設置8位、13位、16位計數(shù)/定時;可以測量脈沖寬度。沒有重裝載寄存器(僅在方式2工作時,低8位計數(shù)溢出時使用高8位值重裝,32系列的T2有16位重裝載寄存器)。計數(shù)上溢出時可以產(chǎn)生中斷申請。有獨自的中斷入口。51定時器框圖i=0,1指:T0,T1和INT0,INT1T0,T1的模式寄存器TMODGATE 當使用INTi測量脈寬時置1,否則置0C/T 置1時選擇Counter,時鐘由引腳輸入。 置0時選擇Timer,時鐘選用fosc/12M1M0 兩位二進制數(shù)表示選擇定時器模式為 模式0~3高4位管理定時器T1,低4位管理定時器T0GATEC/TM1M0GATEC/TM1MOMSBLSB定時器T0模式定時器T1模式定時器T0,T1的模式M1M0模式解釋00013位,TLi的低5位和THi的8位組合01116位定時/計數(shù)器,最常用1028位自動重裝載定時/計數(shù),THi是重裝載寄存器。T1常用作“波特率”發(fā)生器113T0分成兩個8位定時/計數(shù)器,借用T1的控制位(參看TCON)控制TH0,T1只能工作于模式2或者停止工作。
方式2當MIM0為10時,選定方式2,方式2為TLx自動恢復初值(初始時間常數(shù)自動重新裝入)的8位定時器/計數(shù)器方式。把TLx作為8位計數(shù)器,THx作為常數(shù)緩沖器,當TLx計數(shù)滿溢出時,使溢出標志TFx置1,同時將THx中的8位數(shù)據(jù)常數(shù)重新裝入TLx中.使TLx從初值開始重新計數(shù)。方式2常用于定時控制。例如希望每隔500uS產(chǎn)生一個定時控制脈沖,若采用6M的振蕩器,使TL1=06H,TH1=06H,c/f=0就能實現(xiàn),方式2還用作串行口波特率發(fā)生器。
方式3方式3只適用于T0,當T0工作在方式3時,TL0和TH0成為兩個獨立的8位計數(shù)器。使MCS51具有三個定時器/計數(shù)器(增加了一個附加的8位定時器/計數(shù)器)。TL0的操作與方式0和方式1類似。而TH0只能作8恢定時器用(不能用作計數(shù)器方式),并占用了T1的中斷資源TR1和TH1。在這種情況下,T1可以設置為方式0一2,用于任何不需要中斷控制的場合,或用作串行口的波特率發(fā)生器。通常.當T1用作串行口波特率發(fā)生器時,T0才定義為方式3,以增加一個8位計數(shù)器。計數(shù)器在不同模式時結構不同模式0,模式1的結構框圖模式0時:低位5位,高位8位,共13位模式1時:低位8位,高位8位,共16位低位TFi中斷申請高位F0/12+引腳Ti中斷引腳INTiGATETRiC/T=0C/T=1計數(shù)器模式2時結構模式2時:低位作8位計數(shù)器,高位作重裝載寄存器(看紅色框圖)低位TFi中斷申請高位F0/12+引腳Ti中斷引腳INTiGATETRiC/T=0C/T=1定時器T0的模式3結構模式3時:T0高8位也做計數(shù)器,但要借用T1的控制位TR1和標志位TF1以及中斷資源。此時的T1只能工作于模式2或者休息。TL0TF0中斷申請TH0TF1中斷申請TR1F0/12+引腳T0中斷引腳INT0GATETR0C/T=0C/T=1T0,T1的控制寄存器TCONTR0,TR1 定時器啟動控制,置1時接通時鐘(啟動)TF0,TF1 定時器溢出標志,中斷返回指令RETI能將此標志清0。查詢方式時,需要用軟件清零。TF1TR1TF0TR0IE1IT1IE0IT0MSBLSB外部中斷INT0和INT1控制位定時器/計數(shù)器的應用要點使用定時器/計數(shù)器時,應首先對它進行初始化編程,主要對TMOD和TCON進行編程,并計算和裝載 T/C的初值。通常分以下幾個步驟:1.
初始化程序設計,主要是確定T/C的工作方式,即編程TMOD;2.
計算T/C中的計數(shù)初值,并裝載到THx和TLx;3利用TCON啟動T/C,(開中斷)4.
編寫查詢服務(中斷服務)程序。編程TMOD根據(jù):定時/計數(shù);是否測量外部信號寬度,定時器模式確定計算C/T中的計數(shù)初值1計算鐘周期2計算定時常數(shù)(計數(shù)值)3計算預置值4確定TH,TL計算鐘周期鐘周期一般考慮晶振頻率(暫不考慮引腳輸入的時鐘)。晶振6M時,鐘周期=2uS;晶振12M時,鐘周期=1uS;晶振24M時,鐘周期=0.5uS。計算定時常數(shù)(計數(shù)值)定時計數(shù)值(脈沖個數(shù))代表了定時量,主要參考是時鐘周期:定時量(uS)=定時計數(shù)值×時鐘周期(uS)計算預置值51單片機定時器是“加1”計數(shù),定時量必須從“溢出”值倒推。我們稱“溢出值”為“?!?位時,模=256256=FFH+1=溢出+00=0013位時,模=819216位時,模=65536定時器預置值=模-定時常數(shù)(計數(shù)值)定時器的預置值的確定的具體方法如下:在定時方式下,定時器是對機器周期脈沖計數(shù)的,若時鐘頻率采用6MHz,則一個機器周期位,機器周期=12/晶振頻率=12/(6×106)=2μs,在各個工作方式下:方式0:13位定時器的最大時間間隔=213×2μs=16.384ms方式1:16位定時器的最大時間間隔=216×2μs=131.072ms方式2:8位定時器的最大時間間隔=28×2μs=512μs定時模式,模式0的預置值計算假設定時器工作在方式0,要求定時1ms,求計數(shù)初值。設計數(shù)預置值為x,則:(213-x)×2×10-6=1×10-3x=213–500=7692因此THx=0xF0H,TLx=0x0CH.定時模式,模式1的預置值計算模式1時,計數(shù)到達65536時產(chǎn)生溢出,因此以此數(shù)減去定時數(shù)作為定時器初始值。例如:晶振12M,T0模式1,定時10mS則:定時量=10000us,定時數(shù)=10000uS/1uS=10000定時器初始值=65536-10000=55536最后,還要將定時初始值分為高8位和低8位,分別送入THi和TLi中。方法:可以用計算器將其直接轉換成16進制數(shù),也可以將此數(shù)除以256,商為高8位,余數(shù)為低8位。55536=0D8F0HMOVTH0,#0D8HMOVTL0,#0F0H方式2:8位定計數(shù)器的最大計數(shù)值=28=256假設計數(shù)器工作在計數(shù)器方式2,要求計數(shù)100個脈沖的計數(shù)初值的計算如下。設計數(shù)初始值位x,則:28-x=100x=156因此THx=TLx=0x9CH。以下就定時器的工作方式0舉例說明定時器的應用方法定時模式,模式2的預置值計算在計數(shù)方式下,T/C是對外部輸入脈沖計數(shù)的,在各個工作方式下:方式0:13位計數(shù)器的最大計數(shù)值=213=8192方式1:16位計數(shù)器的最大計數(shù)值=216=65536方式2:8位計數(shù)器的最大計數(shù)值=28=256確定TH,TL根據(jù)工作模式確定方式0:TH高8位,TL低5位方式1:TH高8位,TL低8位方式2:TH=TL=8位
例1.假設時鐘頻率采用6MHz,要在P1.0上輸出一個周期為2ms的方波,方波的周期用定時器T0中設置一個時間常數(shù),使其每隔1ms產(chǎn)生一次中斷,CPU響應中斷后,在中斷服務程序中對P1.0取非。T0中斷入口地址為000BH。為此要做如下幾步工作:1.設計初始化程序初始化程序包括:定時器初始化和中斷系統(tǒng)初始化,主要是對IP(中斷優(yōu)先級寄存器)、IE(中斷允許寄存器)、TCON(控制寄存器)、TMOD(工作方式寄存器)的相應位進行正確的設置,并將時間常數(shù)送入定時器中。在本例中,假設程序是從系統(tǒng)復位開始運行的,TMOD、TCON均為00H,因此不必對TMOD操作。2.確定定時器初值
機器周期=12/晶振頻率=12/(6×10-6)=2μs設:需要初值為X,則(213-X)×2×10-6=1×10-3
(213-X)=500,得:X=7692
化為2進制X=。
根據(jù)13位定時器特性,初值應為:TH0=0F0H,TL0=0CH。
3.設計中斷服務程序和主程序
中斷服務程序除了完成要求的產(chǎn)生方波這一工作之外,還要注意將時間常數(shù)重新送入定時器中,為下一次產(chǎn)生中斷做準備。主程序可以完成任何其他工作,一般情況下常常是鍵盤程序和顯示程序。在本例中,由于沒有這方面的要求,用一條轉至自身的短跳轉指令來代替主程序。
按上面設計的程序清單如下:程序清單ORG0000HRESET:AJMPMAIN;轉移到主程序入口地址ORG000BH;中斷處理程序
AJMPIT0PORG0100H;主程序MAIN:MOVSP,#60HACALLPT0M0HERE:AJMPHERE
PT0M0:MOVTL0,#0CH;T0置初值低位
MOVTH0,#0F0H;T0初值高位
SETBTR0;啟動T0SETBET0;允許T0中斷
SETBEA;CPU開放中斷
RET;中斷服務程序IT0P:MOVTL0,#0CH;T0置初值低位
MOVTH0,#0F0H;T0初值高位
CPLP1.0;P1.0取反
RETI例2編制一段程序,使P1.0端口線上輸出周期為2ms的方波脈沖。設單片機晶振頻率Fosc=6MHZ。方法:利用定時器T0作1ms定時,達到定時值后引起中斷,在中斷服務程序中,使P1.0的狀態(tài)取一次反,并再次定時1ms。計算定時初值:機器周期MC=12/fosc=2us。所以定時lms所需的機器周期個數(shù)為500D,亦即0lF4H。設T0為工作方式1(16位方式),則定時初值是(01F4H)求補=FEOCH
ORG0000HRESET:AJMPMAIN ;主程序
ORG000BHAJMPIST0 ;轉入T0中斷服務程序入口地址IST0;初始化程序段MAIN:MOVTMOD,
#01H ;T0為定時器狀態(tài),工作方式1MOVTL0,#0CH ;T0的低位定時初值MOVTH0,#0FEH ;T0的高位定時初值MOVTCON,#10H ;打開T0SETBEA ;EA=1,即允許全局中斷SETBET0 ;1ET0=1,即允許T0中斷AJMP$ ;動態(tài)暫存
IST0:MOVTL0,#0CH ;重置定時器初值MOVTH0,#0FEH ;重置定時器初值CPLP1.0 ;P1.0取反RETI ;中斷返回2模式0舉例6M晶振,用T1的方式0產(chǎn)生250uS定時,并在P1.0輸出周期為500uS的方波。定時常數(shù)計算:鐘周期=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公機器和設備的安裝保養(yǎng)和修理行業(yè)營銷策略方案
- 粉屑清掃器市場發(fā)展前景分析及供需格局研究預測報告
- 減壓玩具產(chǎn)品供應鏈分析
- 人工智能醫(yī)療行業(yè)營銷策略方案
- 保險領域的理賠行業(yè)營銷策略方案
- 磁帶錄像機商業(yè)機會挖掘與戰(zhàn)略布局策略研究報告
- 為建筑物涂覆防護漆行業(yè)相關項目經(jīng)營管理報告
- 制造罐頭食品行業(yè)營銷策略方案
- 旅游業(yè)全域透視-領略市場變化引領未來發(fā)展
- 數(shù)值孔徑計產(chǎn)品供應鏈分析
- 2024 團校考試入團考試題庫(含答案)
- 大一新生個人生涯發(fā)展報告
- 物流公司消防安全知識講座
- 2024年度2024行政復議法培訓
- 學堂課程在線美好生活“油”此而來:油科學概論(暨大)課后作業(yè)答案
- 《儀器分析技術》課程標準
- 研學老師培訓方案
- 新人教版五年級小學數(shù)學全冊奧數(shù)(含答案)
- 志愿服務證明(多模板)
- 淀粉酒精制造中的工藝優(yōu)化與控制
- 常州高級中學2022-2023學年高一上學期期中英語試卷(原卷版)
評論
0/150
提交評論