《單片機(jī)原理及系統(tǒng)設(shè)計(jì)實(shí)用教程》課件51單片機(jī)接口定時(shí)器8_第1頁(yè)
《單片機(jī)原理及系統(tǒng)設(shè)計(jì)實(shí)用教程》課件51單片機(jī)接口定時(shí)器8_第2頁(yè)
《單片機(jī)原理及系統(tǒng)設(shè)計(jì)實(shí)用教程》課件51單片機(jī)接口定時(shí)器8_第3頁(yè)
《單片機(jī)原理及系統(tǒng)設(shè)計(jì)實(shí)用教程》課件51單片機(jī)接口定時(shí)器8_第4頁(yè)
《單片機(jī)原理及系統(tǒng)設(shè)計(jì)實(shí)用教程》課件51單片機(jī)接口定時(shí)器8_第5頁(yè)
已閱讀5頁(yè),還剩36頁(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)介

51單片機(jī)接口定時(shí)器1計(jì)數(shù)器與定時(shí)器基礎(chǔ)1計(jì)數(shù)概念的引入2計(jì)數(shù)器的容量

3定時(shí)

4溢出5任意定時(shí)及計(jì)數(shù)的方法預(yù)置數(shù)

例:16位計(jì)數(shù)器最大的計(jì)數(shù)值到65536要計(jì)100,那我就先放進(jìn)65436,再來(lái)100個(gè)脈沖,不就到了65536了嗎

