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

下載本文檔

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

文檔簡介

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

2、。因此可以 將定時和計數(shù)功能由一個部件實現(xiàn)。 4 n實現(xiàn)定時和計數(shù)的方法一般有:軟件定時、專用 硬件電路和可編程定時器/計數(shù)器三種方法。 q軟件定時軟件定時:執(zhí)行一個循環(huán)程序進行時間延遲。定時準確,不 需要外加硬件電路,但增加cpu開銷。 q專用硬件電路定時:專用硬件電路定時:可實現(xiàn)精確的定時和計數(shù),但參數(shù) 調(diào)節(jié)不便。 q可編程定時器計數(shù)器:可編程定時器計數(shù)器:不占用cpu時間,能與cpu并行工 作,實現(xiàn)精確的定時和計數(shù),又可以通過編程設(shè)置其工 作方式和其它參數(shù),因此使用方便。 5 n定時器的基本工作原理是:利用計數(shù)器對固定周 期的脈沖計數(shù),通過寄存器的溢出來觸發(fā)中斷。 q具體應(yīng)用步驟: n1

3、)根據(jù)需要的定時時間,結(jié)合單片機的晶振頻率, 計算出寄存器的初始值 n2)根據(jù)需要開中斷 n3)啟動定時器 q若已規(guī)定用軟件啟動,則可把tr0、tr1或tr2置“1”; 若已規(guī)定由外中斷引腳電平啟動,則需給外引腳步加啟動 電平。當實現(xiàn)了啟動要求后,定時器即按規(guī)定的工作方式 和初值開始計數(shù)或定時。 6 nxc866單片機有三個16位的定時器定時器0、 定時器1和定時器2。 n定時器0、1各具有四種工作模式;定時器2有兩 種工作模式。 n定時器0、1和定時器2的任何一種工作模式均可 通過程序?qū)ο鄳?yīng)寄存器進行設(shè)置來選擇。 n定時器在定時時間到時,可以由程序決定是否產(chǎn) 生中斷請求信號,進而判斷是否執(zhí)行

4、中斷程序。 n但是,無論中斷請求信號是否產(chǎn)生,當定時器在 定時時間到時,定時器的溢出標志位tf0(tf1) 由硬件置“1”。 7 8.2 8.2 定時器定時器t0t0和和t1t1的結(jié)構(gòu)的結(jié)構(gòu) n定時器t0和t1的結(jié)構(gòu)如圖8-1所示。 圖8-1 定時器t0和t1結(jié)構(gòu)圖 核心寄存核心寄存 器器16位位 加法計數(shù)器加法計數(shù)器 定時器模定時器模 式寄存器式寄存器 8 1.161.16位加法計數(shù)器位加法計數(shù)器 n16位加法計數(shù)器是定時器的核心,圖8-1中用寄存 器th0、tl0及th1、tl1表示。 nt0加法計數(shù)器的高8位和低8位分別用th0、tl0表 示 nt1加法計數(shù)器的高8位和低8位分別用th1

