修改NEW第六章-MCS-51定時器與計數(shù)器_第1頁
修改NEW第六章-MCS-51定時器與計數(shù)器_第2頁
修改NEW第六章-MCS-51定時器與計數(shù)器_第3頁
修改NEW第六章-MCS-51定時器與計數(shù)器_第4頁
修改NEW第六章-MCS-51定時器與計數(shù)器_第5頁
已閱讀5頁,還剩69頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第六章第六章 MCS-51單片機定時單片機定時/計數(shù)器計數(shù)器問題的提出 什么是什么是“定時定時”? 回答:定時就是通過硬件或軟件的定時就是通過硬件或軟件的方法產(chǎn)生一個時間基準,以方法產(chǎn)生一個時間基準,以此來實現(xiàn)系統(tǒng)的定時或延時此來實現(xiàn)系統(tǒng)的定時或延時控制??刂?。 n6.1定時定時/計數(shù)器的結構和工作原理計數(shù)器的結構和工作原理n6.2定時定時/計數(shù)器的功能計數(shù)器的功能n6.3定時定時/計數(shù)器的控制計數(shù)器的控制n6.4定時定時/計數(shù)器工作方式及其設置計數(shù)器工作方式及其設置n6.5定時定時/ /計數(shù)器應用舉例計數(shù)器應用舉例8051內(nèi)部集成了內(nèi)部集成了可編程定時可編程定時/計數(shù)器,稱計數(shù)器,稱為定時

2、為定時/計數(shù)器計數(shù)器0(T0)和定時)和定時/計數(shù)器計數(shù)器1(T1)。)。圖6-1 MCS-51定時器/計數(shù)器邏輯結構圖:是:是計數(shù)器計數(shù)器,分別由兩個八位專用,分別由兩個八位專用寄存器寄存器和和組成。組成。:是:是計數(shù)器,計數(shù)器,分別由兩個八位專用寄存器分別由兩個八位專用寄存器和和組成。組成。用來設置定用來設置定時器的時器的用來控制定時器的用來控制定時器的。6.1 定時定時/計數(shù)器的結構和工作原理計數(shù)器的結構和工作原理定時定時/ /計數(shù)器的計數(shù)器的核心部件核心部件是一個加是一個加1 1計數(shù)器,計數(shù)器, 外部脈沖源外部脈沖源 系統(tǒng)的時鐘振蕩器系統(tǒng)的時鐘振蕩器其脈沖有兩個來源:其脈沖有兩個來源:

3、振蕩器振蕩器12 加加1 1計數(shù)器計數(shù)器TFx中斷中斷引腳引腳TX端端C/T=0C/T=0C/T=1C/T=1 控制信號控制信號定時定時/ /計數(shù)器的原理計數(shù)器的原理6.2 定時定時/計數(shù)器的功能計數(shù)器的功能 一、一、定時功能定時功能用作定時器用作定時器n是通過內(nèi)部計數(shù)器的計數(shù)來實現(xiàn)的,計數(shù)脈沖來是通過內(nèi)部計數(shù)器的計數(shù)來實現(xiàn)的,計數(shù)脈沖來自單片機內(nèi)部的時鐘振蕩器,其頻率是振蕩頻率自單片機內(nèi)部的時鐘振蕩器,其頻率是振蕩頻率的的1/12,即每個機器周期產(chǎn)生一個計數(shù)脈沖,計,即每個機器周期產(chǎn)生一個計數(shù)脈沖,計數(shù)器加數(shù)器加1,直至計滿溢出。,直至計滿溢出。振蕩器振蕩器12 加加1 1計數(shù)器計數(shù)器TFx

4、中斷中斷引腳引腳TX端端C/T=0C/T=0C/T=1C/T=1 控制信號控制信號對對8051時鐘信號的時鐘信號的12分頻信號進行計數(shù)分頻信號進行計數(shù)。6.2 定時定時/計數(shù)器的功能計數(shù)器的功能 二、二、計數(shù)功能計數(shù)功能用作計數(shù)器用作計數(shù)器n計數(shù)脈沖來自外部輸入引腳計數(shù)脈沖來自外部輸入引腳T0(P3.4)或或T1(P3.5) ,當輸入信號發(fā)生一個由當輸入信號發(fā)生一個由1到到0的跳變時,計數(shù)器加的跳變時,計數(shù)器加1。由于識別一個從。由于識別一個從1到到0的跳變要用兩個機器周的跳變要用兩個機器周期,所以最快的計數(shù)頻率是振蕩器頻率的期,所以最快的計數(shù)頻率是振蕩器頻率的1/24。振蕩器振蕩器12 加加

