單片機 第五章 單片機的定時器計數(shù)器_第1頁
單片機 第五章 單片機的定時器計數(shù)器_第2頁
單片機 第五章 單片機的定時器計數(shù)器_第3頁
單片機 第五章 單片機的定時器計數(shù)器_第4頁
單片機 第五章 單片機的定時器計數(shù)器_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機第五章單片機的定時器計數(shù)器第一頁,共三十二頁,2022年,8月28日第一節(jié)定時器/計數(shù)器的結構和功能一、結構和功能二、方式寄存器TMOD和控制寄存器TCON第二頁,共三十二頁,2022年,8月28日一、結構和功能

8051單片機內有兩個可編程16位定時器/計數(shù)器,常稱為定時器0和定時器1,簡稱為T0和T1,每個定時計數(shù)器都由兩個8位專用寄存器組成,T0由TH0,TL0組成,T1由TH1,TL1組成,同時還有TCON,TMOD兩個專用寄存器對其進行控制。常用于定時控制、延時、外部計數(shù)和檢測等。1.結構:外部控制門第三頁,共三十二頁,2022年,8月28日2.功能:a.定時:

對機器周期進行計數(shù),即計數(shù)脈沖來自單片機的內部。即每個機器周期產生一個計數(shù)脈沖使得計數(shù)器加1,直至計滿溢出。一個機器周期=12*振蕩周期

12MHZ晶體,計數(shù)周期(機器周期)=1us。即每1us計數(shù)器加l。從開始計數(shù)到溢出這段時間就是“定時”時間。因此,若機器周期一定,計數(shù)初值越大,則定時越短第四頁,共三十二頁,2022年,8月28日b.計數(shù):

對外來脈沖進行計數(shù)。

T0(P3.4)和T1(P3.5)兩個引腳,作為計數(shù)輸入端。 外部輸入的脈沖在出現(xiàn)從1到0的負跳變時有效,計數(shù)器進行加1。 計數(shù)方式下,單片機在每個機器周期的S5P2拍節(jié)時對外部計數(shù)脈沖進行采樣。如果前一個機器周期采樣為高電平,后一個機器周期采樣為低電平,即為一個有效的計數(shù)脈沖。在下一機器周期的S3Pl進行計數(shù)。 即采樣計數(shù)脈沖需要2個機器周期,即24個振蕩周期。因此,計數(shù)脈沖的頻率最高為振蕩脈沖頻率的 1/24第五頁,共三十二頁,2022年,8月28日

TCON8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT01.控制寄存器TCONTF1(TCON.7,8FH位)----定時器T1中斷請求溢出標志位。TF0(TCON.5,8DH位)----定時器T0中斷請求溢出標志位。

TR1(TCON.6,8EH位)----T1運行控制位。

0:關閉T1;1:啟動T1運行。只由軟件置位或清零。TR0(TCON.4,8CH位)----T0運行控制位。

0:關閉T0;1:啟動T0運行。只由軟件置位或清零。 8051設有定時/計數(shù)器應用相關的控制器,即兩個8位專用寄存器TMOD和TCON。定/計工作前,必須經過由CPU將一些命令寫入定/計的初始化過程。

二、方式寄存器TMOD和控制寄存器TCON第六頁,共三十二頁,2022年,8月28日2.方式寄存器TMOD

(不能進行位尋址,沒有位地址)

GATED7D6D5D4D3D2D1D0C/TM1M0C/TM1M0GATETMOD

M1M0工作方式功能說明00方式013位計數(shù)器01方式116位計數(shù)器10方式2自動再裝入8位計數(shù)器11方式3定時器0:分成兩個8位計數(shù)器定時器1:停止計數(shù)C/T----定時器/計數(shù)器方式選擇位。

0:定時器;1:計數(shù)器。GATE----外部門控位。

0:不用外部門,只將TR0/TR1置1來啟動定時器;

1:使用外部門,外部請求信號INT0/INT1(高電平)和TR0/TR1(置1)共同來啟動定時器。定時計數(shù)器1定時計數(shù)器0第七頁,共三十二頁,2022年,8月28日 第八頁,共三十二頁,2022年,8月28日1、方式0(T1,T0)當M1M0兩位為00時,定時/計數(shù)器被選為工作方式0,13位計數(shù)器,其邏輯結構如圖所示??刂普袷幤鳌?2TL0低5位TF0中斷T0端C/

