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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

11、間為4.5ms,那么T1中斷10次就是45ms的時(shí)間。,26,(1)確定定時(shí)常數(shù) 假設(shè)使用fOSC的2分頻作為計(jì)數(shù)源,則Tcy2/ fOSC 2/(26.67106)75ns 由公式 可知計(jì)數(shù)初值 TH1=0 x15,TL0=0 xA0。,27,(2)初始化程序 包括T1初始化和中斷系統(tǒng)初始化,主要是對(duì)IP、IE、TCON、TMOD的相應(yīng)位進(jìn)行正確的設(shè)置,并將時(shí)間常數(shù)送入T1。一般將初始化操作放在主程序中完成,當(dāng)程序規(guī)模較大時(shí),應(yīng)編寫(xiě)單獨(dú)的初始化程序,以利于程序的模塊化設(shè)計(jì)。 (3)中斷服務(wù)程序 中斷服務(wù)程序除了完成要求的方波產(chǎn)生這一工作之外,還要注意將時(shí)間常數(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中斷為高級(jí)中斷 TR1=1 EA=1; / 總開(kāi)中斷 while(1); /死循環(huán), 查詢(xún)等待TF1置位,產(chǎn)生方波 ,注:寄存器所在頁(yè)的選擇沒(méi)有列出,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 定時(shí)器T2,8.4.1 概述 定時(shí)器2 是一個(gè)16 位通用計(jì)數(shù)器,其具有兩種操作模式:16 位自動(dòng)重載模式和16 位捕獲模式。 如果預(yù)分頻功能被禁止,定時(shí)器2工作時(shí),16 位通用加法計(jì)數(shù)器以12分頻的周期脈沖計(jì)數(shù),每個(gè)周期16位通用加法計(jì)數(shù)器加1或減1。,31,定時(shí)器2由T2MOD寄存器、T2CON存器、功能存器TH2、TL2、RC2H、RC2L等電路構(gòu)成。 TH2、TL2構(gòu)成16位通用計(jì)數(shù)器。 RC2H、RC2L作為16位寄存器,在自

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論