單片機(jī)原理及應(yīng)用課件陳林林第5章定時(shí)計(jì)數(shù)器原理及其應(yīng)用2rev1_第1頁
單片機(jī)原理及應(yīng)用課件陳林林第5章定時(shí)計(jì)數(shù)器原理及其應(yīng)用2rev1_第2頁
單片機(jī)原理及應(yīng)用課件陳林林第5章定時(shí)計(jì)數(shù)器原理及其應(yīng)用2rev1_第3頁
單片機(jī)原理及應(yīng)用課件陳林林第5章定時(shí)計(jì)數(shù)器原理及其應(yīng)用2rev1_第4頁
單片機(jī)原理及應(yīng)用課件陳林林第5章定時(shí)計(jì)數(shù)器原理及其應(yīng)用2rev1_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片微機(jī)原理及應(yīng)用教學(xué)課件,定時(shí)/ 原理及其應(yīng)用,Email:,5.1 定時(shí)/計(jì)數(shù)器基本原理 單片機(jī)內(nèi)部集成了兩個(gè)16位定時(shí)/計(jì)數(shù)器,分別稱為定時(shí)/計(jì)數(shù)器0(T0)和定時(shí)/計(jì)數(shù)器1(T1) 兩個(gè)定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)一樣,通過TMOD的設(shè)置,都可有4種工作方式,除方式3外,其他3種工作方式的工作原理一樣。,第五章 定時(shí)/計(jì)數(shù)器,單片微機(jī)原理及應(yīng)用教學(xué)課件,2個(gè)16位定時(shí)器/計(jì)數(shù)器 (52系列有3個(gè)16位Timer) 定時(shí)器:對(duì)片內(nèi)機(jī)器時(shí)鐘(周期方波)進(jìn)行計(jì)數(shù) 計(jì)數(shù)器:對(duì)Tx引腳輸入的負(fù)脈沖進(jìn)行計(jì)數(shù),與Timer工作有關(guān)的特殊功能寄存器: TCON 和 TMOD,第五章 定時(shí)/計(jì)數(shù)器,定時(shí)/計(jì)數(shù)器的

2、核心部件是一個(gè)16位的加1計(jì)數(shù)器 兩個(gè)定時(shí)/計(jì)數(shù)器的加1計(jì)數(shù)器共由2組、4個(gè)特殊功能計(jì)數(shù)器構(gòu)成,它們分別是: TH0:T0加1計(jì)數(shù)器的高8位 TL0:T0加1計(jì)數(shù)器的低8位 TH1:T1加1計(jì)數(shù)器的高8位 TL1:T1加1計(jì)數(shù)器的低8位,對(duì)定時(shí)/計(jì)數(shù)器啟動(dòng)后,加1計(jì)數(shù)器可自動(dòng)對(duì)規(guī)定脈沖源的脈沖數(shù)進(jìn)行計(jì)數(shù),TLX計(jì)數(shù)滿后自動(dòng)向相應(yīng)的THX進(jìn)位,當(dāng)THX也計(jì)數(shù)滿后,將置位TCON特殊功能寄存器中的TFX位,供程序查詢或向CPU發(fā)出中斷請(qǐng)求。 定時(shí)/計(jì)數(shù)器THX和TLX均可按字節(jié)讀寫,對(duì)其寫入特定的數(shù)值,可控制從開始計(jì)數(shù)到計(jì)數(shù)溢出置位TFX所需計(jì)數(shù)的脈沖個(gè)數(shù);而對(duì)其讀出,則可了解從啟動(dòng)定時(shí)器到現(xiàn)在所

3、計(jì)的脈沖個(gè)數(shù)。,“規(guī)定脈沖源”,定時(shí)/計(jì)數(shù)器能夠計(jì)數(shù)的“規(guī)定脈沖源”有兩個(gè): 一個(gè)是內(nèi)部振蕩源12分頻后形成的脈沖,即對(duì)機(jī)器周期進(jìn)行計(jì)數(shù); 另一個(gè)是對(duì)從T0(或T1)引腳引入的外部脈沖計(jì)數(shù),這種情況下,計(jì)數(shù)器在每個(gè)機(jī)器周期的S5P2節(jié)拍期間采樣外部輸入信號(hào),若一個(gè)周期采樣值為“1”,下一個(gè)周期的采樣值為“0”,則計(jì)數(shù)器加1,所以,對(duì)外部信號(hào)的最高計(jì)數(shù)率是振蕩頻率的1/24,且要求外部輸入信號(hào)的高、低電平時(shí)間均需保持一個(gè)機(jī)器周期以上。,周期信號(hào)關(guān)系圖,由于單片機(jī)振蕩頻率是已知的,因此對(duì)內(nèi)部振蕩源12分頻后形成的脈沖進(jìn)行計(jì)數(shù)時(shí),即可完成定時(shí)。 實(shí)現(xiàn)定時(shí)的具體作法是,向THX、TLX寫入特定的基數(shù),