T=0C/

T=1+INT0端GATETR0TH0

高8位第二節(jié)定時器/計數(shù)器的工作方式第九頁,共三十二頁,2022年,8月28日在方式0下,計數(shù)工作方式時,計數(shù)值的范圍是:

1~8192(213)定時工作方式時,定時時間的計算公式為:

(213一計數(shù)初值)×晶振周期×12

或(213一計數(shù)初值)×機器周期若晶振頻率為6MHz,1個機器周期為1/6x10-6x12=2μs則最小定時時間為:最大定時時間為:[213–0]x2μs=16384μs=16.384ms[213–(213-1)]x2μs=2μs第十頁,共三十二頁,2022年,8月28日2、方式1(T1,T0)當M1M0兩位為01時,定時/計數(shù)器被選為工作方式1,16位計數(shù)器,其邏輯結構如圖所示??刂普袷幤鳌?2TL0(8位)TF0中斷T0端C/

T=0C/

T=1+INT0端GATETR0TH0(8位)第十一頁,共三十二頁,2022年,8月28日在方式1下,計數(shù)工作方式時,計數(shù)值的范圍是:

1~65536(216)定時工作方式時,定時時間的計算公式為:

(216一計數(shù)初值)×晶振周期×12

或(216一計數(shù)初值)×機器周期若晶振頻率為6MHz,1個機器周期為1/6x10-6x12=2μs則最小定時時間為:最大定時時間為:[216–(216-1)]x2μs=2μs[216–0]x2μs=131072μs=131.072ms第十二頁,共三十二頁,2022年,8月28日控制振蕩器÷12TL0(8位)TF0中斷T0端C/

T=0C/

T=1+INT0端GATETR0TH0(8位)重新裝入3、方式2(T1,T0)當M1M0兩位為10時,定時/計數(shù)器被選為工作方式2,自動重加載8位計數(shù)器,其邏輯結構如圖所示。方式0和方式1有個共同的特點,就是計數(shù)溢出后計數(shù)器全清0,因此,循環(huán)定時時就需要反復設定計數(shù)器初值,比較麻煩,而方式2具有自動重加載初值的功能,免去很多反復設置初值的工作。第十三頁,共三十二頁,2022年,8月28日在方式2下,計數(shù)工作方式時,計數(shù)值的范圍是:

1~256(28)定時工作方式時,定時時間的計算公式為:

(28一計數(shù)初值)×晶振周期×12

或(28一計數(shù)初值)×機器周期若晶振頻率為6MHz,1個機器周期為1/6x10-6x12=2μs則最小定時時間為:最大定時時間為:[28–(28-1)]x

2μs=2μs[28–0]x

2μs=512μs第十四頁,共三十二頁,2022年,8月28日控制振蕩器÷12TL0(8位)TF0中斷T0端C/

T=0C/

T=1+INT0端GATETR0TH0(8位)1/12fosc1/12foscTF1中斷1/12foscTR14、方式3(T0)當M1M0兩位為11時,定時/計數(shù)器被選為工作方式3,只用于定時器0,T0被分成兩個獨立的8位計數(shù)器,其邏輯結構如圖所示。定時器T0方式3結構第十五頁,共三十二頁,2022年,8月28日控制振蕩器÷12TL1(8位)串行口T1(P3.5)端C/

T=0C/

T=1TH1(8位)重新裝入振蕩器÷12TL1(8/5位)T1(P3.5)端C/

T=0C/

T=1TH1(8位)串行口定時器T0用作方式3時,T1仍可用于方式0~2結構這時,僅用C/T來切換定時或計數(shù)。T1方式0或1T1方式2第十六頁,共三十二頁,2022年,8月28日在方式0下,計數(shù)工作方式時,計數(shù)值的范圍是:

1~8192(213)213-計數(shù)初值=計數(shù)的脈沖數(shù)定時工作方式時,定時時間的計算公式為:

(213一計數(shù)初值)×晶振周期×12=定時時間或(213一計數(shù)初值)×機器周期=定時時間若晶振頻率為6MHz,1個機器周期為1/6x10-6x12=2μs則最小定時時間為:最大定時時間為:[213–(213-1)]x2μs=2μs[213–0]x2μs=16384μs=16.384ms第三節(jié)定時/計數(shù)器應用我們編程時,通常是求計數(shù)初值第十七頁,共三十二頁,2022年,8月28日(1)計算計數(shù)初值:例1:設單片機晶振頻率Fosc=6MHz,使用定時器1以方式0產生周期為200μs的等寬正方波脈沖,并由P1.0輸出。以查詢方式完成。

欲產生200μs的等寬正方波脈沖,只需在P1.0端以100μs為周期交替輸出高低電平即可實現(xiàn),為此定時時間應為100μs。使用6MHz晶振,則一個機器周期為2μs。方式0為13位計數(shù)結構。設待求的計數(shù)初值為x,則:

(213—x)×2μs=100μs,求解得:

x=01110B。低5位和高8位分別轉換為十六進制數(shù),高8位為FEH,低5位為0EH。其中高8位放入THl,即THl=FEH;低5位放入TLl,即TL1=0EH。(2)TMOD寄存器初始化為把定時器/計數(shù)器1設定為方式0,則MlM0=00H;為實現(xiàn)定時功能,應使C/T=0;為實現(xiàn)定時器/計數(shù)器1的運行控制,則GATE=0。定時器/計數(shù)器0不用,有關位設定為0。因此TMOD寄存器應初始化為00H。由定時器控制寄存器TCON中的TR1位控制定時的啟動和停止:

TR1=1啟動,TR1=0停止第十八頁,共三十二頁,2022年,8月28日(4)程序設計

MOV TMOD,#00H MOV TH1,#0FEH MOV TL1,#0EH SETB TR1LOOP1: JBC TF1,LOOP2 SJMP LOOP1LOOP2: MOV TL1,#0EH MOV TH1,#0FEH

CLR TF1 CPL P1.0 SJMP LOOP1

第十九頁,共三十二頁,2022年,8月28日在方式1下,計數(shù)工作方式時,計數(shù)值的范圍是:

1~65536(216)

216-計數(shù)初值=計數(shù)的脈沖數(shù)定時工作方式時,定時時間的計算公式為:

(216一計數(shù)初值)×晶振周期×12=定時時間或(216一計數(shù)初值)×機器周期=定時時間若晶振頻率為6MHz,1個機器周期為1/6x10-6x12=2μs則最小定時時間為:最大定時時間為:[216–(216-1)]x2μs=2μs[216–0]x2μs=131072μs=131.072ms第二十頁,共三十二頁,2022年,8月28日例2:設單片機晶振頻率Fosc=12MHz,使用定時器0以方式1產生周期為2S的等寬正方波脈沖,并由P1.0輸出。以查詢方式完成。

(1)計算計數(shù)初值

設待求的計數(shù)初值為x,則:

(216—x)×1μs=50000μs,求解得:

x=15536D=3CB0H。即TH0=3CH;TL0=B0H。(2)TMOD寄存器初始化

TMOD=00000001B第二十一頁,共三十二頁,2022年,8月28日(3)程序設計START: MOV R2,#20 MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB TR0LOOP1:JBC TF0,LOOP2 SJMP LOOP1LOOP2:MOV TL0,#0B0H MOV TH0,#3CH DJNZ R2,LOOP1 CPL P1.0 MOV R2,#20 SJMP LOOP1第二十二頁,共三十二頁,2022年,8月28日在方式2下,計數(shù)工作方式時,計數(shù)值的范圍是:

1~256(28)

28-計數(shù)初值=計數(shù)的脈沖數(shù)定時工作方式時,定時時間的計算公式為:

(28一計數(shù)初值)×晶振周期×12=定時時間或(28一計數(shù)初值)×機器周期=定時時間若晶振頻率為6MHz,1個機器周期為1/6x10-6x12=2μs則最小定時時間為:最大定時時間為:[28–(28-1)]x

2μs=2μs[28–0]x