5、1 1計數(shù)器計數(shù)器TFx中斷中斷引腳引腳TX端端C/T=0C/T=0C/T=1C/T=1 控制信號控制信號6.2 定時定時/計數(shù)器的功能計數(shù)器的功能 二、二、計數(shù)功能計數(shù)功能用作計數(shù)器用作計數(shù)器n計數(shù)脈沖來自外部輸入引腳計數(shù)脈沖來自外部輸入引腳T0(P3.4)或或T1(P3.5) ,當輸入信號發(fā)生一個由當輸入信號發(fā)生一個由1到到0的跳變時,計數(shù)器加的跳變時,計數(shù)器加1。由于識別一個從。由于識別一個從1到到0的跳變要用兩個機器周的跳變要用兩個機器周期,所以最快的計數(shù)頻率是振蕩器頻率的期,所以最快的計數(shù)頻率是振蕩器頻率的1/24。因此外部脈沖的最高頻率不能超過振蕩頻率的因此外部脈沖的最高頻率不能超

6、過振蕩頻率的1/24,如如fosc=12MHz,則外部事件脈沖頻率不,則外部事件脈沖頻率不能能 于于500kHz,否則否則 CPU無法識別一次跳變。無法識別一次跳變。高高(1) 例如某機械零件的熱處理工藝曲線為:例如某機械零件的熱處理工藝曲線為:溫度溫度開始定時開始定時保溫保溫5分鐘分鐘淬火淬火清洗清洗開始定時開始定時回火回火3小時小時空冷空冷實際控制可以由單實際控制可以由單片機定時發(fā)出信號片機定時發(fā)出信號控制自動完成整個控制自動完成整個工藝過程。工藝過程。: 例如一啤酒生產(chǎn)線,如下圖所示:例如一啤酒生產(chǎn)線,如下圖所示:計數(shù)計數(shù)2424瓶瓶光電信號檢測光電信號檢測2424瓶裝完申請中斷瓶裝完申

7、請中斷轉入中斷服務程序裝箱轉入中斷服務程序裝箱輸送帶輸送帶6.3 定時定時/計數(shù)器的控制計數(shù)器的控制涉及涉及3個寄存器:個寄存器:1.定時器控制寄存器:定時器控制寄存器:TCON2.定時器方式寄存器:定時器方式寄存器:TMOD3.定時器初值寄存器:定時器初值寄存器:TH0 TL0 TH1 TL11. 定時器控制寄存器定時器控制寄存器TCON D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0l TF0和和TF1計數(shù)溢出標志位。計數(shù)溢出標志位。l TR0和和TR1定時器運行控制位定時器運行控制位。 TR0(TR1)=0 停止定時停止定時/計數(shù)器工作計數(shù)器工作 TR0

8、(TR1)=1 啟動定時啟動定時/計數(shù)器工作計數(shù)器工作2. 定時器方式寄存器定時器方式寄存器TMOD 位位 7 6 5 4 3 2 1 0 GATE C/T M1 M0 GATE C/T M1 M0 定時器定時器1 定時器定時器01 計數(shù)計數(shù) ; 0 定時定時 門控位,為門控位,為1時要求時要求INTi引腳高電平才計數(shù)引腳高電平才計數(shù)GATE:門控位,用來控制定時器門控位,用來控制定時器/計數(shù)器的啟動是計數(shù)器的啟動是否受外部中斷請求信號的影響。否受外部中斷請求信號的影響。GATE=0,不受影響,不受影響,僅由控制位僅由控制位TRx控制;控制;GATE=1,受,受TRx和外部中斷請求信號共同控制

9、。和外部中斷請求信號共同控制。lC/T:選擇定時器功能還是計數(shù)器功能。選擇定時器功能還是計數(shù)器功能。 C/T=1 選擇選擇計數(shù)器計數(shù)器功能功能 C/T=0 選擇選擇定時器定時器功能功能 (計出現(xiàn)在計出現(xiàn)在T0或或T1引腳上的負跳變引腳上的負跳變) ( (計機器周期計機器周期) )M1 M0方式方式說明說明 0 00TLx低低5位與位與THx8位構成位構成13位計數(shù)器位計數(shù)器 0 11TLx與與THx構成構成16位計數(shù)器位計數(shù)器 1 02可自動重裝初值的可自動重裝初值的8位計數(shù)器位計數(shù)器 1 13定時器定時器0分成兩個分成兩個8位獨立計數(shù)器位獨立計數(shù)器定時器定時器1停止計數(shù)停止計數(shù)lM1M0:指

10、定定時指定定時/計數(shù)器的工作方式計數(shù)器的工作方式,可形成可形成四種編碼,對應四種工作方式:四種編碼,對應四種工作方式: 例例6-1: 某一系統(tǒng)使某一系統(tǒng)使T1作為定時器,采用方式作為定時器,采用方式2,使使T0作為計數(shù)器采用方式作為計數(shù)器采用方式1,T0、T1的門控位均的門控位均為為0,請設置,請設置TMOD的值。的值。 0 0 1 0 0 1 0 1 即:即:TMOD=25H TMODGATEC/TM1M0GATEC/TM0M1D7D6D5D4D3D1D2D0T1方式控制T0方式控制 用于存放計數(shù)初值,具有自動加用于存放計數(shù)初值,具有自動加1功能,加滿后溢功能,加滿后溢出,它們的字節(jié)地址是出

