單片機原理與應用 第5章 定時器計數(shù)器_第1頁
單片機原理與應用 第5章 定時器計數(shù)器_第2頁
單片機原理與應用 第5章 定時器計數(shù)器_第3頁
單片機原理與應用 第5章 定時器計數(shù)器_第4頁
單片機原理與應用 第5章 定時器計數(shù)器_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理與應用,北京交通大學電子信息工程學院自動化系 2017年1月,北京交通大學,2,第5章 定時器/計數(shù)器,本章主要內(nèi)容 定時/計數(shù)器的功能 與定時/計數(shù)器有關的寄存器 定時/計數(shù)器四種工作方式 定時器的應用,北京交通大學,3,本章要求:熟練掌握計數(shù)/定時編程方法,定時方法,軟件定時 硬件定時 可編程定時器定時,北京交通大學,4,TF1 TR1 TF0 TR0 GATE C/T M1 M0 GATE C/T M1 M0,TCON,TMOD,TH1 TL1 TH0 TL0,CPU,一、定時/計數(shù)器的功能,圖1定時/計數(shù)器與TMOD、TCON的結構框圖,共有兩個可編程的定時/計數(shù)器T0和T1

2、 都是十六位加法計數(shù)器結構,分別由TH0、TL0 和TH1、TL1四個8位計數(shù)器組成 每個定時計數(shù)器都具有定時和計數(shù)兩種功能,北京交通大學,5,圖 2 定時/計數(shù)器的結構框,北京交通大學,6,功能:對外來脈沖進行計數(shù) 外來計數(shù)脈沖加在單片機的兩個信號引腳T0(P3.4)T1(P3.5) 外部輸入的脈沖在負跳變時觸發(fā)計數(shù) 計數(shù)器在每個機器周期的S5P2期間采樣外部輸入信號。 若一個周期采樣值為1,下一個周期采樣值為0,則計數(shù)器加1。 脈沖的頻率最高為振蕩頻率的1/24 外部輸入信號的高電平和低電平保持時間大于一個機器周期 計數(shù)器計滿回零,發(fā)中斷申請,1.計數(shù)功能,北京交通大學,7,2.定時功能

3、計數(shù)器的計數(shù)來實現(xiàn) 計數(shù)脈沖:每個機器周期產(chǎn)生一個計數(shù)脈沖。即計數(shù)頻率為振蕩頻率的1/12。 根據(jù)計數(shù)器的預置值計算出定時時間。按定時時間的要求,計算出計數(shù)器的預置值。,北京交通大學,8,二、定時/計數(shù)器的方式和控制寄存器 1.定時器控制寄存器(TCON) 控制方式:外部中斷控制與定時控制。 定時控制功能: 定時器在溢出時,設定標志位(TFx) 控制定時器的運行或停止等(TRx),北京交通大學,9,定時控制寄存器(TCON),(88H),TF1 TR1TF0 TR0 IE1 IT1 IE0 IT0,8F 8E 8D 8C 8B 8A 89 88,INT0觸發(fā)方式 0:電平觸發(fā)(低) 1:邊沿觸

4、發(fā)(下跳沿),INT0請求標志 0:無請求(硬件置位或清除) 1:有請求,INT1觸發(fā) 請求標志,用于定時/計數(shù)器,位地址,外部中斷,北京交通大學,10,TF0(TF1):為T0(T1)定時器溢出中斷標志位 當T0(T1)計數(shù)溢出時,由硬件置位,并在允許中斷的情況下,發(fā)出中斷請求信號。 當CPU響應中斷轉向中斷服務程序(000BH,001BH)時,由硬件自動將該位清0。 TR0(TR1):為T0(T1)運行控制位 當TR0(TR1)=1時啟動T0(T1); TR0(TR1)=0時關閉T0(T1) 該位由軟件進行設置。 復位時TCON清零,北京交通大學,11,2.定時器方式寄存器(TMOD),用

