51單片機(jī)定時器的使用和詳細(xì)講解__特別是定時器2_第1頁
51單片機(jī)定時器的使用和詳細(xì)講解__特別是定時器2_第2頁
51單片機(jī)定時器的使用和詳細(xì)講解__特別是定時器2_第3頁
51單片機(jī)定時器的使用和詳細(xì)講解__特別是定時器2_第4頁
51單片機(jī)定時器的使用和詳細(xì)講解__特別是定時器2_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,定時器的講解和使用 有對定時器2的詳細(xì)講解,第八章 定時器,2,章節(jié)概述 很棒,8.1 概述 8.2 定時器T0和T1的結(jié)構(gòu) 8.3 定時器工作模式 8.4 定時器T2,3,8.1 概述,定時器是單片機(jī)的重要功能模塊之一,在檢測、控制領(lǐng)域有廣泛應(yīng)用。 定時器常用作定時時鐘,以實現(xiàn)定時檢測、定時響應(yīng)、定時控制,并且可用于產(chǎn)生ms寬的脈沖信號,驅(qū)動步進(jìn)電機(jī) 定時和計數(shù)功能最終都是通過計數(shù)實現(xiàn)的,若計數(shù)的事件源是周期固定的脈沖,則可以實現(xiàn)定時功能,否則只能實現(xiàn)計數(shù)功能。因此可以將定時和計數(shù)功能由一個部件實現(xiàn)。,4,實現(xiàn)定時和計數(shù)的方法一般有:軟件定時、專用硬件電路和可編程定時器/計數(shù)器三種方法。

2、 軟件定時:執(zhí)行一個循環(huán)程序進(jìn)行時間延遲。定時準(zhǔn)確,不需要外加硬件電路,但增加CPU開銷。 專用硬件電路定時:可實現(xiàn)精確的定時和計數(shù),但參數(shù)調(diào)節(jié)不便。 可編程定時器計數(shù)器:不占用CPU時間,能與CPU并行工作,實現(xiàn)精確的定時和計數(shù),又可以通過編程設(shè)置其工作方式和其它參數(shù),因此使用方便。,5,定時器的基本工作原理是:利用計數(shù)器對固定周期的脈沖計數(shù),通過寄存器的溢出來觸發(fā)中斷。 具體應(yīng)用步驟: 1)根據(jù)需要的定時時間,結(jié)合單片機(jī)的晶振頻率,計算出寄存器的初始值 2)根據(jù)需要開中斷 3)啟動定時器 若已規(guī)定用軟件啟動,則可把TR0、TR1或TR2置“1”;若已規(guī)定由外中斷引腳電平啟動,則需給外引腳步

3、加啟動電平。當(dāng)實現(xiàn)了啟動要求后,定時器即按規(guī)定的工作方式和初值開始計數(shù)或定時。,6,XC866單片機(jī)有三個16位的定時器定時器0、定時器1和定時器2。 定時器0、1各具有四種工作模式;定時器2有兩種工作模式。 定時器0、1和定時器2的任何一種工作模式均可通過程序?qū)ο鄳?yīng)寄存器進(jìn)行設(shè)置來選擇。 定時器在定時時間到時,可以由程序決定是否產(chǎn)生中斷請求信號,進(jìn)而判斷是否執(zhí)行中斷程序。 但是,無論中斷請求信號是否產(chǎn)生,當(dāng)定時器在定時時間到時,定時器的溢出標(biāo)志位TF0(TF1)由硬件置“1”。,7,8.2 定時器T0和T1的結(jié)構(gòu),定時器T0和T1的結(jié)構(gòu)如圖8-1所示。,圖8-1 定時器T0和T1結(jié)構(gòu)圖,核心

4、寄存器16位加法計數(shù)器,定時器模式寄存器,8,1.16位加法計數(shù)器,16位加法計數(shù)器是定時器的核心,圖8-1中用寄存器TH0、TL0及TH1、TL1表示。 T0加法計數(shù)器的高8位和低8位分別用TH0、TL0表示 T1加法計數(shù)器的高8位和低8位分別用TH1、TL1 表示 高8位和第8為可分別單獨使用 當(dāng)定時器工作時,加法計數(shù)器對內(nèi)部機(jī)器周期脈沖Tcy計數(shù)。,Tcy,9,2.模式寄存器(TMOD) TMOD用來選擇定時器0、1的工作模式,低4位用于定時器0,高4位用于定時器1,其組成如圖8-2所示。,圖8-2 模式寄存器組成,T1,T0,10,3.控制寄存器(TCON) TCON高4位用于控制定時