11、,它們的字節(jié)地址是:根據(jù)定時器根據(jù)定時器/計數(shù)器工作方式,計數(shù)長度可分別選計數(shù)器工作方式,計數(shù)長度可分別選擇擇:8位,位,13位,位,16位。位。3.定時器初值寄存器定時器初值寄存器 TH0 TL0 TH1 TL1 6.4 定時定時/計數(shù)器的工作方式及其設置計數(shù)器的工作方式及其設置T0有方式有方式0、1、2、3四種;四種;T1有方式有方式0、1、2三種。三種。51的定時器的定時器/計數(shù)器共有四種工作方式,計數(shù)器共有四種工作方式,其中:其中: 6.4.1 工作方式及其特點工作方式及其特點 定時范圍:定時范圍: 計數(shù)范圍:計數(shù)范圍: 18192 定時范圍:定時范圍: 計數(shù)范圍計數(shù)范圍: 16553

12、6 定時范圍:定時范圍: 計數(shù)范圍:計數(shù)范圍: 1256 (注:(注:Tp為一個機器周期的時間)為一個機器周期的時間)1、方式、方式0(以(以T0為例)為例)13位定時器位定時器/計數(shù)器計數(shù)器TMOD00M0M1C/TGATEINT0(P3.2)T0(P3.4)C/T=1C/T=0振蕩器 12控制TL0(低5位)TH0TCONTF0TR 0中斷圖 6-4 方式 0(13位計數(shù)器)(高8位)S1S2TL0的高的高3位位沒有用沒有用C/T=1,S1接下面,接下面,T0作計數(shù)器,對作計數(shù)器,對P3.4引腳輸引腳輸入的外部脈沖計數(shù),當脈沖發(fā)生負跳變時,計數(shù)入的外部脈沖計數(shù),當脈沖發(fā)生負跳變時,計數(shù)器加

13、器加1,計數(shù)值公式為:,計數(shù)值公式為: N=213 X=8192 X 其中:其中:N為計數(shù)值,為計數(shù)值,X是是THx、TLx的初值。的初值。 X=時,時,N最小值最小值= ; X= 時,時,N最大值最大值=。 則則N的范圍:的范圍:。討論計數(shù)方式:討論計數(shù)方式:C/T=0時,時, S1接上面,接上面,T0作定時器,對機器周期作定時器,對機器周期Tp計數(shù)。計數(shù)。v 求定時時間由下式確定:求定時時間由下式確定: Tc=NTp=(213 X)Tp= (8192 X)Tp 其中:其中:Tc為定時時間;為定時時間;N為需要計數(shù)的次數(shù);為需要計數(shù)的次數(shù);X為計數(shù)初值為計數(shù)初值v 求計數(shù)初值計算公式:求計數(shù)

14、初值計算公式: X=213 Tc/Tp=8192 Tc/Tp2、方式、方式1(以(以T0為例)為例)16位定時器位定時器/計數(shù)器計數(shù)器TMOD10M0M1C/TGATEINT0(P3.2)T0(P3.4)C/T=1C/T=0振蕩器12控制TL0(8位)TH0(8位)TCONTF0TR0中斷圖6-5 方式1(16位計數(shù)器)C/T=1,S1接下面,接下面,T0作計數(shù)器,對作計數(shù)器,對P3.4引腳輸引腳輸入的外部脈沖計數(shù),當脈沖發(fā)生負跳變時,計數(shù)器入的外部脈沖計數(shù),當脈沖發(fā)生負跳變時,計數(shù)器加加1,計數(shù)值公式為:,計數(shù)值公式為: N=216 X=65536 X 其中:其中:N為計數(shù)值,為計數(shù)值,X是

15、是THx、TLx的初值。的初值。 X=時,時,N最小值最小值= ; X= 時,時,N最大值最大值=; 則則N的范圍:的范圍:。討論計數(shù)方式討論計數(shù)方式C/T=0時,時, S1接上面,接上面,T0作定時器,對機器周期作定時器,對機器周期Tp計數(shù)。計數(shù)。v 求定時時間由下式確定:求定時時間由下式確定: Tc=NTp=(216 X)Tp= (65536 X)Tp其中:其中:Tc為定時時間;為定時時間;N為需要計數(shù)的次數(shù);為需要計數(shù)的次數(shù);X為計數(shù)初值為計數(shù)初值求計數(shù)初值計算公式:求計數(shù)初值計算公式: X=216 Tc/Tp=65536 Tc/Tp3、方式、方式2(以(以T0為例)為例)8位定時器位定