5、于控制兩個定時/計數(shù)器的工作方式 高4位定義T1,低4位定義T0, 字節(jié)地址為89H,格式:,GATE C/T M1 M0 GATE C/T M1 M0,T0,T1,GATE:門控位,GATE0,以運行控制位TRx啟動定時器 GATE1,啟動信號=TRxINTx,在沒有外中斷請求信號(INTx=1)才允許定時器啟動,北京交通大學,12,C/T:定時或計數(shù)方式選擇位: C/T0,定時工作方式; C/T1,計數(shù)工作方式。 M1M0:工作方式選擇位: M1M000 方式0:13位計數(shù)(TL0-4、TH0-7) M1M001方式1:16位計數(shù) M1M010方式2:8位計數(shù) 自動裝入計數(shù)器初值功能 M1

6、M011方式3:T0分為兩個8位計數(shù)器 TL0允許作為定時或計數(shù)方式 TH0只能作為定時方式,北京交通大學,13,三、定時/計數(shù)器工作方式 1.方式0 方式0工作邏輯結構圖。,12 分頻,fosc,C/T=0 C/T=1,TL1 TH1 (5位)(8位),TF1,中斷,T1,控 制,GATE INT1,+,TR1,1,軟件啟動方式,1/24fosc,1/12fosc,計數(shù)輸入,中斷,TF1 ET1 EA,北京交通大學,14,方式0是13位結構的工作方式,其計數(shù)器由 TH1的全8位和TL1的低5位構成。TL1的高3位棄之 不用。 計數(shù)方式:計數(shù)值的范圍為:1-8192(213) 定時方式:定時時

7、間T的計算公式為: 啟動的條件是: (TRx=1)AND(GATE=1 OR INTx=1),2000H,T(213計數(shù)初值x)晶振周期12 或 T(213計數(shù)初值x)機器周期 機器周期=12/晶振頻率=12*晶振周期,北京交通大學,15,方式0應用舉例 設單片機晶振頻率fosc=6MHz,使用定時器1以方式0產(chǎn)生周期為500us的方波,并由P1.0輸出。以查詢或中斷方式完成。 解:計算定時初值x 欲產(chǎn)生500us的方波,在P1.0端以250us為周期交替輸出高低電平即可實現(xiàn)。為此,定時時間應為250us。晶振為6MHz,則1個機器周期為(12/6)2us。 則: (213x)*2uS250u

8、S x80671111110000011B(2000H-7DH) 即: TH10FCH,TL103H。,北京交通大學,16,步驟:,TMOD初始化,工作方式選擇 計數(shù)器初值計算 置位EA使CPU開中斷 置位ETx允許C/T中斷 置位TRx啟動計數(shù),北京交通大學,17, TMOD初始化 定時器1,M1M0=00H(方式0) C/T=0(定時) GATE0(以軟件啟動定時器) 不用的位設定為0 TMOD為初始化00H。 TCON寄存器的TR1位來啟動(1) 或停止(0)定時器,北京交通大學,18,程序設計 查詢方式: MOV TMOD,#00H ;T1工作在方式0 SETB TR1 ;啟動T1工作

9、 LOOP: MOV TL1,#03H MOV TH1,#0FCH ;置定時初值 WAIT: JNB TF1,WAIT ;定時未到,循環(huán)等待 CLR TF1 ;定時到,清TF1 CPL P1.0 ;由P1.0輸出,信號取反 SJMP LOOP ;循環(huán)輸出方波,北京交通大學,19,中斷方式: ORG 8000H MOV TMOD,#00H ;T1工作在方式0 MOV TL1,#03H MOV TH1,#0FCH ;置定時初值 SETB EA ;開中斷 SETB ET1 ;允許T1中斷 LOOP: SETB TR1 ;啟動T1工作 WAIT: SJMP WAIT ;等待中斷 AJMP LOOP O