5、器0、1的運行;低4位用于控制外部中斷,與定時器無關(guān)。,定時器0、1運行控制位TR0(TR1): TR0(TR1)=1 啟動 TR0(TR1)=0 停止,定時器0、1溢出標(biāo)志 TF0(TF1): 溢出時該位由硬件自動置1,響應(yīng)中斷后,由硬件自動清0,圖8-3 控制寄存器組成,11,4.中斷使能寄存器(IEN0) IEN0中的ET0(ET1)位控制定時器0、1是否產(chǎn)生中斷請求信號。為0時不產(chǎn)生中斷請求信號,為1時允許產(chǎn)生中斷請求信號。其結(jié)構(gòu)如圖8-4所示。,圖8-3 中斷使能寄存器組成,定時器0中斷使能位,定時器0中斷使能位,12,8.3 定時器工作模式,定時器0 和定時器1 完全兼容,均可設(shè)定

6、為四種不同的工作模式,如表8-1 所示。寄存器TMOD 的位域TxM選擇定時器的工作模式。 兩個定時器在模式0、1 和2 時獨立工作;在模式3 時具有特定功能。,13,表8-1 定時器0 和定時器1 工作模式,14,1.工作模式0 當(dāng)T0M(T1M)=00時定時器設(shè)定為工作模式0,此時定時器工作于13位定時狀態(tài)。 其中TH0是高8位加法計數(shù)器,TL0是低5位加法計數(shù)器(TL0只用了低5位,高3位未用)。TL0加法計數(shù)溢出時向TH0進(jìn)位,TH0加法計數(shù)溢出時硬件置TF0=1。 加法計數(shù)器對機(jī)器周期脈沖Tcy計數(shù),每個機(jī)器周期TL0加1。,15,定時器的定時時間 計數(shù)初始值X 最大定時能力:,16

7、,模式0的結(jié)構(gòu)圖如圖8-4所示。,圖8-4 方式0結(jié)構(gòu)圖,門控位,GATE=0 定時器不受控于外部信號;僅打開與門,是定時器僅有TR位控制; GATE=1 定時器受控于外部信號,此時要求TR=1;,13位加法計數(shù)器,17,例題:生成周期為1.2 ms的等寬正方波。機(jī)器晶振26.67MHz。使用T0以方式0工作,由P0.0輸出,機(jī)器周期:37.5ns。計數(shù)周期Tcy是機(jī)器脈沖的2分頻,因此Tcy=75ns; 定時時間0.6ms 。 以0.6 ms為周期在P1.0端交替輸出高低電平。,18,定時器初始化程序 MOV TL0, #0X00 MOV TH0,#0X06 MOV TMOD,#0X00 S

8、ETB ET0 SETB TR0,定時器中斷服務(wù)程序 PUSH . CPL P0_0 POP ,T0從192開始計數(shù),直到超過8192即溢出,置TF0=1,產(chǎn)生中斷信號,19,2.工作模式1 T0M(T1M)=01時定時器設(shè)定為工作模式1,此時定時器0(定時器1)被設(shè)置為16位定時器。此時TH0、TL0都是8位加法計數(shù)器。其他與工作方式0相同。 定時器的定時時間 計數(shù)初始值,20,模式1的結(jié)構(gòu)圖如圖8-5所示。,圖8-5 方式1結(jié)構(gòu)圖,16位加法計數(shù)器,21,3.工作模式2 當(dāng)T0M(T1M)=10時定時器設(shè)定為工作模式2,此時定時器0(定時器1)被設(shè)置為可自動重載的8 位定時器。 TL0為8

9、位加法計數(shù)器, TH0為存放該8位加法計數(shù)器初值的寄存器。 TH0、TL0的初值都由程序預(yù)置。 在工作模式2中,定時器的定時時間由下式確定:,只有T0可工作于此模式,22,模式2的結(jié)構(gòu)圖如圖8-6所示。,圖8-6 方式2結(jié)構(gòu)圖,8位加法計數(shù)器,初值寄存器,23,4.工作模式3 當(dāng)T0M(T1M)=11時定時器設(shè)定為工作模式3,只有定時器0可以工作在工作模式3下。如把定時器1設(shè)置為工作模式3,則定時器1停止工作。 TL0、TH0成為兩個獨立的8位加法計數(shù)器。它的工作情況與模式0、模式1類似,差別在于定時范圍為: 模式3的結(jié)構(gòu)圖如圖8-7所示。 TL0 占用定時器0 的控制位:GATE0,TR0