16、時器/計數(shù)器計數(shù)器TL0作為作為8位加法計數(shù)器,位加法計數(shù)器, TH0作為初值寄存器作為初值寄存器用。用。TL0加法計數(shù)器溢出時置加法計數(shù)器溢出時置TF0=1,而且發(fā)出,而且發(fā)出重裝載信號,使三態(tài)門打開,將重裝載信號,使三態(tài)門打開,將TH0中的初值自中的初值自動送入動送入TL0。C/T=1,S1接下面,接下面,T0作計數(shù)器,對作計數(shù)器,對P3.4引腳輸入引腳輸入的外部脈沖計數(shù),當脈沖發(fā)生負跳變時,計數(shù)器加的外部脈沖計數(shù),當脈沖發(fā)生負跳變時,計數(shù)器加1,計數(shù)值公式為:計數(shù)值公式為: N=28 X=256 X 其中:其中:N為計數(shù)值,為計數(shù)值,X是是THx、TLx的初值。的初值。 X=時,時,N最

17、小值最小值= ; X= 時,時,N最大值最大值=; 則則N的范圍:的范圍:。討論計數(shù)方式:討論計數(shù)方式:C/T=0時,時, S1接上面,接上面,T0作定時器,對機器周期作定時器,對機器周期Tp計數(shù)。計數(shù)。v 求定時時間由下式確定:求定時時間由下式確定: Tc=NTp=(28 X)Tp= (256 X)Tp其中:其中:Tc為定時時間;為定時時間;N為需要計數(shù)的次數(shù);為需要計數(shù)的次數(shù);X為計數(shù)初值為計數(shù)初值v 求計數(shù)初值計算公式:求計數(shù)初值計算公式: X=28 Tc/Tp=256 Tc/Tp工作方式工作方式0:X= 213 Tc/Tp=213 500us/2us =8192 250=7942=1F

18、06H =1111100000110B 則則TL0=00000110B=06H, TH0=11111000B=0F8H例例6-2:已知晶振已知晶振6MHz,要求定時,要求定時0.5ms,試分別求,試分別求出出T0工作于方式工作于方式0、方式、方式1、方式、方式2時的定時初值。時的定時初值。解:解:機器周期機器周期Tp=12/fosc=12/6MHz=2us; 定時定時Tc=0.5ms=500us.工作方式工作方式1: X= 216 Tc/Tp=216 500us/2us =65536 250=65286=FF06H 則則TL0=06H,TH0=0FFH工作方式工作方式2: X= 28 Tc/T

19、p=28 500us/2us=256 250=6=6H 則則TL0=06H TH0=06H(重裝初值寄存器,其值不變)(重裝初值寄存器,其值不變)練習:n已知晶振已知晶振6MHz,要求定時,要求定時250us,試分別,試分別求出求出T1工作于方式工作于方式0、方式、方式1時的定時初值。時的定時初值。答:答:X0=213 Tc/Tp=213 250us/2us =8067=1F83H TH1=FCH,TL1=03H X1= 216 Tc/Tp=216 250us/2us =65411=FF83H TH1=FFH,TL1=83HTL0八位定時八位定時/計數(shù)器計數(shù)器TH0八位定時器八位定時器T1建議

20、使用自動重裝方式建議使用自動重裝方式TF0TF1將將T0分解為兩個計數(shù)器分解為兩個計數(shù)器TL0和和TH0,其中其中TH0借借用了用了T1的的TR1和和TF1T1已無已無TR1,TF1功能功能,建議建議T1做波特率發(fā)生器做波特率發(fā)生器T1無方式無方式34、方式、方式3 (只適用于(只適用于T0) 組合擴展模式組合擴展模式注意!注意!方式方式3時時T0(TH0,TL0)及)及T1的各自特點的各自特點:n方式方式3就是將單片機原有的就是將單片機原有的T0,T1兩個計數(shù)器變成三兩個計數(shù)器變成三個獨立的計數(shù)器個獨立的計數(shù)器,其中其中T1要事先設定為方式要事先設定為方式2(串行口串行口的波特率發(fā)生器的波特

21、率發(fā)生器)并啟動起來。并啟動起來。 nTH0計數(shù)脈沖來自內(nèi)部計數(shù)脈沖來自內(nèi)部fosc,所以它只能處于所以它只能處于”定時定時”方式。方式。nTH0分別借用了定時器分別借用了定時器T1的的TR1和和TF1來為自己工來為自己工作作,使使TH0能象能象TL0那樣用那樣用TR1啟動定時啟動定時,并用并用TF1來來作為作為TH0的溢出中斷的標志。的溢出中斷的標志。n T1處于方式處于方式3是相當于是相當于TR1=0,此時,此時T1停止計數(shù)。停止計數(shù)。 小結:定時小結:定時/計數(shù)功能的計算公式計數(shù)功能的計算公式小結:定時小結:定時/計數(shù)器的四種工作方式計數(shù)器的四種工作方式方式方式0: 13位計數(shù)器模式。位