10、RG 001BH ;T1中斷入口 LJMP SUB ;跳至中斷服務程序SUB ORG 8100H ;中斷服務程序 SUB1: CPL P1.0 ;輸出信號取反 MOV TL1,#03H MOV TH1,#0FCH ;重置定時初值 RETI ;中斷返回,北京交通大學,20,2.方式1 其邏輯電路和工作情況與方式完全相同。所不同的只是組成計數(shù)器的位數(shù)為16位。,計數(shù)值的范圍為: 1-65536(216) 定時時間的計算公式與方式0類似。即:,TL1,TH1,TF1,計數(shù)輸入,7 0 7 0,T(216計數(shù)初值x)晶振周期12 或 T(216計數(shù)初值x)機器周期,北京交通大學,21,12 分頻,fo

11、sc,C/T=0 C/T=1,TL0 (8位),TF0,TR0,控 制,GATE INT0,+,TR0,TH0 (8位),重裝入,中斷,3.方式2 工作方式2邏輯結構如圖。,北京交通大學,22,該方式把16位計數(shù)器分為兩部分 既以TL1作計數(shù)器 以TH1作預置計數(shù)器 初始化計數(shù)初值分別裝入TL1和TH1中 當計數(shù)溢出后,由預置寄存器TH1, 以硬件方法自動給計數(shù)器TL1重新加載 最大計數(shù)值只能到256,適用于循環(huán)定時或循環(huán)計數(shù)應用,方式2具有自動重新加載功能,即自動加載計數(shù)初值,北京交通大學,23,方式2應用舉例 設單片機晶振頻率fosc=6MHz,使用T0以方式2產(chǎn)生周期為200us的方波,

12、并由P1.0輸出。 以查詢或中斷方式完成 解: 計算計數(shù)初值x,晶振為6MHz,則1個機器周期為2us。則: (28x)2100,x206CEH 即 TH00CEH,TL00CEH。,TMOD寄存器初始化 定時器0 M1M0=10H(方式2) C/T=0(定時) GATE0 (以軟件啟動定時器) 不用的位設定為0 最后得TMOD應初始化為02H。,北京交通大學,24,北京交通大學,25, 用TCON寄存器的TR0位來啟動(1)或停止(0)定時器。 程序設計(查詢方式): MOV TMOD,#02H ;T0工作在方式2 MOV TL0,#0CEH MOV TH0,#0CEH ;置定時初值 SET

13、B TR0 ;啟動T0工作 WAIT: JNB TF0,WAIT ;定時未到, 循環(huán)等待 CLR TF0 ;定時到,清TF0 CPL P1.0 ;由P1.0輸出,信號取反 SJMP WAIT ;循環(huán)輸出方波,北京交通大學,26,中斷方式: MOV TMOD,#02H ;T0工作在方式2 MOV TL0,#0CEH MOV TH0,#0CEH ;置計數(shù)初值 SETB EA ; 開中斷 SETB ET0 ; 允許T0中斷 LOOP: SETB TR0 ;啟動T0工作 WAIT: SJMP $ ;等待中斷 CLR TF0 ;計數(shù)溢出標志位TF0清0 AJMP LOOP ORG 000BH ;中斷服務

14、程序 CPL P1.0 ;由P1.0輸出,信號取反 RETI ;中斷返回,北京交通大學,27,TH0 (8位),TF1,T0,控制,GATE INT0,+,TR0,C/T=0 C/T=1,1/12fosc,1/12fosc TR1,中斷,TL0 (8位),TF0,控制,中斷,4. 方式3,計數(shù)/定時,定時,北京交通大學,28,工作在方式3下的T0 T被拆成兩個獨立的8位計數(shù)器。 1.TL0既可以作計數(shù)器使用,又可以作定時器使用,其功能和操作方式與方式或方式1完全相同。 2.TH0只能作8位定時器使用,并占用了T的中斷資源TR1和TF1。,北京交通大學,29,工作在方式3下的T1 如果T已工作在

