版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第六章 MCS-定時器/計數(shù)器,6.1 51的定時/計數(shù)器6.2 定時器/計數(shù)器的工作方式6.3定時器/計數(shù)器的應(yīng)用,2個16位定時器/計數(shù)器 ——(52系列有3個16位Timer)定時器:對片內(nèi)機器時鐘(周期方波)進行計數(shù)計數(shù)器:對Tx引腳輸入的負脈沖進行計數(shù),與Timer工作有關(guān)的特殊功能寄存器: TCON 和 TMOD,6.5.1 定時/計數(shù)器概述,6.1 51的定時/計數(shù)器,Timer的2個特殊功能
2、寄存器(TCON,TMOD),,,,,,,,,TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,一、定時器控制寄存器TCON (88H),TFx: Timer0/1計數(shù)溢出標(biāo)志位。 =1 計數(shù)溢出; =0 計數(shù)未滿TFx標(biāo)志位 可用于申請中斷或供CPU查詢。 在進入中斷服務(wù)程序時會自動清零;但在 查詢方
3、式時必須軟件清零。,TRx: Timer0/1運行控制位。 =1 啟動計數(shù); =0 停止計數(shù),6.5.2 定時/計數(shù)控制,TR0/TR1:Timer0/1運行控制位: TR0/TR1 =0 時,Timer0/1停止計數(shù) TR0/TR1 =1 時,Timer0/1啟動計數(shù),定時器T0/T1 中斷申請過程,? 在已經(jīng)開放T0/T1中斷允許且已被啟動的前提下:T0/T1加滿溢出時 TF0/TF1標(biāo)志
4、位自動置“1” ? 檢測到TCON中TF0/TF1變“1”后,將產(chǎn)生指令: LCALL 000BH/LCALL 001BH 執(zhí)行中斷服務(wù)程序,? TF0/TF1標(biāo)志位會自動清“0”,以備下次中斷申請。,定時/計數(shù)器可按片內(nèi)機器周期定時,也可對由T0/T1引腳輸入一個負脈沖進行加法計數(shù),TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,TCON (88H),,,,,,,,,GATE C / T
5、 M1 M0 GATE C / T M1 M0,二、定時器方式寄存器TMOD (89H),,,,,T1,T0,M1,M0:工作方式定義位 ( 定義4 種方式 ):,C/T :計數(shù)器/定時器選擇位 = 1 外部事件計數(shù)器。對Tx引腳的負脈沖計數(shù); = 0 片內(nèi)時鐘定時器。對機器周期脈沖計數(shù)定時,,0 0:13位 Timer——用它無益,不要記它!0 1:16位 Time
6、r——經(jīng)常用到1 0:可自動重裝的 8位 Timer——經(jīng)常用到1 1:T0 分為2個8位 Timer;T1 此時不工作 ——因為沒有帶來甚麼好處,幾乎無用,,,,,,,,,,GATE C / T M1 M0 GATE C / T M1 M0,,,,,T1,T0,GATE門控位: Timer可由軟件與硬件兩者控制 ? GATE = 0 ——普通用法
7、 Timer的啟/停由軟件對TRx位寫“1”/“0”控制,(89H),? GATE = 1 ——門控用法 Timer的啟/停由軟件對TRx位寫“1”/“0” 和在INTx引腳上出現(xiàn)的信號的高/低共同控制,,6.2.1工作方式1,INTx端,,,振蕩器,?12,,,,,,,,,,,,,,,,,,,,,,,,,,,,TLx THx (8位) (8位),TFx,,,申請中斷,,Tx端,TRx位,GATE位
8、,≥1,&,C/T=0,C/T=1,控制 =1開關(guān)接通,,,或門,與門,,,,6.2 定時器的工作方式及 應(yīng)用,一、工作方式1的結(jié)構(gòu)圖,? THx/TLx賦初值:THx賦高8位,TLx賦低8位,二、工作方式1 的編程要點:,? TMOD選方式: 寫“M1,M0”=01 b 選方式1,? 若不用門控位,直接用軟件寫TRx控制啟/停? 若使用門控位,先置位TRx,然后由INTx端 的高/低電平來控制其啟/停,? 若要允許中
9、斷,還須先置位ETx、EA等中斷 允許控制位,并編寫中斷服務(wù)程序? 若不用中斷,可查詢“計數(shù)溢出標(biāo)志TFx” 的方式工作,但溢出標(biāo)志TFx須軟件清0,分析:已知fosc = 6MHz 則: (振蕩周期)1Tc=1/6MHz (機器周期)1Tm=12Tc=12/6MHz=2?S? 粗略地說:Tmin ? 2?S 16位定時器最大數(shù)值為:216=65536=0FFFFH+1 故選擇方式 1 工作可以得到
10、:? Tmax = 65536?2 = 131072?S=131.072mS,若晶振頻率為6MHz,計算單片機的最小與最大定時時間:,例1,分析:已知fosc = 6MHz 則: (機器周期)1Tm=12Tc=12/6MHz=2?S 100mS÷2 ?S = 50000 16位定時器最大數(shù)值為: 216 = 65536 (=0FFFFH+1) 故選擇方式1工作可
11、以滿足要求。計算初值:65536-50000=15536=3CB0H,要求對T0產(chǎn)生100mS定時進行初始化。(晶振=6MHz),例2,,,,,,,,,GATE C / T M1 M0 GATE C / T M1 M0,,,由分析得知:T0選擇方式1,初值=3CB0H,X X X X 0 0 0 1,初始化:MOV TMOD,
12、#01H ;選 T0 方式 1 MOV TH0, #3CH ;賦初值高8位 MOV TL0, #0B0H ;賦初值低8位 SETB TR0 ;啟動 T0定時若需要定時器0產(chǎn)生中斷還應(yīng)當(dāng)寫如下語句: SETB ET0 ;開T0中斷允許 SETB EA ;開總中斷允許以及相應(yīng)的中斷服務(wù)程序。
13、,,6.2.2工作方式2,,,振蕩器,?12,,,,,,,,,,,,,,,,,,,,,,,,,,,,TLx (8位),TFx,,,申請中斷,,Tx端,TRx位,GATE位,INTx端,≥1,&,C/T=0,C/T=1,控制 =1開關(guān)接通,,,或門,與門,,,,THx (8位),,,,,,溢出位,門開,一、工作方式2的結(jié)構(gòu)圖,? THx/TLx賦相同初值 在TLx計數(shù)達到0FFH 再加“1”時,TL0 將溢出,進位位直
14、接進入“TFx”去申請 中斷,同時打開三態(tài)門,使THx中的值 自動重裝(Copy)進TLx,二、工作方式 2 的編程,? TMOD寄存器選方式: 寫“M1,M0” = 10 b 選中方式2,? 其他用法與各種方式1完全相同,分析:fosc = 6MHz 1機器周期 = 2 ?S 1KHz方波周期 = 1 mS 半個方波周期 =500?S 500uS÷2 uS = 250 若
15、選擇方式2 工作,8位定時器最大數(shù)值為: 28 =256 =0FFH + 1 可以滿足要求。計算初值:256-250=6,從P1.0 腳輸出頻率=1KHz方波。設(shè):晶振=6MHz。利用T1定時中斷。,Th:半周期,,,T:周期,,,,,,,,,,,,,,,,,例3,ORG 0000H AJMP MAIN ORG 001BH ;T1的中斷矢量 CPL P1.0 ;中斷服務(wù):P1.0取
16、非 RETI ;中斷返回MAIN: MOV TMOD,#20H MOV TH0, #6 MOV TL0, #6 SETB ET1 SETB EA SETB TR1 HERE: AJMP HERE ;原地等待中斷 END,,初始化,;選T1方式2;賦重裝值;賦初值;開T1中斷;開總中斷;啟動T
17、1,T0: 組織成TL0和TH0兩個8位定時/計數(shù)器,6.2.3 Timer工作方式 3,T1: 不再是定時/計數(shù)器了 T1 的TR1和TF1出借給TH0當(dāng)控制位使用, 剩下的TH1/TL1寄存器只能當(dāng)作普通寄存 器用。,,,,振蕩器,?12,,,,,,,,,,,,,,,,,,,,,,,,,,,,TL0 (8位),TF0,,,申請中斷,,T0端,TR0位,GATE位,INT0端,≥1,&,C/T=0
18、,C/T=1,控制 =1開關(guān)接通,,,或門,與門,,,,TH0 (8位),,,,,,,,,,,TF1,,,申請中斷,,,TR1位,,控制 =1,一、Timer工作方式 3 結(jié)構(gòu):,?T0成為雙 8位Timer ?T1不再有Timer功能 ?TF1,TR1出借給TH0,例3長定時舉例(設(shè)晶振=6MHz,要定時1秒):,ORG 0000H ; AJMP MAIN
19、ORG 001BH AJMP TINT ;見下一頁MAIN: MOV TMOD,#10H ;選T1方式1 MOV TH1, #3CH ;賦初值3CB0H=15536(只能定100mS) MOV TL1,#0B0H MOV 30H,#10 ;軟件計數(shù)單元30H 初值=10 CLR F0 ;芯片復(fù)位時已經(jīng)是“0”,此句可有可無
20、 SETB ET1 ;開T1中斷 SETB EA ;開總中斷 SETB TR1 ;啟動T1 HERE: JBC F0,TIMEUP ;原地等待“1秒到”的標(biāo)志 F0 AJMP HERETIMEUP:(do something) ;定時1秒到了以后要做的事情 AJMP HERE,,中斷服務(wù)在主程序中,,6.3定時
21、器/計數(shù)器的應(yīng)用,長定時舉例(續(xù)):,ORG 0000H AJMP MAIN ORG 001BH AJMP TINTMAIN: …………………TINT:DJNZ 30H,RTN ;若中斷不到10次就返回 SETB F0 ;已經(jīng)中斷夠10次了“置1”標(biāo)志位 MOV 30H,#10 ;為下一個1秒定時做準(zhǔn)備RTN: MOV TH1,
22、#3CH ;再賦定時100mS的初值3CB0HMOV TL1,#0B0H RETI ;中斷返回 END,將此例的中斷服務(wù)改寫在中斷服務(wù)程序中:,ORG 0000H AJMP MAIN ORG 001BH AJMP TINT ;見下一頁MAIN: MOV TMOD,#10H ;選T1方式1 MOV
23、 TH1,#3CH ;賦初值3CB0H=15536(只能定100mS) MOV TL1,#0B0H MOV 30H,#10 ;軟件計數(shù)單元30H 初值=10 CLR F0 ;芯片復(fù)位時已經(jīng)是“0”,此句可有可無 SETB ET1 ;開T1中斷 SETB EA ;開總中斷 SETB TR1 ;啟動T1
24、 HERE: AJMP HERE ;原地等待中斷,長定時舉例(續(xù)):,ORG 0000H AJMP MAIN ORG 001BH AJMP TINTMAIN: …………………TINT:DJNZ 30H,RTN ;若中斷不到10次就返回 MOV 30H,#10 ;為下一個1秒定時做準(zhǔn)備(do something);定時1秒到了以后
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第7章 定時器、計數(shù)器
- 8254定時器計數(shù)器設(shè)計實驗
- 8253定時器計數(shù)器接口實驗
- 2認識mcs-51單片機的定時器計數(shù)器6
- 8253定時器計數(shù)器接口實驗
- 實驗2 定時器/計數(shù)器接口擴展設(shè)計
- 定時器和計數(shù)器應(yīng)用c語言程序
- ch17-可編程計數(shù)器_定時器8253
- 第六章變壓器
- 第六章 離合器
- 第六章 高壓互感器
- 單片機實驗之定時器計數(shù)器應(yīng)用實驗二
- 定時計數(shù)器作業(yè)
- 5、第六章變壓器
- 單片機學(xué)習(xí)第五章定時器與計數(shù)器第一講
- 第六章 磁路與變壓器
- 單片機原理及應(yīng)用c語言版6mcs-51單片機定時器計數(shù)器
- 第六章 磁路與變壓器
- 外部中斷、定時(計數(shù)器)實驗
- 第六章課件 第六章 收益與分配管理
評論
0/150
提交評論