4、可預(yù)先確定從定時(shí)/計(jì)數(shù)器開始運(yùn)行到THX、TLX溢出所需的時(shí)間,一旦TFX置位,則經(jīng)歷了預(yù)期的時(shí)間,從而完成定時(shí)。,加1計(jì)數(shù)器的工作原理,單片微機(jī)原理及應(yīng)用教學(xué)課件,Timer的2個(gè)特殊功能寄存器(TCON,TMOD),TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,定時(shí)器控制寄存器TCON (88H),TFx: Timer0/1計(jì)數(shù)溢出標(biāo)志位。 =1 計(jì)數(shù)溢出; =0 計(jì)數(shù)未滿 TFx標(biāo)志位可用于申請(qǐng)中斷或供CPU查詢。 在進(jìn)入中斷服務(wù)程序時(shí)會(huì)自動(dòng)清零;但在 查詢方式時(shí)必須軟件清零。,TRx: Timer0/1運(yùn)行控制位。 =1 啟動(dòng)計(jì)數(shù); =0 停止計(jì)數(shù),單片微機(jī)原理及應(yīng)用

5、教學(xué)課件,TR0/TR1:Timer0/1運(yùn)行控制位: TR0/TR1 =0 時(shí),Timer0/1停止計(jì)數(shù) TR0/TR1 =1 時(shí),Timer0/1啟動(dòng)計(jì)數(shù),定時(shí)器T0/T1 中斷申請(qǐng)過程, 在已經(jīng)開放T0/T1中斷允許且已被啟動(dòng)的前提下: T0/T1加滿溢出時(shí) TF0/TF1標(biāo)志位自動(dòng)置“1” 檢測到TCON中TF0/TF1變“1”后,將產(chǎn)生指令: LCALL 000BH/LCALL 001BH 執(zhí)行中斷服務(wù)程序, TF0/TF1標(biāo)志位會(huì)自動(dòng)清“0”,以備下次中斷申請(qǐng)。,定時(shí)/計(jì)數(shù)器可按片內(nèi)機(jī)器周期定時(shí),也可對(duì)由T0/T1引腳輸入一個(gè)負(fù)脈沖進(jìn)行加法計(jì)數(shù),TF1 TR1 TF0 TR0 IE

6、1 IT1 IE0 IT0,TCON (88H),單片微機(jī)原理及應(yīng)用教學(xué)課件,GATE C / T M1 M0 GATE C / T M1 M0,定時(shí)器方式寄存器TMOD (89H),T1,T0,M1,M0:工作方式定義位 ( 定義4 種方式 ):,C/T :計(jì)數(shù)器/定時(shí)器選擇位 = 1 外部事件計(jì)數(shù)器。對(duì)Tx引腳的負(fù)脈沖(負(fù)跳變)計(jì)數(shù); = 0 片內(nèi)時(shí)鐘定時(shí)器。對(duì)機(jī)器周期脈沖計(jì)數(shù)定時(shí)。,0 0:13位 Timer用它無益,不要記它! 0 1:16位 Timer經(jīng)常用到 1 0:可自動(dòng)重裝的 8位 Timer經(jīng)常用到 1 1:T0 分為2個(gè)8位 Timer;T1 此時(shí)不工作 因?yàn)闆]有帶來甚麼好

7、處,幾乎無用,單片微機(jī)原理及應(yīng)用教學(xué)課件,GATE C / T M1 M0 GATE C / T M1 M0,T1,T0,GATE門控位: Timer可由軟件與硬件兩者控制 GATE = 0 普通用法 Timer的啟/停由軟件對(duì)TRx位寫“1”/“0”控制,定時(shí)器方式寄存器TMOD(續(xù)),(89H), GATE = 1 門控用法 Timer的啟/停由軟件對(duì)TRx位寫“1”/“0” 和在INTx引腳上出現(xiàn)的信號(hào)的高/低共同控制。 軟件啟動(dòng)TR0或TR1后,外部中斷引腳 /INT0 或 /INT1也必須同時(shí)為高電平,才能啟動(dòng)定 時(shí)/計(jì)數(shù)器T0或T1工作,定時(shí)器結(jié)構(gòu)與工作方式,兩個(gè)定時(shí)/計(jì)數(shù)器工作方