10、和TF0 TH0占用定時器1 的控制位TR1 和TF1,TH0 溢出時將置位TF1, 并且在ET1 置位時產(chǎn)生中斷。,24,圖8-7 方式3結(jié)構(gòu)圖,25,T0和T1的應(yīng)用舉例,例 若fOSC=26.67MHz,T1工作于方式1,產(chǎn)生45ms的定時中斷,TF1為其中斷源標(biāo)志。試編寫主程序和中斷服務(wù)程序,使P1.0產(chǎn)生周期為90ms的方波。(忽略中斷響應(yīng)時間和指令執(zhí)行時間) 解: 讓P1.0每45ms取反一次即可實現(xiàn)。定時器的單次定時時間不可能達(dá)到45ms,如果設(shè)定16位的工作模式1,最大定時時間也才為4.9152ms。 可讓定時器多次定時產(chǎn)生4.5ms的定時時間,如讓T1工作在方式1,單次定時時

11、間為4.5ms,那么T1中斷10次就是45ms的時間。,26,(1)確定定時常數(shù) 假設(shè)使用fOSC的2分頻作為計數(shù)源,則Tcy2/ fOSC 2/(26.67106)75ns 由公式 可知計數(shù)初值 TH1=0 x15,TL0=0 xA0。,27,(2)初始化程序 包括T1初始化和中斷系統(tǒng)初始化,主要是對IP、IE、TCON、TMOD的相應(yīng)位進(jìn)行正確的設(shè)置,并將時間常數(shù)送入T1。一般將初始化操作放在主程序中完成,當(dāng)程序規(guī)模較大時,應(yīng)編寫單獨的初始化程序,以利于程序的模塊化設(shè)計。 (3)中斷服務(wù)程序 中斷服務(wù)程序除了完成要求的方波產(chǎn)生這一工作之外,還要注意將時間常數(shù)重新送入T1中,為下一次產(chǎn)生中斷

12、作準(zhǔn)備。,28,程序清單如下(主程序):,#include sbit P1_0 = P10; int count=10;/10次T1中斷為45ms void main( void ) TMOD=0 x10; /T1方式1 P1_0=0; TH1=0 x15; /初值 TL1=0 xA0; IEN0=0 x08; /允許T1中斷 IP|=0 x08; IPH|=0 x08; /TF1中斷為高級中斷 TR1=1 EA=1; / 總開中斷 while(1); /死循環(huán), 查詢等待TF1置位,產(chǎn)生方波 ,注:寄存器所在頁的選擇沒有列出,29,程序清單如下(中斷服務(wù)程序片段):, TF1=0; TH1=

13、0 x15; TL1=0 xA0; /重填初值 If (count!=0) count-; else count=10;P1_0=!P1_0; ,30,8.4 定時器T2,8.4.1 概述 定時器2 是一個16 位通用計數(shù)器,其具有兩種操作模式:16 位自動重載模式和16 位捕獲模式。 如果預(yù)分頻功能被禁止,定時器2工作時,16 位通用加法計數(shù)器以12分頻的周期脈沖計數(shù),每個周期16位通用加法計數(shù)器加1或減1。,31,定時器2由T2MOD寄存器、T2CON存器、功能存器TH2、TL2、RC2H、RC2L等電路構(gòu)成。 TH2、TL2構(gòu)成16位通用計數(shù)器。 RC2H、RC2L作為16位寄存器,在自

14、動重載模式中RC2H、RC2L作為16位通用計數(shù)器的16位初值寄存器 在捕捉模式中,當(dāng)引腳T2EX上出現(xiàn)下降沿跳變時,把TH2、TL2的當(dāng)前值捕捉到RC2H、RC2L中去。,32,8.4.2 定時器T2控制寄存器 1.模式寄存器T2MOD 寄存器T2MOD 用來選擇定時器2 的工作模式。其組成如圖8-8所示。,33,啟動邊沿選擇位,外部啟動使能位,捕獲模式/重載模式 的邊沿選擇位,預(yù)分頻使能位,計數(shù)器 遞增/遞減使能位,圖8-8 T2MOD各位功能,34,2.控制寄存器T2CON 寄存器T2CON 控制定時器2 的工作模式,其各位功能如圖8-9所示。,上溢/下溢標(biāo)志位,外部事件標(biāo)志位 展示T2

15、EX引腳狀態(tài),捕獲/重載模式選擇位 0:重載;1:捕獲,外部使能控制位 1:使能T2EX引腳控制; 0:禁止 T2EX引腳控制;,啟動/停止控制位,圖8-9 T2CON各位功能,35,8.4.3 定時器T2工作模式,1.自動重載模式 控制寄存器T2CON 中的 置“0” 時,定時器2被選擇為自動重載模式。 該模式下,定時器2計數(shù)至溢出時,將寄存器RC2H、RC2L中的16 位初始值重新裝入定時器的TH2、TL2寄存器中,開始新一輪計數(shù)循環(huán)。 并置位寄存器T2CON 的TF2 位表示計數(shù)溢出,從而向CPU 發(fā)送中斷請求信號。 溢出標(biāo)志TF2 必須由程序清零。根據(jù)控制寄存器T2MOD 中DCEN

