第6章定時器及應(yīng)用_第1頁
第6章定時器及應(yīng)用_第2頁
第6章定時器及應(yīng)用_第3頁
第6章定時器及應(yīng)用_第4頁
第6章定時器及應(yīng)用_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一定時器的應(yīng)用一定時器的應(yīng)用1. 計數(shù)功能的應(yīng)用計數(shù)功能的應(yīng)用 生產(chǎn)線上產(chǎn)品計數(shù)。每個產(chǎn)品通過得到一個脈沖信號,計生產(chǎn)線上產(chǎn)品計數(shù)。每個產(chǎn)品通過得到一個脈沖信號,計數(shù)器記錄脈沖個數(shù),當(dāng)計數(shù)值與設(shè)定值相等,啟動包裝機數(shù)器記錄脈沖個數(shù),當(dāng)計數(shù)值與設(shè)定值相等,啟動包裝機器。器。 檢測轉(zhuǎn)速。電機轉(zhuǎn)動一圈發(fā)出一個脈沖,計數(shù)器記錄一秒檢測轉(zhuǎn)速。電機轉(zhuǎn)動一圈發(fā)出一個脈沖,計數(shù)器記錄一秒時間內(nèi)脈沖個數(shù),顯示轉(zhuǎn)速。時間內(nèi)脈沖個數(shù),顯示轉(zhuǎn)速。2. 定時功能的應(yīng)用定時功能的應(yīng)用 用于實時控制,定時采樣、定時啟動等。當(dāng)定時時間與設(shè)用于實時控制,定時采樣、定時啟動等。當(dāng)定時時間與設(shè)定值相等,執(zhí)行規(guī)定操作。定值相等,執(zhí)行

2、規(guī)定操作。 定時器中的核心部件為可預(yù)置初值計數(shù)器。預(yù)置初值后開始定時器中的核心部件為可預(yù)置初值計數(shù)器。預(yù)置初值后開始計數(shù),直至計數(shù)值歸計數(shù),直至計數(shù)值歸0或產(chǎn)生溢出,可申請中斷?;虍a(chǎn)生溢出,可申請中斷。 計數(shù)器有加計數(shù)器有加 1 計數(shù)或減計數(shù)或減1計數(shù)兩種形式。計數(shù)兩種形式。K1K2可預(yù)置初值計數(shù)器可預(yù)置初值計數(shù)器中斷中斷請求請求功能功能選擇選擇啟動啟動控制控制內(nèi)部時鐘脈沖內(nèi)部時鐘脈沖(定時)(定時)外部輸入脈沖外部輸入脈沖(計數(shù))(計數(shù))溢出信號溢出信號計數(shù)脈沖計數(shù)脈沖計數(shù)初值計數(shù)初值例:例:設(shè)設(shè)CTC中為中為8位加位加1計數(shù)器。按要求選擇功能和初值。計數(shù)器。按要求選擇功能和初值。1. 要求

3、檢測到要求檢測到100個脈沖,發(fā)中斷請求,通知個脈沖,發(fā)中斷請求,通知CPU。答:選計數(shù)功能,計數(shù)初值答:選計數(shù)功能,計數(shù)初值X=28-100=156 。2. 要求每隔要求每隔200 s時間,發(fā)一次中斷請求。設(shè)內(nèi)部時鐘周期時間,發(fā)一次中斷請求。設(shè)內(nèi)部時鐘周期1 s。答:選定時功能,計數(shù)初值為答:選定時功能,計數(shù)初值為X=28-(200 s / 1 s) =56 。二、定時器的基本工作原理二、定時器的基本工作原理 89C51有兩個有兩個16位的位的CTC,稱為定時器,稱為定時器0(T0)和定時器)和定時器1(T1),可編程選擇其功能(定時器或計數(shù)器)。),可編程選擇其功能(定時器或計數(shù)器)。 此

4、外,工作方式、定時時間、計數(shù)值、啟動、中斷請求等都可此外,工作方式、定時時間、計數(shù)值、啟動、中斷請求等都可以由程序設(shè)定。以由程序設(shè)定。一、結(jié)構(gòu)和工作原理一、結(jié)構(gòu)和工作原理CPUTCON (88H)TH1TL1TH0TL0INT1(P3.3)INT0(P3.2)中斷中斷T1 (P3.5)定時器定時器 1定時器定時器 0 0溢溢出出啟啟動動(8DH)(8BH)(8CH)(8AH)啟啟動動內(nèi)部總線內(nèi)部總線溢出溢出 工作方式工作方式工工作作方方式式70T0 (P3.4)70TMOD (89H)707089C51定時定時/計數(shù)器邏輯結(jié)構(gòu)圖計數(shù)器邏輯結(jié)構(gòu)圖CPUTCON (88H)TH1TL1TH0TL0