251單片機(jī)的定時(shí)器51單片機(jī)有兩個(gè)定時(shí)器:T0,T132/52單片機(jī)還有一個(gè)定時(shí)器:T2T0;T1有雙重含義:引腳P3.4,P3.5??梢砸胪獠棵}沖16位定時(shí)器/計(jì)數(shù)器電路模塊,定時(shí)器數(shù)據(jù)寄存器(16位)。相關(guān)寄存器:TH0,TL0,TH1,TL1數(shù)據(jù)寄存器/定時(shí)計(jì)數(shù)器TMOD定時(shí)器模式寄存器TCON控制寄存器定時(shí)器工作原理定時(shí)器就是計(jì)數(shù)器定時(shí)器就是由若干個(gè)D觸發(fā)器構(gòu)成的計(jì)數(shù)器。計(jì)算機(jī)中多以16個(gè)D觸發(fā)器構(gòu)成,稱為16位定時(shí)器/計(jì)數(shù)器。計(jì)數(shù)器能夠記錄輸入脈沖的個(gè)數(shù)。計(jì)數(shù)器可以是加1計(jì)數(shù)方式,也可以是減1計(jì)數(shù)方式。標(biāo)準(zhǔn)脈沖(固定頻率)輸入時(shí),稱為“定時(shí)器Timer”,通常使用本機(jī)晶振分頻得到。從引腳進(jìn)入的脈沖,通常就把定時(shí)器改稱“計(jì)數(shù)器Counter”可編程計(jì)數(shù)器/定時(shí)器可以選擇多種CLK來(lái)源之一;可以設(shè)定加1或減1方式;可以寫入起始計(jì)數(shù)值;它的溢出信號(hào)可以觸發(fā)中斷或者提供其他芯片/接口使用。好的定時(shí)/計(jì)數(shù)器有“重裝載寄存器”用于存放計(jì)數(shù)初始值,當(dāng)計(jì)數(shù)器溢出時(shí),能自動(dòng)將此數(shù)裝入計(jì)數(shù)器并開(kāi)始再次計(jì)數(shù)??梢蚤_(kāi)關(guān)計(jì)數(shù)器的工作。通用可編程定時(shí)/計(jì)數(shù)器框圖晶振預(yù)分頻溢出標(biāo)志數(shù)據(jù)線重裝/捕獲/比較計(jì)數(shù)器啟動(dòng)開(kāi)關(guān)脈沖源選擇器時(shí)鐘輸入腳輸出選擇中斷申請(qǐng)引腳PWM框圖解釋:重裝/比較/捕獲重裝:當(dāng)定時(shí)/計(jì)數(shù)器溢出時(shí),能自動(dòng)將“重裝載寄存器”中的數(shù)據(jù)裝入定時(shí)/計(jì)數(shù)器,繼續(xù)工作而不需軟件干預(yù)。比較:在定時(shí)/計(jì)數(shù)器數(shù)值變化過(guò)程中,當(dāng)其數(shù)值與“比較寄存器”數(shù)值相等時(shí),通過(guò)引腳輸出電平變化,產(chǎn)生PWM波形。捕獲:通過(guò)一個(gè)引腳輸入的捕獲脈沖(下降沿)觸發(fā),將計(jì)數(shù)器值讀入捕獲寄存器并申請(qǐng)中斷。其作用類似“測(cè)量脈沖寬度”Intel8031的定時(shí)器有2個(gè)16位定時(shí)器(32系列有3個(gè))。時(shí)鐘來(lái)源有兩種選擇:f/12或引腳輸入??砷_(kāi)關(guān)定時(shí)器的工作。只能作加1計(jì)數(shù),計(jì)數(shù)初始值是溢出數(shù)的補(bǔ)碼??稍O(shè)置8位、13位、16位計(jì)數(shù)/定時(shí);可以測(cè)量脈沖寬度。沒(méi)有重裝載寄存器(僅在方式2工作時(shí),低8位計(jì)數(shù)溢出時(shí)使用高8位值重裝,32系列的T2有16位重裝載寄存器)。計(jì)數(shù)上溢出時(shí)可以產(chǎn)生中斷申請(qǐng)。有獨(dú)自的中斷入口。51定時(shí)器框圖i=0,1指:T0,T1和INT0,INT1T0,T1的模式寄存器TMODGATE 當(dāng)使用INTi測(cè)量脈寬時(shí)置1,否則置0C/T 置1時(shí)選擇Counter,時(shí)鐘由引腳輸入。 置0時(shí)選擇Timer,時(shí)鐘選用fosc/12M1M0 兩位二進(jìn)制數(shù)表示選擇定時(shí)器模式為 模式0~3高4位管理定時(shí)器T1,低4位管理定時(shí)器T0GATEC/TM1M0GATEC/TM1MOMSBLSB定時(shí)器T0模式定時(shí)器T1模式定時(shí)器T0,T1的模式M1M0模式解釋00013位,TLi的低5位和THi的8位組合01116位定時(shí)/計(jì)數(shù)器,最常用1028位自動(dòng)重裝載定時(shí)/計(jì)數(shù),THi是重裝載寄存器。T1常用作“波特率”發(fā)生器113T0分成兩個(gè)8位定時(shí)/計(jì)數(shù)器,借用T1的控制位(參看TCON)控制TH0,T1只能工作于模式2或者停止工作。

方式2當(dāng)MIM0為10時(shí),選定方式2,方式2為TLx自動(dòng)恢復(fù)初值(初始時(shí)間常數(shù)自動(dòng)重新裝入)的8位定時(shí)器/計(jì)數(shù)器方式。把TLx作為8位計(jì)數(shù)器,THx作為常數(shù)緩沖器,當(dāng)TLx計(jì)數(shù)滿溢出時(shí),使溢出標(biāo)志TFx置1,同時(shí)將THx中的8位數(shù)據(jù)常數(shù)重新裝入TLx中.使TLx從初值開(kāi)始重新計(jì)數(shù)。方式2常用于定時(shí)控制。例如希望每隔500uS產(chǎn)生一個(gè)定時(shí)控制脈沖,若采用6M的振蕩器,使TL1=06H,TH1=06H,c/f=0就能實(shí)現(xiàn),方式2還用作串行口波特率發(fā)生器。