2μs=512μs第二十三頁,共三十二頁,2022年,8月28日例3:使用定時器0以工作方式2產生100μs定時,在P1.0輸出周期為200μs的連續(xù)方波。已知晶振頻率fosc=6MHz。(1)計算計數(shù)初值

6MHz晶振下,一個機器周期為2μs,以TH0作重裝載的預置寄存器,TL0作8位計數(shù)器,假設計數(shù)初值為x。則:

(28—x)×2μs=100μs求解得:X=206D=11001110B=CEH把CEH分別裝入TH0和TL0中:TH0=CEH,TL0=CEHTMOD寄存器初始化(2)定時器/計數(shù)器0為工作方式2,MlM0=10;為實現(xiàn)定時功能C/T=0;依題意GATE=0;定時器/計數(shù)器1不用,有關位設定為0。綜上情況TMOD寄存器的狀態(tài)應為02H。(3)程序設計(查詢方式):

MOV TMOD,#02H MOV TH0,#0CEH MOV TL0,#0CEH SETB TR0LOOP: JBC TF0,LOOP1 SJMP LOOPLOOP1: CPL P1.0 SJMP LOOP第二十四頁,共三十二頁,2022年,8月28日例4:用定時器l以工作方式2計數(shù),每計100次進行累計器加1操作.(1)計算計數(shù)初值.28—100=156D=9CHTH1=9CH,TL1=9CHTMOD寄存器初始化:MlM0=10,C/T=1,GATE=0因此TMOD=60H(2)程序設計序設計

CLR A MOV TMOD,#60H MOV TH1,#9CH MOV TL1,#9CH SETB TR1DEL: JBC TF1,LOOP SJMP DELLOOP: INC A SJMP DEL第二十五頁,共三十二頁,2022年,8月28日例5:(應用兩個定時器)設重復周期大于1ms的低頻脈沖信號從P3.5引腳(T1)輸入。要求P3.5每發(fā)生1次負跳變時,P1.0輸出1個500μs同步負脈沖,同時P1.1輸出1個1ms的同步正脈沖,其波形圖如下,設fosc=6MHz。P3.5P1.0P1.11ms500μs1ms計算計數(shù)初值:定時器T0定時500us,使用方式2,T1用于計數(shù)1個脈沖(每一次負跳變發(fā)生一次變化)因此同時使用兩個定時計數(shù)器,T0:(28-x)×2us=500usx=6D=06HTH0=06H,TL0=06HT1:X=28-1X=255D=0FFHTH1=0FFH,TL1=0FFHT0用于定時C/T=0,方式2M1M0=10,GATE=0T1用于計數(shù)C/T=1,方式2M1M0=10,GATE=0TMOD寄存器初始化:TMOD=62H第二十六頁,共三十二頁,2022年,8月28日 ORG 0030HSTART1: MOV TMOD,#62H MOV TH0,#06H;T0,定時500us MOV TL0,#06H MOV TH1,#0FFH;T1,計數(shù)一個脈沖

MOV TL1,#0FFH SETB P1.0 CLR P1.1 SETB TR1;啟動T1LP1: JBC TF1,NEX1 SJMP LP1

NEX1: CLR P1.0 SETB P1.1 SETB TR0;啟動T0LP2: JBC TF0,NEX2;定時500us SJMP LP2NEX2: SETB P1.0LP3: JBC TF0,NEX3 SJMP LP3NEX3: CLR P1.1;定2次500us共1ms CLR TR0;T0停止工作

AJMP LP1P3.5P1.0P1.11ms500μs1ms第二十七頁,共三十二頁,2022年,8月28日例6:利用定時器0控制產生周期為2ms和100ms的方波信號,分別由P1.0和P1.1引腳輸出,采用中斷方式。系統(tǒng)時鐘為12MHz。分析:方波為2ms,定時時間為1ms。機器周期為1μs,采用方式0,則計數(shù)初值為

X=213TH0=E0H,TL0=18H

方波為100ms,定時時間為50ms,可采用50次1ms定時第二十八頁,共三十二頁,2022年,8月28日ORG0000HLJMPBEGINORG000BHLJMPTOINTORG2000HBEGIN:MOVTMOD,#00HMOV

溫馨提示

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

評論

0/150

提交評論