22、計數(shù)器模式。 (以以T1為例為例) 當計數(shù)器計滿為全當計數(shù)器計滿為全”1”時時,再來一個計數(shù)再來一個計數(shù)脈沖時脈沖時,就產(chǎn)生一個就產(chǎn)生一個“溢出中斷信溢出中斷信號號”TF1=1.TH1 TL1振蕩器振蕩器 1/12(8位位)(低低5位位)TF1中斷中斷啟動控制啟動控制T1引腳引腳TR1GATEINT1高三位棄用高三位棄用C/T=0C/T=113位加位加1計數(shù)器計數(shù)器n GATE=0時時,TR1=1開始定時開始定時/計數(shù)計數(shù); GATE=1時時(門控方式門控方式), TR=1且且INT1=1時時,開始工開始工作作.此種方式主要用于測量加在此種方式主要用于測量加在INT1腳上一個正脈腳上一個正脈沖

23、的脈寬沖的脈寬. 方式方式1: 既既16位計數(shù)器模式位計數(shù)器模式(以以T1為例為例)TL1TH1振蕩器振蕩器 1/12(8位位)(8位位)TF1中斷中斷啟動控制啟動控制T1引腳引腳TR1GATEINT1C/T=0C/T=116位加位加1計數(shù)器計數(shù)器n由由TL1做計數(shù)器做計數(shù)器,TH1做初值寄存器做初值寄存器. 工作前工作前TL1,TH1分別預置相同的初值分別預置相同的初值.計數(shù)器計數(shù)器TL1工作時工作時,每當溢出產(chǎn)生中斷的同時每當溢出產(chǎn)生中斷的同時, 將將TH1中的初值自動重中的初值自動重裝裝.此模式主要用于做串行口波特率發(fā)生器使用此模式主要用于做串行口波特率發(fā)生器使用.TL1(8位位)TH1

24、(8位位)振蕩器振蕩器 1/12TF1中斷中斷控制控制T1引腳引腳TR1GATEINT1C/T=1C/T=0方式方式2: 自動重裝初值模式自動重裝初值模式8位加位加1計數(shù)器計數(shù)器8位初值寄存器位初值寄存器n在這種模式中在這種模式中,單片機將單片機將T0和和T1重新進行重新進行“拆分、拆分、組合組合”.將將T0變?yōu)橛勺優(yōu)橛蒚H0,TL0組成的兩個獨立的組成的兩個獨立的8位位定時定時/計數(shù)器計數(shù)器. T1作為串行通訊的波特率發(fā)生器使用。作為串行通訊的波特率發(fā)生器使用。方式方式3: 組合擴展模式組合擴展模式TL0振蕩器振蕩器 1/12TF0中斷中斷控制控制T0引腳引腳TR0GATEINT0C/T=0

25、C/T=1TH0TF1中斷中斷控制控制TR1Fosc/12在方式在方式3時的模式中時的模式中定時器定時器T0的結構圖的結構圖定時定時/計數(shù)器計數(shù)器4種方式比較:種方式比較:方方 式式計數(shù)方計數(shù)方M 最大定時時間最大定時時間 Tmax方式方式013位位Tmax=8192*1 =8.192ms方式方式116位位Tmax=65536*1=65.536ms方式方式2,38位位Tmax=256*1 =0.256ms方方 式式計數(shù)方計數(shù)方M 最大計數(shù)值最大計數(shù)值方式方式013位位Tmax=8192方式方式116位位Tmax=65536方式方式2,38位位Tmax=256注:設主頻為注:設主頻為12MHzp

26、 工作模式和方式的確定 確定采用定時還是計數(shù)模式 p 初值計算 定時模式公式 計數(shù)模式公式 p 溢出方式判斷 中斷方式還是查詢方式 TC/PCnTTX 2NXn 2 6.4.2 定時定時/計數(shù)器配置及初始化計數(shù)器配置及初始化 定時/計數(shù)器的初始化程序可按照上述三個步驟進行,溢出方式設置則需要根據(jù)實際需要具體編寫,如采用中斷方式,還需設置中斷入口地址等。例題1:假設8051單片機外接晶振頻率為,請用單片機的工作方式實現(xiàn),試計算初值并給出初始化子程序。 6.4.2 定時定時/計數(shù)器配置及初始化計數(shù)器配置及初始化 例題1:假設8051單片機外接晶振頻率為12MHz,請用單片機T0以方式0的工作方式實