5、INT1(P3.3)INT0(P3.2)中斷中斷T1 (P3.5)定時器定時器 1定時器定時器 0 0溢溢出出啟啟動動(8DH)(8BH)(8CH)(8AH)啟啟動動內(nèi)部總線內(nèi)部總線溢出溢出 工作方式工作方式工工作作方方式式70T0 (P3.4)70TMOD (89H)707089C51定時定時/計數(shù)器邏輯結(jié)構(gòu)圖計數(shù)器邏輯結(jié)構(gòu)圖 89C51的整個的整個CTC由由T0、T1、定時器方式寄存器、定時器方式寄存器TMOD和定和定時器控制寄存器時器控制寄存器TCON組成。組成。 T0,T1是是16位加法計數(shù)器,分別由兩個位加法計數(shù)器,分別由兩個8位位SFR組成:組成:T0由由TH0和和TL0組成。組成

6、。T1由由TH1和和TL1組成。組成。每個寄存器均可單獨訪問。每個寄存器均可單獨訪問。 T0或或T1用作計數(shù)器時,對芯片引腳用作計數(shù)器時,對芯片引腳T0(P3.4)或)或T1(P3.5)上輸入脈沖計數(shù),每輸入一個脈沖,加法計數(shù)器加上輸入脈沖計數(shù),每輸入一個脈沖,加法計數(shù)器加1。(外部。(外部脈沖的下降沿有效,最高頻率脈沖的下降沿有效,最高頻率11INT0中斷TH08位TF0TL05位定時器定時器0(或定時器(或定時器1)在方式)在方式1時的邏輯電路結(jié)構(gòu)圖時的邏輯電路結(jié)構(gòu)圖振蕩器12C/T=0C/T=1控制T0TR0GATE&11INT0中斷TH08位TF0TL08位二、方式二、方式1 16位定

7、時位定時/計數(shù)器。計數(shù)器。 TH0/TH1 8位和位和TL0/TL18位組成位組成16位加位加1計數(shù)器。計數(shù)器。 最大計數(shù)值:最大計數(shù)值: M=216=65536。 方式方式1結(jié)構(gòu)與操作幾乎完全與方式結(jié)構(gòu)與操作幾乎完全與方式0相同,惟一差別是二者計相同,惟一差別是二者計數(shù)位數(shù)不同。數(shù)位數(shù)不同。#4三、方式三、方式2 自動恢復(fù)初值自動恢復(fù)初值8位定時位定時/計數(shù)器。計數(shù)器。TL0/TL1為為8位加位加1計數(shù)器,計數(shù)器,TH0/TH1為為8位初值暫存器。位初值暫存器。 最大計數(shù)值:最大計數(shù)值: M=28=256 。定時器定時器0(或定時器(或定時器1)方式)方式2時的邏輯結(jié)構(gòu)圖時的邏輯結(jié)構(gòu)圖振蕩器

8、12控制T0TR0GATE&11INT0中斷TF0TH0(8位)重新輸入TL0(8位)C/T=0C/T=1定時器定時器0具方式具方式3時的邏輯結(jié)構(gòu)時的邏輯結(jié)構(gòu)振蕩器12控制T0TR0GATE&11INT0中斷TF0TL0(8位)121fosc中斷TF1TH0(8位)TR1C/T 0C/T 1121fosc121fosc四、方式四、方式3 (僅(僅T0有)有) 定時器定時器0被拆成兩個獨立的被拆成兩個獨立的8位計數(shù)器位計數(shù)器TL0和和TH0。 TL0占用原占用原T0的控制位、引腳和中斷源,即的控制位、引腳和中斷源,即GATE、TR0、TF0和和T0(P3.4)引腳、)引腳、INT0(P3.2)引

9、腳。除計數(shù)器位數(shù))引腳。除計數(shù)器位數(shù)不同于方式不同于方式0、1外,其功能、操作與方式外,其功能、操作與方式0、1完全相同,可完全相同,可定時亦可計數(shù)。定時亦可計數(shù)。 TH0占用原占用原T1的控制位的控制位TF1和和TR1,同時還占用了,同時還占用了T1的中斷的中斷源,其啟動和關(guān)閉僅受源,其啟動和關(guān)閉僅受TR1控制??刂?。TH0只能用來定時,不能只能用來定時,不能用作對外部脈沖進行計數(shù)。用作對外部脈沖進行計數(shù)。定時器定時器0具方式具方式3時的邏輯結(jié)構(gòu)時的邏輯結(jié)構(gòu)振蕩器12控制T0TR0GATE&11INT0中斷TF0TL0(8位)121fosc中斷TF1TH0(8位)TR1C/T 0C/T 11