16、控制位的設(shè)置,自動重載模式可進(jìn)一步分為兩種類型。,36,1)禁止遞增/遞減計數(shù)模式 若DCEN = 0,則遞增/遞減計數(shù)選擇被禁止,此時定時器只能遞增計數(shù)。工作原理如圖 8-10 所示。,圖8-10 T2禁止遞增/遞減計數(shù)模式,27號引腳,使能/禁止引入外部信號控制T2,中斷標(biāo)志位,通用16定時器寄存器,重載值寄存器,預(yù)分頻使能位,37,若EXEN2 = 0,置位TR2 定時器開始遞增計數(shù),計數(shù)至最大值FFFFH 后溢出并置位TF2,同時將寄存器RC2 中的16 位重載值重新裝入定時器寄存器。 重載值由軟件預(yù)先設(shè)置。新一輪計數(shù)循環(huán)開始,定時器同上一輪計數(shù)循環(huán)一樣,從重載值開始遞增計數(shù)。,38,

17、若EXEN2 = 1, 置位TR2 定時器開始遞增計數(shù)至最大值FFFFH。計數(shù)溢出或輸入引腳T2EX 的負(fù)/正跳變(由寄存器T2MOD 的位EDGESEL 選擇)均會引起16 位重載,將寄存器RC2 的內(nèi)容重新裝入定時器寄存器。 中斷標(biāo)志位: 若由溢出引起重載,溢出標(biāo)志TF2置位。 若由引腳T2EX 的負(fù)/正跳變引起重載,寄存器T2CON 中的EXF2 置位。 這兩種情況均產(chǎn)生中斷,定時器進(jìn)入下一輪計數(shù)循環(huán)。EXF2 標(biāo)志和TF2 一樣必須由軟件清零。,39,允許硬件啟動時(T2RHEN=1) T2EX第一個上升沿/下降沿觸發(fā)TR2=1啟動T2; 上升沿/下降沿的選擇由T2REGS選擇; 如果

18、使能外部控制(EXEN2=1),引腳T2EX的邊沿跳變完成兩個任務(wù):(由T2REGS選擇上升沿/下降沿) 啟動T2 EXF2置位,40,2)使能遞增/遞減計數(shù)模式 若DCEN = 1,則遞增/遞減計數(shù)選擇被使能,此時定時器可以遞增或遞減計數(shù)。工作原理如圖 8-11 所示。,圖8-11 T2使能遞增/遞減計數(shù)模式,41,引腳T2EX 的邏輯電平為1 時 定時器2 遞增計數(shù),因此定時器遞增計數(shù),計數(shù)至最大值FFFFH 后溢出并置位TF2,RC2 寄存器的16 位重載值重新裝入定時器寄存器。 引腳T2EX 的邏輯電平為0 時 定時器2 遞減計數(shù)。定時器遞減計數(shù)并當(dāng)THL2 的值和寄存器RC2 中的值

19、相等時發(fā)生下溢。下溢后置位TF2,并將值FFFFH 重新載入定時器寄存器THL2 中,42,若允許硬件啟動T2(當(dāng)T2RHEN=1)時,根據(jù)T2EX輸入的是上升沿/下降沿可將T2設(shè)置為遞增、遞減計數(shù) T2由上升沿啟動,T2只能工作于遞增模式 T2由下降沿啟動,T2只能工作于遞減模式,43,2.捕獲模式 控制寄存器T2CON 中的 及EXEN2置位時,定時器進(jìn)入16位捕獲模式。 此模式下,遞減計數(shù)功能必須禁止。16位計數(shù)器始終遞增計數(shù),計數(shù)至最大值FFFFH后溢出,TF2置位并將0000H 重新載入定時器寄存器TH2、TL2中。 溢出后TF2置位,則定時器向CPU發(fā)送中斷請求。 捕獲模式的結(jié)構(gòu)圖如圖8-12所示。,44,圖8-12 T2捕獲模式結(jié)構(gòu)圖,45,在引腳T2EX 的下降沿/上升沿(由T2MOD.EDGESEL 選擇),將定時器寄存器(THL2)的值捕獲到寄存器RC2 中。如果在計數(shù)器加1 時檢測到捕獲信號,計數(shù)器先加1 然后執(zhí)行捕獲操作,從而確保總能捕獲到定時計數(shù)器的最新值。執(zhí)行完捕獲操作,EXF2 置位、可用來產(chǎn)生中斷請求,46,若允許硬件啟動T2(當(dāng)T2RHEN=1)時,引腳T2EX輸入的第一個下降沿/上升沿(由T2MOD.EDGESEL 選擇)啟動T2 在啟動T2的同時,置位EXF2。 在下一個下降沿/上升沿到來時,將進(jìn)行捕獲操作。,47,例程分析,求矩形波A、B兩

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論