27、現(xiàn)5ms的定時,試計算初值并給出初始化子程序。ORG 0000HAJMP STARTSTART:MOV TMOD,#00H ;T0定時模式, 工作方式0MOV TH0,#63H ;T0賦初值MOV TL0,#18H 例題2: 假設8051單片機外接晶振頻率為6MHz, T0工作在方式1下實現(xiàn)定時100mS后申請中斷,T1工作在方式2下計數(shù)100次后申請中斷,計算初值并編寫相應程序。MOV TMOD,#61H;設置T0和T1的工作方式MOV TH0,#3CH;T0賦初值MOV TL0,#0B0H MOV TL1,#9CH;T1賦初值MOV TH1,#9CH;SETB ET0;開放相關中斷SETB

28、 ET1SETB EA. ;設置其他程序DS0:MOV TH0,#3CHMOV TL0,#0B0H;T0重賦初值重賦初值6.4.3 擴大定時時間方法擴大定時時間方法 要讓單片機產(chǎn)生10秒鐘的定時信號,由于6MHz的頻率T0溢出一次的最大時間約為131mS左右。因此可讓T0每次定時時間為100mS,連續(xù)溢出100次,時間就能到10S。學習內(nèi)容學習內(nèi)容1應用步驟應用步驟2編程舉例編程舉例6.5 定時定時/計數(shù)器應用舉例計數(shù)器應用舉例n1、T0、T1的選擇使用;的選擇使用;n2、合理選擇工作方式、合理選擇工作方式TMOD;n3、計算初值:、計算初值:X=2n Tc/Tp 其中,其中,n與工作方式有關

29、,與工作方式有關, 方式方式0,n=13; 方式方式1,n=16; 方式方式2、3時,時,n=8。一、定時器應用步驟一、定時器應用步驟n4、編制應用程序:、編制應用程序:定時器定時器/計數(shù)器的初始化:計數(shù)器的初始化: 寫寫TMOD; 寫入定時初值;寫入定時初值; 設置中斷系統(tǒng)的設置中斷系統(tǒng)的IP、IE; 啟動定時器運行(啟動定時器運行(TRx)。)。正確編制定時器正確編制定時器/計數(shù)器中斷服務程序。計數(shù)器中斷服務程序。 一、定時器應用步驟一、定時器應用步驟例例6-3:設單片機晶振頻率設單片機晶振頻率fosc=12MHz,使用,使用T0以方以方式式0產(chǎn)生周期為產(chǎn)生周期為1ms的方波,并由的方波,

30、并由P1.0輸出。以中斷輸出。以中斷方式完成編程。方式完成編程。解:解: T1不用,有關位設置為不用,有關位設置為0; T0的的GATE=0,C/T=0,M1M000(方式(方式0)。)。 則則TMOD初始化設置為初始化設置為00000000B,即,即00H。二、定時器編程舉例二、定時器編程舉例f=12MHZ,則有機器周期,則有機器周期Tp=1us X=8192 - 500=7692 00011110 00001100B 11110000 00001100 TH0=F0H TL0=0CH 2、計算初值、計算初值 產(chǎn)生產(chǎn)生1ms的方波,只需在的方波,只需在P1.0端以端以0.5ms為周期為周期交

31、替輸出高低電平即可,因此定時時間為交替輸出高低電平即可,因此定時時間為0.5ms 。3、啟動和中斷、啟動和中斷 定時器定時器T0的啟動由的啟動由TR0控制,即控制,即TR0=1啟動。啟動。 定時器定時器T0的中斷允許由的中斷允許由ET0和和EA控制,控制, 即即ET0=1、EA=1。 4、程序設計、程序設計 ORG 0000H LJMP MAIN ORG 000BH LJMP DS0 ORG 0100HMAIN: MOV SP, #30H MOV TL0, #0CH MOV TH0, #0F0H MOV TMOD, #00H SETB ET0 SETB EA SETB TR0 SJMP $DS

32、0: MOV TL0, #0CH MOV TH0, #0F0H CPL P1.0 RETI 練習練習1 1:(計數(shù)方式):(計數(shù)方式) 如前述啤酒生產(chǎn)線,計數(shù)如前述啤酒生產(chǎn)線,計數(shù)24瓶中斷轉入裝箱程序瓶中斷轉入裝箱程序選選T1方式方式0計數(shù),計數(shù),TMOD的高的高4位為位為: 0 1 0 0初始常數(shù)初始常數(shù)X的計算的計算: 213 - X =24 X=8192 - 24=8168 00011111 11101000B 00001000 TH1=FFH TL1=08H加加24次即溢出中斷。程序如下次即溢出中斷。程序如下:練習練習2:設單片機晶振頻率為設單片機晶振頻率為6MHz,使用,使用定時器