方式3方式3只適用于T0,當(dāng)T0工作在方式3時(shí),TL0和TH0成為兩個(gè)獨(dú)立的8位計(jì)數(shù)器。使MCS51具有三個(gè)定時(shí)器/計(jì)數(shù)器(增加了一個(gè)附加的8位定時(shí)器/計(jì)數(shù)器)。TL0的操作與方式0和方式1類似。而TH0只能作8恢定時(shí)器用(不能用作計(jì)數(shù)器方式),并占用了T1的中斷資源TR1和TH1。在這種情況下,T1可以設(shè)置為方式0一2,用于任何不需要中斷控制的場(chǎng)合,或用作串行口的波特率發(fā)生器。通常.當(dāng)T1用作串行口波特率發(fā)生器時(shí),T0才定義為方式3,以增加一個(gè)8位計(jì)數(shù)器。計(jì)數(shù)器在不同模式時(shí)結(jié)構(gòu)不同模式0,模式1的結(jié)構(gòu)框圖模式0時(shí):低位5位,高位8位,共13位模式1時(shí):低位8位,高位8位,共16位低位TFi中斷申請(qǐng)高位F0/12+引腳Ti中斷引腳INTiGATETRiC/T=0C/T=1計(jì)數(shù)器模式2時(shí)結(jié)構(gòu)模式2時(shí):低位作8位計(jì)數(shù)器,高位作重裝載寄存器(看紅色框圖)低位TFi中斷申請(qǐng)高位F0/12+引腳Ti中斷引腳INTiGATETRiC/T=0C/T=1定時(shí)器T0的模式3結(jié)構(gòu)模式3時(shí):T0高8位也做計(jì)數(shù)器,但要借用T1的控制位TR1和標(biāo)志位TF1以及中斷資源。此時(shí)的T1只能工作于模式2或者休息。TL0TF0中斷申請(qǐng)TH0TF1中斷申請(qǐng)TR1F0/12+引腳T0中斷引腳INT0GATETR0C/T=0C/T=1T0,T1的控制寄存器TCONTR0,TR1 定時(shí)器啟動(dòng)控制,置1時(shí)接通時(shí)鐘(啟動(dòng))TF0,TF1 定時(shí)器溢出標(biāo)志,中斷返回指令RETI能將此標(biāo)志清0。查詢方式時(shí),需要用軟件清零。TF1TR1TF0TR0IE1IT1IE0IT0MSBLSB外部中斷INT0和INT1控制位定時(shí)器/計(jì)數(shù)器的應(yīng)用要點(diǎn)使用定時(shí)器/計(jì)數(shù)器時(shí),應(yīng)首先對(duì)它進(jìn)行初始化編程,主要對(duì)TMOD和TCON進(jìn)行編程,并計(jì)算和裝載 T/C的初值。通常分以下幾個(gè)步驟:1.

初始化程序設(shè)計(jì),主要是確定T/C的工作方式,即編程TMOD;2.

計(jì)算T/C中的計(jì)數(shù)初值,并裝載到THx和TLx;3利用TCON啟動(dòng)T/C,(開(kāi)中斷)4.

