2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論