33、定時器1以以方式方式0產(chǎn)生周期為產(chǎn)生周期為500s的等的等寬正方波連續(xù)脈沖,并由寬正方波連續(xù)脈沖,并由P1.0輸出,以輸出,以查詢方式查詢方式完成。完成。 1TMOD寄存器初始化寄存器初始化 2計算計數(shù)初值計算計數(shù)初值 3由定時器控制寄存器由定時器控制寄存器TCON中的中的TR1 位控制定時的啟動和停止位控制定時的啟動和停止 4程序設計程序設計 MOV TMOD ,# 00H ;設置;設置T1為方式為方式0 MOV TH1 ,# 0FCH ;設置計數(shù)初值;設置計數(shù)初值 MOV TL1 ,# 03H MOV IE ,# 00H ;禁止中斷;禁止中斷LOOP: SETB TR1 ;啟動定時;啟動定

34、時 JBC TF1 ,LOOP1 ;查詢計數(shù)溢出;查詢計數(shù)溢出 AJMP LOOPLOOP1:MOV TH1 ,# 0FCH ;重新設置計數(shù)初值;重新設置計數(shù)初值 MOV TL1 ,# 03H CLR TF1 ;計數(shù)溢出標志位清;計數(shù)溢出標志位清“0” CPL P1.0 ;輸出取反;輸出取反 AJMP LOOP ;重復循環(huán);重復循環(huán) 練習練習3:題目同題目同練習練習2,但以,但以中斷方式中斷方式完成。完成。 單片機晶振頻率為單片機晶振頻率為6MHz,使用定時器,使用定時器1以以 工作工作方式方式1產(chǎn)生周期為產(chǎn)生周期為500s的等寬正方波的等寬正方波 連續(xù)脈沖,并由連續(xù)脈沖,并由P1.0輸出。輸

35、出。 1TMOD寄存器初始化寄存器初始化 TMOD=10H 2計算計數(shù)初值計算計數(shù)初值 TH1 = 0FFH TL1 = 83H 3. 置位置位EA以使以使CPU開放中斷開放中斷 4. 置位置位ET1以允許定時以允許定時/計數(shù)器計數(shù)器1中斷中斷 5. 置位置位TR1以啟動計數(shù)以啟動計數(shù) 主程序:主程序: MOV TMOD ,# 10H ;設置;設置T1為工作方式為工作方式1 MOV TH1 ,# 0FFH ;設置計數(shù)初值;設置計數(shù)初值 MOV TL1 ,# 083H SETB EA ;開中斷;開中斷 SETB ET1 ;定時器;定時器1允許中斷允許中斷 SETB TR1 ;定時開始;定時開始

36、HERE:SJMP $ ;等待中斷;等待中斷 中斷服務程序:中斷服務程序: MOV TH1 ,# 0FFH ;設置計數(shù)初值;設置計數(shù)初值 MOV TL1 ,# 083H CPL P1.0 ;輸出取反;輸出取反 RETI ;中斷返回;中斷返回 練習練習4:使用定時器使用定時器0以工作以工作方式方式2在在P1.0輸輸 出周期為出周期為200s的連續(xù)正方波脈沖。已知的連續(xù)正方波脈沖。已知 晶振頻率晶振頻率f osc = 6MHz。 1計算計數(shù)初值計算計數(shù)初值 TH0 = 0CEH ,TL0 = 0CEH 2TMOD寄存器初始化寄存器初始化 M1M0 =10 TMOD寄存器的狀態(tài)應為寄存器的狀態(tài)應為0

37、2H 3程序設計程序設計(查詢方式查詢方式) MOV IE ,# 00H ;禁止中斷;禁止中斷 MOV TMOD ,# 02H ;設置定時器;設置定時器0為工作方式為工作方式0 MOV TH0 ,# 0CEH ;保存計數(shù)初值;保存計數(shù)初值 MOV TL0 ,# 0CEH ;設置計數(shù)初值;設置計數(shù)初值 SETB TR0 ;啟動定時;啟動定時 LOOP:JBC TF0 ,LOOP1 ;查詢計數(shù)溢出;查詢計數(shù)溢出 AJMP LOOP LOOP1:CPL P1.0 ;輸出方波;輸出方波 AJMP LOOP ;重復循環(huán);重復循環(huán)注:由于方式注:由于方式2具有自動重裝載功能,因此計數(shù)初值只具有自動重裝載功

38、能,因此計數(shù)初值只 需設置一次,以后不再需要軟件重置。需設置一次,以后不再需要軟件重置。 (中斷方式)(中斷方式) 主程序:主程序: MOV TMOD ,# 02H ;設置;設置T1為工作方式為工作方式2 MOV TH0 ,# 0CEH ;保存計數(shù)初值;保存計數(shù)初值 MOV TL0 ,# 0CEH ;設置計數(shù)初值;設置計數(shù)初值 SETB EA ;開中斷;開中斷 SETB ET0 ;定時器;定時器0允許中斷允許中斷 SETB TR0 ;定時開始;定時開始 HERE:SJMP $ ;等待中斷;等待中斷 中斷服務程序:中斷服務程序: CPL P1.0 ;輸出方波;輸出方波 RETI ;中斷返回;中斷