8、式0 方式2的原理完全相同,只是有關(guān)的加1計(jì)數(shù)器(THX、TLX)及TMOD、TCON中對(duì)應(yīng)的控制、標(biāo)識(shí)位不同;對(duì)應(yīng)的外部輸入引腳不同。,工作方式0:13位的定時(shí)/計(jì)數(shù)器,定時(shí)器結(jié)構(gòu)與工作方式,13位計(jì)數(shù)模式:由TL1的低5位(高3位未用)和TH1的8位組成加1計(jì)數(shù)器。 TL1的低5位溢出時(shí)向TH1進(jìn)位,TH1溢出時(shí),置位TCON中相應(yīng)的TF1標(biāo)志,向CPU發(fā)出中斷請(qǐng)求或供程序查詢。 從啟動(dòng)到溢出的定時(shí)時(shí)間為: T213(TH1TL1)初值機(jī)器周期 最長定時(shí)時(shí)間為:T213機(jī)器周期 最大脈沖計(jì)數(shù)個(gè)數(shù)為:N2138192,工作方式0:13位的定時(shí)/計(jì)數(shù)器,定時(shí)器結(jié)構(gòu)與工作方式,工作方式1:16位

9、的定時(shí)/計(jì)數(shù)器,加1計(jì)數(shù)器長度為16位,由TL1作為低8位、TH1作為高8位, 定時(shí)時(shí)間為: T216(TH1TL1)初值機(jī)器周期 最長定時(shí)時(shí)間為: T216機(jī)器周期 最大脈沖計(jì)數(shù)個(gè)數(shù)為: N21665536,單片微機(jī)原理及應(yīng)用教學(xué)課件,定時(shí)器結(jié)構(gòu)與工作方式,工作方式1:16位的定時(shí)/計(jì)數(shù)器,單片微機(jī)原理及應(yīng)用教學(xué)課件, THx/TLx賦初值:THx賦高8位,TLx賦低8位,工作方式1 的編程要點(diǎn):, TMOD選方式: 寫“M1,M0”=01 b 選方式1, 若不用門控位,直接用軟件寫TRx控制啟/停 若使用門控位,先置位TRx,然后由INTx端 的高/低電平來控制其啟/停, 若要允許中斷,還

10、須先置位ETx、EA等中斷 允許控制位,并編寫中斷服務(wù)程序 若不用中斷,可查詢“計(jì)數(shù)溢出標(biāo)志TFx” 的方式工作,但溢出標(biāo)志TFx須軟件清0,單片微機(jī)原理及應(yīng)用教學(xué)課件,定時(shí)器(方式1)應(yīng)用程序舉例:,分析:已知fosc = 6MHz 則: (振蕩周期)1Tc=1/6MHz (機(jī)器周期)1Tm=12Tc=12/6MHz=2S 粗略地說:Tmin 2S 16位定時(shí)器最大數(shù)值為:216=65536=0FFFFH+1 故選擇方式 1 工作可以得到: Tmax = 655362 = 131072S131.072mS,例1:若晶振頻率為6MHz,計(jì)算單片機(jī)的最小與最大定時(shí)時(shí)間:,單片微機(jī)原理及應(yīng)用教學(xué)課

11、件,分析:已知fosc = 6MHz 則: (機(jī)器周期)1Tm=12Tc=12/6MHz=2S 100mS2 S = 50000 16位定時(shí)器最大數(shù)值為: 216 = 65536 (=0FFFFH+1) 故選擇方式1工作可以滿足要求。 計(jì)算初值:6553650000=15536=3CB0H,例2:要求對(duì)T0產(chǎn)生100mS定時(shí)進(jìn)行初始化。 (晶振=6MHz),定時(shí)器(方式1)應(yīng)用程序舉例:,單片微機(jī)原理及應(yīng)用教學(xué)課件,GATE C / T M1 M0 GATE C / T M1 M0,定時(shí)器方式 寄存器TMOD,由分析得知:T0選擇方式1,初值=3CB0H,X X X X 0 0 0 1,初始化

12、:MOV TMOD,#01H ;選 T0 方式 1 MOV TH0, #3CH ;賦初值高8位 MOV TL0, #0B0H ;賦初值低8位 SETB TR0 ;啟動(dòng) T0定時(shí) 若需要定時(shí)器0產(chǎn)生中斷還應(yīng)當(dāng)寫如下語句: SETB ET0 ;開T0中斷允許 SETB EA ;開總中斷允許 以及相應(yīng)的中斷服務(wù)程序。,該方式下,加1計(jì)數(shù)器溢出后可自動(dòng)重新加載初值,不必軟件干預(yù) 軟件簡單,定時(shí)更為準(zhǔn)確,特別適合用于需要連續(xù)高精度定時(shí)的場合(如串口波特率發(fā)生器)。 定時(shí)時(shí)間為: T28TL1初值機(jī)器周期 最長定時(shí)時(shí)間為: T28機(jī)器周期,工作方式2:8 位自動(dòng)重裝的定時(shí)/計(jì)數(shù)器,單片微機(jī)原理及應(yīng)用教學(xué)課