5、、tl1 表示 n高8位和第8為可分別單獨使用 n當定時器工作時,加法計數(shù)器對內(nèi)部機器周期脈 沖tcy計數(shù)。 tcy 9 n2.2.模式寄存器(模式寄存器(tmodtmod) tmod用來選擇定時器0、1的工作模式,低4位 用于定時器0,高4位用于定時器1,其組成如圖 8-2所示。 圖8-2 模式寄存器組成 方式方式 選擇選擇 0000:模式:模式0 0 0101:模式模式1 1 1010:模式模式2 2 1111:模式模式3 3 方式方式 選擇選擇 t1t1t0t0 10 n3.3.控制寄存器(控制寄存器(tcontcon) qtcon高4位用于控制定時器0、1的運行;低4位用于控 制外部中

6、斷,與定時器無關(guān)。 定時器定時器0 0、1 1運行控運行控 制位制位tr0tr0(tr1tr1):): tr0(tr1)=1 tr0(tr1)=1 啟動啟動 tr0(tr1)=0 tr0(tr1)=0 停止停止 定時器定時器0 0、1 1溢出標志溢出標志 tf0tf0(tf1tf1):): 溢出時該位由硬件自溢出時該位由硬件自 動置動置1 1,響應(yīng)中斷后,響應(yīng)中斷后, 由硬件自動清由硬件自動清0 0 圖8-3 控制寄存器組成 11 n4.4.中斷使能寄存器(中斷使能寄存器(ien0ien0) qien0中的et0(et1)位控制定時器0、1是否產(chǎn)生中斷 請求信號。為0時不產(chǎn)生中斷請求信號,為1

7、時允許產(chǎn) 生中斷請求信號。其結(jié)構(gòu)如圖8-4所示。 圖8-3 中斷使能寄存器組成 定時器定時器0 0中中 斷使能位斷使能位 定時器定時器0 0中中 斷使能位斷使能位 12 8.3 8.3 定時器工作模式定時器工作模式 n定時器0 和定時器1 完全兼容,均可設(shè)定為四 種不同的工作模式,如表8-1 所示。寄存器 tmod 的位域txm選擇定時器的工作模式。 n兩個定時器在模式0、1 和2 時獨立工作;在 模式3 時具有特定功能。 13 表8-1 定時器0 和定時器1 工作模式 14 n1.1.工作模式工作模式0 0 n當t0m(t1m)=00時定時器設(shè)定為工作模式0,此 時定時器工作于13位定時狀態(tài)

8、。 n其中th0是高8位加法計數(shù)器,tl0是低5位加法計 數(shù)器(tl0只用了低5位,高3位未用)。tl0加法 計數(shù)溢出時向th0進位,th0加法計數(shù)溢出時硬件 置tf0=1。 n加法計數(shù)器對機器周期脈沖tcy計數(shù),每個機器周 期tl0加1。 15 n定時器的定時時間 n計數(shù)初始值x n最大定時能力: )13(-2n tcy x n 此處 定時時間 tcy)x-(8192t tcy8192tmax 16 模式0的結(jié)構(gòu)圖如圖8-4所示。 圖8-4 方式0結(jié)構(gòu)圖 門控位 gate=0 定時器不受定時器不受 控于外部信號;僅打控于外部信號;僅打 開與門,是定時器僅開與門,是定時器僅 有有tr位控制;位

9、控制; gate=1 定時器受控定時器受控 于外部信號,此時要于外部信號,此時要 求求tr=1; 13位加法位加法 計數(shù)器計數(shù)器 17 p例題例題:生成周期為1.2 ms的等寬正方波。機器晶 振26.67mhz。使用t0以方式0工作,由p0.0輸出 1.2 ms n機器周期:37.5ns。計數(shù)周期tcy是機器脈沖 的2分頻,因此tcy=75ns; n定時時間0.6ms 。 n以0.6 ms為周期在p1.0端交替輸出高低電平。 18 tcy n 定時時間 計數(shù)初值-2 0019280008192 75 10*6 . 0 2 6 13 xcx 0000000000005 0600000011008

10、 xtl xth 位低 位高 n定時器初始化程序 mov tl0, #0x00 mov th0,#0x06 mov tmod,#0x00 setb et0 setb tr0 n定時器中斷服務(wù)程序 push . cpl p0_0 pop t0從從192開始計數(shù),直到開始計數(shù),直到 超過超過8192即溢出,置即溢出,置 tf0=1,產(chǎn)生中斷信號產(chǎn)生中斷信號 19 n2.2.工作模式工作模式1 1 nt0m(t1m)=01時定時器設(shè)定為工作模式1,此時 定時器0(定時器1)被設(shè)置為16位定時器。此時 th0、tl0都是8位加法計數(shù)器。其他與工作方式0 相同。 n定時器的定時時間 n計數(shù)初始值 )16

11、(-2n tcy n 此處 定時時間 計數(shù)初值 tcy)x-(65536t 20 模式1的結(jié)構(gòu)圖如圖8-5所示。 圖8-5 方式1結(jié)構(gòu)圖 16位加法位加法 計數(shù)器計數(shù)器 21 n3.3.工作模式工作模式2 2 n當t0m(t1m)=10時定時器設(shè)定為工作模式2,此 時定時器0(定時器1)被設(shè)置為可自動重載的8 位定時器。 qtl0為8位加法計數(shù)器, qth0為存放該8位加法計數(shù)器初值的寄存器。 qth0、tl0的初值都由程序預置。 n在工作模式2中,定時器的定時時間由下式確定: tcy)x-(256t 只有只有t0可工可工 作于此模式作于此模式 22 模式2的結(jié)構(gòu)圖如圖8-6所示。 圖8-6

12、方式2結(jié)構(gòu)圖 8位加法位加法 計數(shù)器計數(shù)器 初值寄初值寄 存器存器 23 n4.4.工作模式工作模式3 3 n當t0m(t1m)=11時定時器設(shè)定為工作模式3,只有定 時器0可以工作在工作模式3下。如把定時器1設(shè)置為工 作模式3,則定時器1停止工作。 ntl0、th0成為兩個獨立的8位加法計數(shù)器。它的工作情 況與模式0、模式1類似,差別在于定時范圍為: n模式3的結(jié)構(gòu)圖如圖8-7所示。 ntl0 占用定時器0 的控制位:gate0,tr0 和tf0 nth0占用定時器1 的控制位tr1 和tf1,th0 溢出時 將置位tf1, 并且在et1 置位時產(chǎn)生中斷。 tcy)x-(256t 24 圖8

13、-7 方式3結(jié)構(gòu)圖 25 t0和t1的應(yīng)用舉例 n例 若fosc=26.67mhz,t1工作于方式1,產(chǎn)生45ms的定時 中斷,tf1為其中斷源標志。試編寫主程序和中斷服務(wù)程 序,使p1.0產(chǎn)生周期為90ms的方波。(忽略中斷響應(yīng)時 間和指令執(zhí)行時間) n解: q讓p1.0每45ms取反一次即可實現(xiàn)。定時器的單次定時時間 不可能達到45ms,如果設(shè)定16位的工作模式1,最大定時時 間也才為4.9152ms。 q可讓定時器多次定時產(chǎn)生4.5ms的定時時間,如讓t1工作在 方式1,單次定時時間為4.5ms,那么t1中斷10次就是45ms 的時間。 26 n(1)確定定時常數(shù) q假設(shè)使用fosc的2

14、分頻作為計數(shù)源,則tcy2/ fosc 2/ (26.67106)75ns q由公式 q可知計數(shù)初值 qth1=0 x15,tl0=0 xa0。 )16(-2n tcy n 此處 定時時間 計數(shù)初值 01505536 10*75 5 . 4 65536 6 ax ms ms x 27 n(2)初始化程序 包括t1初始化和中斷系統(tǒng)初始化,主要是對ip、ie、 tcon、tmod的相應(yīng)位進行正確的設(shè)置,并將時間常 數(shù)送入t1。一般將初始化操作放在主程序中完成, 當程序規(guī)模較大時,應(yīng)編寫單獨的初始化程序,以 利于程序的模塊化設(shè)計。 n(3)中斷服務(wù)程序 中斷服務(wù)程序除了完成要求的方波產(chǎn)生這一工作之

15、外,還要注意將時間常數(shù)重新送入t1中,為下一次 產(chǎ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 程

16、序清單如下(中斷服務(wù)程序片段): tf1=0; th1=0 x15; tl1=0 xa0; /重填初值 if (count!=0) count-; else count=10;p1_0=!p1_0; 30 8.4 8.4 定時器定時器t2t2 n8.4.1 8.4.1 概述概述 n定時器2 是一個16 位通用計數(shù)器,其具有 兩種操作模式:16 位自動重載模式和16 位 捕獲模式。 n如果預分頻功能被禁止,定時器2工作時, 16 位通用加法計數(shù)器以12分頻的周期脈沖 計數(shù),每個周期16位通用加法計數(shù)器加1或 減1。 31 n定時器2由t2mod寄存器、t2con存器、功能 存器th2、tl2、r

17、c2h、rc2l等電路構(gòu)成。 qth2、tl2構(gòu)成16位通用計數(shù)器。 qrc2h、rc2l作為16位寄存器,在自動重載模式 中rc2h、rc2l作為16位通用計數(shù)器的16位初值 寄存器 q在捕捉模式中,當引腳t2ex上出現(xiàn)下降沿跳變 時,把th2、tl2的當前值捕捉到rc2h、rc2l中 去。 32 n8.4.2 8.4.2 定時器定時器t2t2控制寄存器控制寄存器 n1.1.模式寄存器模式寄存器t2modt2mod n寄存器t2mod 用來選擇定時器2 的工作模式。其 組成如圖8-8所示。 33 啟動邊沿啟動邊沿 選擇位選擇位 外部啟動外部啟動 使能位使能位 捕獲模式捕獲模式/ /重載模式重

18、載模式 的邊沿選擇位的邊沿選擇位 預分頻使能位預分頻使能位 計數(shù)器計數(shù)器 遞增遞增/ /遞遞 減使能位減使能位 圖8-8 t2mod各位功能 34 n2.2.控制寄存器控制寄存器t2cont2con n寄存器t2con 控制定時器2 的工作模式,其各位功 能如圖8-9所示。 上溢上溢/ /下溢標志位下溢標志位 外部事件標志位外部事件標志位 展示展示t2ex引腳狀態(tài)引腳狀態(tài) 捕獲捕獲/ /重載模式選擇位重載模式選擇位 0 0:重載;:重載;1 1:捕獲:捕獲 外部使能控制位外部使能控制位 1:使能:使能t2ex引腳控制;引腳控制; 0:禁止:禁止 t2ex引腳控制;引腳控制; 啟動啟動/ /停止

19、控制位停止控制位 圖8-9 t2con各位功能 35 8.4.3 8.4.3 定時器定時器t2t2工作模式工作模式 n1.1.自動重載模式自動重載模式 n控制寄存器t2con 中的 置“0” 時,定時 器2被選擇為自動重載模式。 n該模式下,定時器2計數(shù)至溢出時,將寄存器rc2h、 rc2l中的16 位初始值重新裝入定時器的th2、tl2 寄存器中,開始新一輪計數(shù)循環(huán)。 n并置位寄存器t2con 的tf2 位表示計數(shù)溢出,從 而向cpu 發(fā)送中斷請求信號。 n溢出標志tf2 必須由程序清零。根據(jù)控制寄存器 t2mod 中dcen 控制位的設(shè)置,自動重載模式可進 一步分為兩種類型。 2/lrcp

20、 36 n1)禁止遞增/遞減計數(shù)模式 n若dcen = 0,則遞增/遞減計數(shù)選擇被禁止,此時定 時器只能遞增計數(shù)。工作原理如圖 8-10 所示。 圖8-10 t2禁止遞增/遞減計數(shù)模式 27號引 腳 使能/禁止引入外 部信號控制t2 中斷標 志位 通用16定時 器寄存器 重載值 寄存器 預分頻 使能位 37 n若exen2 = 0,置位tr2 定時器開始遞增計數(shù), 計數(shù)至最大值ffffh 后溢出并置位tf2,同 時將寄存器rc2 中的16 位重載值重新裝入定 時器寄存器。 n重載值由軟件預先設(shè)置。新一輪計數(shù)循環(huán)開始, 定時器同上一輪計數(shù)循環(huán)一樣,從重載值開始 遞增計數(shù)。 38 n若exen2

21、= 1, 置位tr2 定時器開始遞增計數(shù)至最 大值ffffh。計數(shù)溢出或輸入引腳t2ex 的負/正跳變 (由寄存器t2mod 的位edgesel 選擇)均會引起 16 位重載,將寄存器rc2 的內(nèi)容重新裝入定時器寄 存器。 n中斷標志位: q若由溢出引起重載,溢出標志tf2置位。 q若由引腳t2ex 的負/正跳變引起重載,寄存器t2con 中的 exf2 置位。 q這兩種情況均產(chǎn)生中斷,定時器進入下一輪計數(shù)循環(huán)。 exf2 標志和tf2 一樣必須由軟件清零。 39 n允許硬件啟動時(t2rhen=1) qt2ex第一個上升沿/下降沿觸發(fā)tr2=1啟動t2; q上升沿/下降沿的選擇由t2regs

22、選擇; q如果使能外部控制(exen2=1),引腳t2ex的邊 沿跳變完成兩個任務(wù):(由t2regs選擇上升沿/下 降沿) n啟動t2 nexf2置位 40 n2)使能遞增/遞減計數(shù)模式 n若dcen = 1,則遞增/遞減計數(shù)選擇被使能,此時定 時器可以遞增或遞減計數(shù)。工作原理如圖 8-11 所示。 圖8-11 t2使能遞增/遞減計數(shù)模式 41 n引腳t2ex 的邏輯電平為1 時 q定時器2 遞增計數(shù),因此定時器遞增計數(shù),計數(shù)至 最大值ffffh 后溢出并置位tf2,rc2 寄存器的 16 位重載值重新裝入定時器寄存器。 n引腳t2ex 的邏輯電平為0 時 q定時器2 遞減計數(shù)。定時器遞減計數(shù)

23、并當thl2 的 值和寄存器rc2 中的值相等時發(fā)生下溢。下溢后置 位tf2,并將值ffffh 重新載入定時器寄存器 thl2 中 42 n若允許硬件啟動t2(當t2rhen=1)時,根據(jù) t2ex輸入的是上升沿/下降沿可將t2設(shè)置為遞 增、遞減計數(shù) nt2由上升沿啟動,t2只能工作于遞增模式 nt2由下降沿啟動,t2只能工作于遞減模式 43 n2.2.捕獲模式捕獲模式 n控制寄存器t2con 中的 及exen2置位時,定 時器進入16位捕獲模式。 n此模式下,遞減計數(shù)功能必須禁止。16位計數(shù)器 始終遞增計數(shù)始終遞增計數(shù),計數(shù)至最大值ffffh后溢出,tf2 置位并將0000h 0000h 重新載入定時器寄存器th2、tl2 中。 n溢出后tf2置位,則定時器向cpu發(fā)送中斷請求。 n捕獲模式的結(jié)構(gòu)圖如圖8-12所示。 2/lrcp 44圖8-12 t2捕獲模式結(jié)構(gòu)圖 45 n在引腳t2ex 的下降沿/上升沿(由 t2mod.edgesel 選擇),將定時器寄存器 (thl2)的值捕獲到寄存器rc2 中。如果在 計數(shù)器加1 時檢測到捕獲信號,計數(shù)器先加1 然后執(zhí)行捕獲操作,從而確??偰懿东@到定時 計數(shù)器的最新值。執(zhí)行完捕獲操作,exf2 置 位、可用來產(chǎn)生中斷請求 46 n若允許硬件啟動t2(當t2rhen=1)時,引腳 t2ex輸入的第一個下降沿/上升沿(由 t2mod.e

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論