編寫查詢服務(wù)(中斷服務(wù))程序。編程TMOD根據(jù):定時(shí)/計(jì)數(shù);是否測(cè)量外部信號(hào)寬度,定時(shí)器模式確定計(jì)算C/T中的計(jì)數(shù)初值1計(jì)算鐘周期2計(jì)算定時(shí)常數(shù)(計(jì)數(shù)值)3計(jì)算預(yù)置值4確定TH,TL計(jì)算鐘周期鐘周期一般考慮晶振頻率(暫不考慮引腳輸入的時(shí)鐘)。晶振6M時(shí),鐘周期=2uS;晶振12M時(shí),鐘周期=1uS;晶振24M時(shí),鐘周期=0.5uS。計(jì)算定時(shí)常數(shù)(計(jì)數(shù)值)定時(shí)計(jì)數(shù)值(脈沖個(gè)數(shù))代表了定時(shí)量,主要參考是時(shí)鐘周期:定時(shí)量(uS)=定時(shí)計(jì)數(shù)值×?xí)r鐘周期(uS)計(jì)算預(yù)置值51單片機(jī)定時(shí)器是“加1”計(jì)數(shù),定時(shí)量必須從“溢出”值倒推。我們稱“溢出值”為“模”8位時(shí),模=256256=FFH+1=溢出+00=0013位時(shí),模=819216位時(shí),模=65536定時(shí)器預(yù)置值=模-定時(shí)常數(shù)(計(jì)數(shù)值)定時(shí)器的預(yù)置值的確定的具體方法如下:在定時(shí)方式下,定時(shí)器是對(duì)機(jī)器周期脈沖計(jì)數(shù)的,若時(shí)鐘頻率采用6MHz,則一個(gè)機(jī)器周期位,機(jī)器周期=12/晶振頻率=12/(6×106)=2μs,在各個(gè)工作方式下:方式0:13位定時(shí)器的最大時(shí)間間隔=213×2μs=16.384ms方式1:16位定時(shí)器的最大時(shí)間間隔=216×2μs=131.072ms方式2:8位定時(shí)器的最大時(shí)間間隔=28×2μs=512μs定時(shí)模式,模式0的預(yù)置值計(jì)算假設(shè)定時(shí)器工作在方式0,要求定時(shí)1ms,求計(jì)數(shù)初值。設(shè)計(jì)數(shù)預(yù)置值為x,則:(213-x)×2×10-6=1×10-3x=213–500=7692因此THx=0xF0H,TLx=0x0CH.定時(shí)模式,模式1的預(yù)置值計(jì)算模式1時(shí),計(jì)數(shù)到達(dá)65536時(shí)產(chǎn)生溢出,因此以此數(shù)減去定時(shí)數(shù)作為定時(shí)器初始值。例如:晶振12M,T0模式1,定時(shí)10mS則:定時(shí)量=10000us,定時(shí)數(shù)=10000uS/1uS=10000定時(shí)器初始值=65536-10000=55536最后,還要將定時(shí)初始值分為高8位和低8位,分別送入THi和TLi中。方法:可以用計(jì)算器將其直接轉(zhuǎn)換成16進(jìn)制數(shù),也可以將此數(shù)除以256,商為高8位,余數(shù)為低8位。55536=0D8F0HMOVTH0,#0D8HMOVTL0,#0F0H方式2:8位定計(jì)數(shù)器的最大計(jì)數(shù)值=28=256假設(shè)計(jì)數(shù)器工作在計(jì)數(shù)器方式2,要求計(jì)數(shù)100個(gè)脈沖的計(jì)數(shù)初值的計(jì)算如下。設(shè)計(jì)數(shù)初始值位x,則:28-x=100x=156因此THx=TLx=0x9CH。以下就定時(shí)器的工作方式0舉例說(shuō)明定時(shí)器的應(yīng)用方法定時(shí)模式,模式2的預(yù)置值計(jì)算在計(jì)數(shù)方式下,T/C是對(duì)外部輸入脈沖計(jì)數(shù)的,在各個(gè)工作方式下:方式0:13位計(jì)數(shù)器的最大計(jì)數(shù)值=213=8192方式1:16位計(jì)數(shù)器的最大計(jì)數(shù)值=216=65536方式2:8位計(jì)數(shù)器的最大計(jì)數(shù)值=28=256確定TH,TL根據(jù)工作模式確定方式0:TH高8位,TL低5位方式1:TH高8位,TL低8位方式2:TH=TL=8位

例1.假設(shè)時(shí)鐘頻率采用6MHz,要在P1.0上輸出一個(gè)周期為2ms的方波,方波的周期用定時(shí)器T0中設(shè)置一個(gè)時(shí)間常數(shù),使其每隔1ms產(chǎn)生一次中斷,CPU響應(yīng)中斷后,在中斷服務(wù)程序中對(duì)P1.0取非。T0中斷入口地址為000BH。為此要做如下幾步工作:1.設(shè)計(jì)初始化程序初始化程序包括:定時(shí)器初始化和中斷系統(tǒng)初始化,主要是對(duì)IP(中斷優(yōu)先級(jí)寄存器)、IE(中斷允許寄存器)、TCON(控制寄存器)、TMOD(工作方式寄存器)的相應(yīng)位進(jìn)行正確的設(shè)置,并將時(shí)間常數(shù)送入定時(shí)器中。在本例中,假設(shè)程序是從系統(tǒng)復(fù)位開(kāi)始運(yùn)行的,TMOD、TCON均為00H,因此不必對(duì)TMOD操作。2.確定定時(shí)器初值