15、方式3下: T1只能工作在方式02下,用于任何不需要中斷控制的場合 用作串行口的波特率發(fā)生器 通常只有當T1用作串行口的波特率發(fā)生器時: T0才被定義為方式,以增加一個8位計數(shù)器。 T1設定工作方式2、計數(shù)器初值,T1便可自動運 如停止計數(shù):只需送入一個把它設為方式3的控制字即可,這時T1直接把溢出標志TF1送給串行口,北京交通大學,30,四、定時器的應用,定時器門控位GATE的應用: 當GATE=1時,定時器的啟動受外部INTx的控制。 在TRx=1時,若INTx=1,則啟動計數(shù); 若INTx=0,則停止計數(shù)。 應用:測試外部脈沖的寬度。,北京交通大學,31,12 分頻,fosc,C/T=0

16、 C/T=1,TL1 TH1 (8位)(8位),TF1,中斷,T1,控 制,GATE INT1,+,TR1,1,軟件啟動方式,1/24fosc,1/12fosc,計數(shù)輸入,中斷,TF1 ET1 EA,例:設被測脈沖由P3.3輸入,利用T1測試正脈沖的寬度。設fosc=12MHz,將測試結果存放在內(nèi)部RAM的40H,41H單元中。,北京交通大學,32,四、定時器的應用,分析: 測試時,1.檢測INT1端由低變高時, TR1=1啟動計數(shù);,P3.3 (INT1),置TR1=1 啟動計數(shù),停止計數(shù),2. INT1再次變低時,計數(shù)停止,此時的計數(shù)值即為被測正脈沖的寬度。 3.由于T1工作于方式1,所以

17、可測最大脈寬為65536uS(fosc=12MHz); 4.由于外部脈寬的最高頻率為fosc/24,所以,測試值的合理范圍是2-65536x2。,北京交通大學,33,四、定時器的應用,ORG 300H START:MOV TMOD,#90H ;GATE=1 ,T1方式1 MOV TL1,#00H ;從零開始計數(shù) MOV TH1,#00H MOV R0,#40H ;置數(shù)據(jù)指針 DONE:JNB P3.3,DONE ;等INT1變高 SETB TR1 ;啟動計數(shù) DONE1:JB P3.3,DONE1 ;等INT1變低,北京交通大學,34,四、定時器的應用,CLR TR1 ;停止計數(shù) MOV A,

18、TH1 ;存結果 MOV R0,A INC R0 MOV A,TL1; MOV R0,A END,北京交通大學,35,練習題,編程實現(xiàn)利用定時器T1產(chǎn)生一個50Hz的方波,由P1.3輸出,設晶體振蕩器頻率為12MHz。,北京交通大學,36,作業(yè) P118: 2, 9,北京交通大學,37,ORG 8000H START:MOV TMOD,#09H ;GATE=1,方式1,定時 MOV TL0,#00H MOV TH0,#00H WAIT1:JB P3.2,WAIT1 SETB TR0 WAIT2:JNB P3.2,WAIT2 WAIT3:JB P3.2,WAIT3 CLR TR0 MOV R0,TL0 MOV R1,TH0 SJMP $,習題: 1.利用T0門控GATE測量INT0引腳出現(xiàn)的脈沖寬度 脈寬=計數(shù)值X機器周期 設T0方式1,GATE=1,TR0=1,計數(shù)初值=00H,INT0 (P3.2),計數(shù),停止,北京交通大學,38,2.設重復周期大于1ms的低頻脈沖信號從T0(P3.4)輸入。要求P3.4每發(fā)生一次負跳變時,P1.0,P1.1輸出如下波形. 設晶振為6MHz,P3.4 (T0),P1.0,P1.1,500US,1ms,方法:T0方式2計數(shù),初值為FFH。當T

溫馨提示

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

最新文檔

評論

0/150

提交評論