13、件,工作方式2:8 位自動(dòng)重裝的定時(shí)/計(jì)數(shù)器,振蕩器,12,TLx (8位),TFx,申請(qǐng)中斷,Tx端,TRx位,GATE位,INTx端,1, AJMP MAIN ORG 001BH AJMP TINT ;見下一頁 MAIN: MOV TMOD,#10H ;選T1方式1 MOV TH1, #3CH ;賦初值3CB0H=15536(只能定100mS) MOV TL1,#0B0H MOV 30H,#10 ;軟件計(jì)數(shù)單元30H 初值=10 CLR TF0 ;芯片復(fù)位時(shí)已經(jīng)是“0”,此句可有可無 SETB ET1 ;開T1中斷 SETB EA ;開總中斷 SETB TR1 ;啟動(dòng)T1 HERE: JB

14、C F0,TIMEUP ;原地等待“1秒到”的標(biāo)志 F0 AJMP HERE TIMEUP:(do something) ;定時(shí)1秒到了以后要做的事情 AJMP HERE,中斷服務(wù)在主程序中,單片微機(jī)原理及應(yīng)用教學(xué)課件,長定時(shí)舉例(續(xù)):,ORG 0000H AJMP MAIN ORG 001BH AJMP TINT MAIN: TINT:DJNZ 30H,RTN ;若中斷不到10次就返回 SETB F0 ;已經(jīng)中斷夠10次了“置1”標(biāo)志位 MOV 30H,#10 ;為下一個(gè)1秒定時(shí)做準(zhǔn)備 RTN: MOV TH1,#3CH ;再賦定時(shí)100mS的初值3CB0H MOV TL1,#0B0H R

15、ETI ;中斷返回 END,單片微機(jī)原理及應(yīng)用教學(xué)課件,將此例的中斷服務(wù)改寫在中斷服務(wù)程序中:,ORG 0000H AJMP MAIN ORG 001BH AJMP TINT ;見下一頁 MAIN: MOV TMOD,#10H ;選T1方式1 MOV TH1,#3CH ;賦初值3CB0H=15536(只能定100mS) MOV TL1,#0B0H MOV 30H,#10 ;軟件計(jì)數(shù)單元30H 初值=10 CLR TF0 ;芯片復(fù)位時(shí)已經(jīng)是“0”,此句可有可無 SETB ET1 ;開T1中斷 SETB EA ;開總中斷 SETB TR1 ;啟動(dòng)T1 HERE: AJMP HERE ;原地等待中斷

16、,單片微機(jī)原理及應(yīng)用教學(xué)課件,長定時(shí)舉例(續(xù)):,ORG 0000H AJMP MAIN ORG 001BH AJMP TINT MAIN: TINT:DJNZ 30H,RTN ;若中斷不到10次就返回 MOV 30H,#10 ;為下一個(gè)1秒定時(shí)做準(zhǔn)備 (do something);定時(shí)1秒到了以后要做的事情) RTN: MOV TH1,#3CH ;再賦初值 MOV TL1,#0B0H RETI ;中斷返回 END,中斷服務(wù),例6 使用定時(shí)器實(shí)現(xiàn)長時(shí)間的延時(shí),思路: 把定時(shí)器設(shè)置為50ms,另外設(shè)置兩個(gè)軟件計(jì)數(shù)器20、60 ,總時(shí)間為 50ms2060=60000ms=1分鐘 T1為方式1則M

17、1M0=01H,使用定時(shí)器G/T=0 ,GATE=0 ,TMOD=10H 時(shí)鐘頻率為12MHz。方式1為16位計(jì)數(shù)器,最大65536,減去50000等于15536,則計(jì)數(shù)器初值為3CB0H,ORG 0000H ;程序開始 LJMP MAIN ORG 0030H MAIN: MOV 30H,#20 ;30h,31h分別置常數(shù)20,60 MOV 31H,#60; MOV TMOD,#10H ;定時(shí)器方式1 MOV TH1,#03CH ;置定時(shí)器初值 MOV TL1,#0B0H MOV IE,#00H ;禁止中斷 SETB TR1 ;起動(dòng)定時(shí)器 LOOP: JBC TF1 ,LOOP1 ;查詢定時(shí)器時(shí)間到轉(zhuǎn)loop1 AJMP LOOP LOOP1:MOV TH1,#03CH ;重置定時(shí)器 MOV TL1,#0B0H DJNZ 30H,LOOP ;定時(shí)是否到了20次 MOV 30H,#20 DJNZ 31H,LOOP ;定時(shí)是否到了60次 MOV 31H,#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論