39、返回【例【例6-4】某應用系統(tǒng)需對外部正脈沖測試寬度?!磕硲孟到y(tǒng)需對外部正脈沖測試寬度。INT0:MOV TMOD,#09H ;方式方式1,GATE=1 MOV TL0,#00H MOV TH0,#00H CLR EX0 ;關;關INT0中斷中斷LOP1:JB P3.2,LOP1 ;等待低電平;等待低電平LOP2:JNB P3.2,LOP2 ;等待高電平;等待高電平 SETB TR0 ;啟動;啟動T0計數(shù)計數(shù)LOP3:JB P3.2,LOP3 ;等待低電平;等待低電平 CLR TR0 ;停止計數(shù);停止計數(shù) MOV A , TL0 MOV B , TH0 【例【例6-4】某應用系統(tǒng)需對外部正脈

40、沖測試寬度?!磕硲孟到y(tǒng)需對外部正脈沖測試寬度。LOP1:JB P3.2,LOP1 ;等待低電平;等待低電平LOP2:JNB P3.2,LOP2 ;等待高電平;等待高電平 SETB TR0 ;啟動;啟動T0計數(shù)計數(shù)LOP3:JB P3.2,LOP3 ;等待低電平;等待低電平 CLR TR0 ;停止計數(shù);停止計數(shù) MOV A , TL0 MOV B , TH0 P3.2INT0*對對T0初始化,初始化,09H送送TMOD,GATE=1T0從從0開始計數(shù)開始計數(shù)測量脈沖寬度測量脈沖寬度0送送TR0,T0停止計數(shù)停止計數(shù)讀出讀出T0的值的值定時器方式寄存器定時器方式寄存器TMOD 位位 7 6 5

41、4 3 2 1 0 GATE C/T M1 M0 GATE C/T M1 M0 定時器定時器1 定時器定時器0lGATE門控位。門控位。GATE=1,同時,同時INTx為高電平,且為高電平,且TRx置置位時,選通定時器位時,選通定時器x。GATE=0,每當,每當TRx置位時就選通定時器置位時就選通定時器x l只有在啟動計數(shù)要由外部輸入只有在啟動計數(shù)要由外部輸入INTx控制時,控制時,才使才使GATE=1,由框圖可知,由框圖可知,GATE=1,TRx=1時,只有時,只有INTx引腳輸入高電平,引腳輸入高電平,Tx才才被允許計數(shù)。被允許計數(shù)。 l在一般情況下,在一般情況下,GATE=0,定時,定時

42、/計數(shù)器運行計數(shù)器運行控制僅由控制僅由TRx位的狀態(tài)確定。位的狀態(tài)確定。 (TRx=1啟動,啟動,TRx=0停止停止) 振蕩器振蕩器1212TFx中斷中斷Tx端端C/T=0C/T=0C/T=1C/T=1GATEINTx端端TRx TLx( (低低5 5位位) ) THx(8(8位位) )控制控制&l ll l利用利用GATEGATE的這一功能,可的這一功能,可以很方便的測量脈沖寬度以很方便的測量脈沖寬度( (見例見例6-4)6-4)。小結:定時小結:定時/ /計數(shù)器操作控制次序:計數(shù)器操作控制次序: 確定工作方式,寫入確定工作方式,寫入TMOD定時定時/計數(shù)計數(shù) 器工作方式寄存器;器工

43、作方式寄存器; 計算定時計算定時/計數(shù)初值,裝入計數(shù)初值,裝入THx及及TLx; 置位置位TRx以啟動計數(shù);以啟動計數(shù); 置位置位ETx以允許定時以允許定時/計數(shù)器計數(shù)器x中斷;中斷; (若需要,不需要可略若需要,不需要可略) 置位置位EA以使以使CPU開放中斷。開放中斷。課后習題解答 (1)8051單片機定時單片機定時/計數(shù)器都有哪些工作方式,計數(shù)器都有哪些工作方式,分別有何特點?分別有何特點?答:答:方式方式0:13位的工作方式,不能自動重裝入初值;位的工作方式,不能自動重裝入初值;方式方式1:16位的工作方式,不能自動重裝入初值,位的工作方式,不能自動重裝入初值,定時時間最長;定時時間最長;方式方式2:8位的工作方式,可自動重裝入初值,定時位的工作方式,可自動重裝入初值,定時最為精確;最為精確;方式方式3:8位的工作方式,可自動重裝入初值,定時位的工作方式,可自動重裝入初值,定時最為精確,只用最為精確,只用T0具有該方式。具有該方式。(2)簡述)簡述8051單片機定時單片機定時/計數(shù)器的基本工作原理。計數(shù)器的基

溫馨提示

  • 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

提交評論