機(jī)器周期=12/晶振頻率=12/(6×10-6)=2μs設(shè):需要初值為X,則(213-X)×2×10-6=1×10-3

(213-X)=500,得:X=7692

化為2進(jìn)制X=。

根據(jù)13位定時(shí)器特性,初值應(yīng)為:TH0=0F0H,TL0=0CH。

3.設(shè)計(jì)中斷服務(wù)程序和主程序

中斷服務(wù)程序除了完成要求的產(chǎn)生方波這一工作之外,還要注意將時(shí)間常數(shù)重新送入定時(shí)器中,為下一次產(chǎn)生中斷做準(zhǔn)備。主程序可以完成任何其他工作,一般情況下常常是鍵盤程序和顯示程序。在本例中,由于沒(méi)有這方面的要求,用一條轉(zhuǎn)至自身的短跳轉(zhuǎn)指令來(lái)代替主程序。

按上面設(shè)計(jì)的程序清單如下:程序清單ORG0000HRESET:AJMPMAIN;轉(zhuǎn)移到主程序入口地址ORG000BH;中斷處理程序

AJMPIT0PORG0100H;主程序MAIN:MOVSP,#60HACALLPT0M0HERE:AJMPHERE

PT0M0:MOVTL0,#0CH;T0置初值低位

MOVTH0,#0F0H;T0初值高位

SETBTR0;啟動(dòng)T0SETBET0;允許T0中斷

SETBEA;CPU開(kāi)放中斷

RET;中斷服務(wù)程序IT0P:MOVTL0,#0CH;T0置初值低位

MOVTH0,#0F0H;T0初值高位

CPLP1.0;P1.0取反

RETI例2編制一段程序,使P1.0端口線上輸出周期為2ms的方波脈沖。設(shè)單片機(jī)晶振頻率Fosc=6MHZ。方法:利用定時(shí)器T0作1ms定時(shí),達(dá)到定時(shí)值后引起中斷,在中斷服務(wù)程序中,使P1.0的狀態(tài)取一次反,并再次定時(shí)1ms。計(jì)算定時(shí)初值:機(jī)器周期MC=12/fosc=2us。所以定時(shí)lms所需的機(jī)器周期個(gè)數(shù)為500D,亦即0lF4H。設(shè)T0為工作方式1(16位方式),則定時(shí)初值是(01F4H)求補(bǔ)=FEOCH

ORG0000HRESET:AJMPMAIN ;主程序

ORG000BHAJMPIST0 ;轉(zhuǎn)入T0中斷服務(wù)程序入口地址IST0;初始化程序段MAIN:MOVTMOD,

#01H ;T0為定時(shí)器狀態(tài),工作方式1MOVTL0,#0CH ;T0的低位定時(shí)初值MOVTH0,#0FEH ;T0的高位定時(shí)初值MOVTCON,#10H ;打開(kāi)T0SETBEA ;EA=1,即允許全局中斷SETBET0 ;1ET0=1,即允許T0中斷AJMP$ ;動(dòng)態(tài)暫存

IST0:MOVTL0,#0CH ;重置定時(shí)器初值MOVTH0,#0FEH ;重置定時(shí)器初值CPLP1.0 ;P1.0取反RETI ;中斷返回2模式0舉例6M晶振,用T1的方式0產(chǎn)生250uS定時(shí),并在P1.0輸出周期為500uS的方波。定時(shí)常數(shù)計(jì)算:鐘周期=

溫馨提示

  • 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)論