10、21fosc121fosc T0方式方式3時,時,T1仍可設(shè)置為方式仍可設(shè)置為方式0、1、2。但因。但因TR1、TF1已已被被TH0占用,此時,占用,此時,T1僅由控制位僅由控制位C/T切換其定時或計數(shù)功能,切換其定時或計數(shù)功能,當(dāng)計數(shù)器溢出時,只能將輸出送往串行口,此時當(dāng)計數(shù)器溢出時,只能將輸出送往串行口,此時T1一般用作串一般用作串口波特率發(fā)生器或不需要中斷的場合??诓ㄌ芈拾l(fā)生器或不需要中斷的場合。 因因T1的的TR1被占用,其啟動和關(guān)閉較為特殊,當(dāng)設(shè)置好工被占用,其啟動和關(guān)閉較為特殊,當(dāng)設(shè)置好工作方式時,作方式時,T1即自動啟動。若要停止,只需送入一個設(shè)置即自動啟動。若要停止,只需送入一

11、個設(shè)置T1為為方式方式3的方式字即可。的方式字即可。定時器定時器0具方式具方式3時的邏輯結(jié)構(gòu)時的邏輯結(jié)構(gòu)振蕩器12控制T0TR0G A TE&11IN T0中斷TF0TL0(8 位 )121fosc中斷TF1TH 0(8 位 )TR1C/T 0C/T 1121fosc121fosc 由于定時器的功能是由軟件編程確定的,所以,一般在使用由于定時器的功能是由軟件編程確定的,所以,一般在使用前都要對其初始化。初始化驟如下:前都要對其初始化。初始化驟如下: 一、定時器的初始化一、定時器的初始化1. 確定工作方式確定工作方式對對TMOD設(shè)置設(shè)置 按實際需要選擇定時按實際需要選擇定時/計數(shù)功能計數(shù)功能 按

12、時間或計數(shù)長度選擇方式按時間或計數(shù)長度選擇方式 采用內(nèi)部啟動還是外部啟動采用內(nèi)部啟動還是外部啟動 計數(shù)初值計算計數(shù)初值計算 計數(shù)功能:計數(shù)初值計數(shù)功能:計數(shù)初值X= 2n -計數(shù)值計數(shù)值 定時功能:計數(shù)初值定時功能:計數(shù)初值X= 2n - t/MC n計數(shù)器長度(計數(shù)器長度(8/13/16)t 定時時間,定時時間,MC機器周期(機器周期(12/fosc)2. 預(yù)置定時或計數(shù)初值預(yù)置定時或計數(shù)初值直接將初值寫入直接將初值寫入TH0、TL0或或TH1、TL1。 預(yù)置初值指令:預(yù)置初值指令:MOV TH0/TH1,#XH MOV TL0/TL1,#XL4. 啟動定時啟動定時/計數(shù)器工作計數(shù)器工作將將

13、TR0或或TR1置置“1”。 GATE = 0時,直接由軟件置位啟動;時,直接由軟件置位啟動; GATE = 1時,除軟件置位外,還必須在外中斷引腳時,除軟件置位外,還必須在外中斷引腳INT0或或INT1處加上高電平才能啟動。處加上高電平才能啟動。3. 根據(jù)需要開啟定時根據(jù)需要開啟定時/計數(shù)器中斷計數(shù)器中斷直接對直接對IE寄存器賦值。寄存器賦值。二、定時二、定時/計數(shù)器編程格式計數(shù)器編程格式MOV TMOD,# 方式字方式字;選擇方式;選擇方式MOV TH0/TH1,#XH;預(yù)置初值;預(yù)置初值MOV TL0/TL1,#XL(SETB EA);根據(jù)需要開中;根據(jù)需要開中(SETB ET0/ET1

14、)SETB TR0/TR1 ;啟動定時器;啟動定時器1. 初始化編程格式初始化編程格式注意:注意:方式方式0(13位):位):TL0/TL1的低的低5位有效位有效方式方式2(8位)位) :TL0/TL1=TH0/TH1=X ;定時器初始化;定時器初始化WAIT: JBC TF0/TF1,PT ;檢測溢出標(biāo)志;檢測溢出標(biāo)志SJMP WAITPT: MOV TH0/TH1,#XH ;重裝初值;重裝初值MOV TL0/TL1, #XL ;溢出處理;溢出處理SJMP WAIT2. 溢出處理編程格式溢出處理編程格式 查詢方式:先查詢定時器溢出標(biāo)志,再進行溢出處理。查詢方式:先查詢定時器溢出標(biāo)志,再進行溢

15、出處理。注意:注意:方式方式2時,不必時,不必重裝初值。重裝初值。ORG 0000HLJMP MAINORG 000BH(001BH);T0/T1中斷入口中斷入口LJMP PTSMAIN: ;初始化后執(zhí)行其他程序;初始化后執(zhí)行其他程序PTS:MOV TH0/TH1,#XH ;重裝初值(中斷服務(wù)程序);重裝初值(中斷服務(wù)程序)MOV TL0/TL1, #XL ;溢出處理;溢出處理RETI 中斷方式:初始化后執(zhí)行其他任務(wù),中斷服務(wù)程序處理溢出。中斷方式:初始化后執(zhí)行其他任務(wù),中斷服務(wù)程序處理溢出。注意:注意:方式方式2時,不必時,不必重裝初值。重裝初值。例例1:由由P1.0輸出方波信號,周期為輸出

16、方波信號,周期為2ms,設(shè),設(shè)fosc=12MHz。2ms解:每隔解:每隔1ms改變一次改變一次P1.0的輸出狀態(tài)。用的輸出狀態(tài)。用T0非門控方式非門控方式1定時。定時。 定時初值:定時初值:X = 216 - t/MC = 216 -1000/1 = FC18H START:MOVTMOD,#MOVTH0,#MOVTL0,#SETBTR0 LOOP:JBCTF0,PTF0SJMPLOOP PTF0: CPLP1.0MOVTL0,#MOVTH0,#SJMPLOOP三、應(yīng)用舉例三、應(yīng)用舉例 查詢方式:查詢方式: ORG0000HAJMPMAINORG000BHAJMPPT0INTORG0100H

17、 MAIN:MOVSP,#60HMOVTMOD,#MOVTH0,#MOVTL0,#SETBEASETBET0SETBTR0 HERE:SJMPHERE PT0INT:CPLP1.0 MOVTL0,#MOVTH0,#RETI 中斷方式中斷方式例例2: P1.7驅(qū)動驅(qū)動LED亮亮1秒滅秒滅1秒地閃爍,設(shè)秒地閃爍,設(shè)fosc=6MHz。長定時方法:增加一個硬件計數(shù)器或一個軟件計數(shù)器。長定時方法:增加一個硬件計數(shù)器或一個軟件計數(shù)器。 硬件計數(shù)器:硬件計數(shù)器: 由由T0負(fù)責(zé)在負(fù)責(zé)在P1.0腳上產(chǎn)生腳上產(chǎn)生100ms的方波,的方波,T1計計數(shù)數(shù)P1.0腳上的負(fù)跳邊次數(shù),計滿腳上的負(fù)跳邊次數(shù),計滿10個跳邊

18、恰好為個跳邊恰好為1秒,每隔秒,每隔1秒對秒對P1.7腳取反一次。腳取反一次。START: MOV TMOD,#61H MOV TL1,#0F6H MOV TH1,#0F6H CLR P1.0 SETB TR1LOOP1: CPL P1.7LOOP2 : MOV TL0,#58H MOV TH0,#9EH SETB TR0LOOP3: JBC TF0,LOOP4 SJMP LOOP3LOOP4: CPL P1.0 JBC TF1,LOOP1 SJMP LOOP2100ms10個個軟件計數(shù)器:軟件計數(shù)器: T0定時定時100ms,每溢出一次計數(shù)單元,每溢出一次計數(shù)單元R0增增1,計,計滿滿10個

19、(恰好為個(恰好為1秒)對秒)對P1.7腳取反一次。腳取反一次。START: MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,# 3CH SETB TR0 MOV R0,#0LOOP: JNB TF0,LOOP CLR TF0 INC R0 CJNE R0,#10,LOOP1 CPL P1.7 MOV R0,#0LOOP1 : MOV TL0,#0B0H MOV TH0,# 3CH SJMP LOOP P1.78031+5V解:解: INT1引腳輸入被檢測信號,記錄在正脈沖的時間內(nèi)包含引腳輸入被檢測信號,記錄在正脈沖的時間內(nèi)包含機器脈沖個數(shù)。機器脈沖個數(shù)。 設(shè)脈寬小于設(shè)脈寬小于65.5ms等待查詢等待查詢I

溫馨提示

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

評論

0/150

提交評論