M6第6章定時(shí)器_第1頁
M6第6章定時(shí)器_第2頁
M6第6章定時(shí)器_第3頁
M6第6章定時(shí)器_第4頁
M6第6章定時(shí)器_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第六章第六章 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器o6.1 概述o6.2 定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)與工作原理o6.3 定時(shí)器/計(jì)數(shù)器的控制o6.4 定時(shí)器/計(jì)數(shù)器的4種工作方式o6.5 應(yīng)用舉例 實(shí)現(xiàn)定時(shí)一般有三種方法:實(shí)現(xiàn)定時(shí)一般有三種方法:l l利用軟件實(shí)現(xiàn)(延時(shí)程序)利用軟件實(shí)現(xiàn)(延時(shí)程序); 優(yōu)點(diǎn)優(yōu)點(diǎn):簡(jiǎn)單,控制方便;簡(jiǎn)單,控制方便;缺點(diǎn)缺點(diǎn):CPUCPU效率低。效率低。l l硬件實(shí)現(xiàn),專門設(shè)計(jì)一個(gè)單穩(wěn)態(tài)定時(shí)器硬件實(shí)現(xiàn),專門設(shè)計(jì)一個(gè)單穩(wěn)態(tài)定時(shí)器: 優(yōu)點(diǎn)優(yōu)點(diǎn):CPUCPU效率高;效率高;缺點(diǎn):缺點(diǎn):修改參數(shù)麻煩。修改參數(shù)麻煩。l l利用計(jì)數(shù)器實(shí)現(xiàn)利用計(jì)數(shù)器實(shí)現(xiàn)計(jì)數(shù)器計(jì)數(shù)器溢出溢出預(yù)置數(shù)預(yù)置數(shù)輸入脈

2、沖輸入脈沖計(jì)算機(jī)一般利用第三種方法實(shí)現(xiàn)計(jì)算機(jī)一般利用第三種方法實(shí)現(xiàn)1us8位位256us6.1概述概述6.2定時(shí)器定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)與工作原理計(jì)數(shù)器的結(jié)構(gòu)與工作原理1、定時(shí)器定時(shí)器0由由TH0(84H)和)和TL0(8AH)計(jì)數(shù)器構(gòu)成計(jì)數(shù)器構(gòu)成; ;2 2、定時(shí)器、定時(shí)器1 1由由TH1TH1(8DH8DH)和)和TL1TL1(8BH8BH)計(jì)數(shù)器構(gòu)成計(jì)數(shù)器構(gòu)成; ; 3 3、TMODTMOD定時(shí)器定時(shí)器方式方式控制字(控制字(89H89H); ;4 4、TCONTCON定時(shí)器控制字定時(shí)器控制字(88H)。 1. 1. 定時(shí)功能定時(shí)功能-計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期使計(jì)數(shù)器加1。

3、計(jì)數(shù)頻率是振蕩頻率的1/12。2 2. 計(jì)數(shù)功能計(jì)數(shù)功能-計(jì)數(shù)脈沖來自外部輸入引腳,T0為P3.4、T1為P3.5定時(shí)器定時(shí)器/ /計(jì)數(shù)器的核心部件是兩個(gè)計(jì)數(shù)器的核心部件是兩個(gè)1616位的位的二進(jìn)制加二進(jìn)制加1 1計(jì)數(shù)器計(jì)數(shù)器(TH0(TH0、TL0TL0或或TH1TH1、TL1) TL1) 在TMOD中,各有一個(gè)控制位(CT),分別用于控制定時(shí)/計(jì)數(shù)器T0和T1是工作在定時(shí)器方式還是計(jì)數(shù)器方式。片內(nèi)片內(nèi)計(jì)數(shù)器計(jì)數(shù)器單片機(jī)單片機(jī)外來脈沖外來脈沖T0機(jī)器周期機(jī)器周期6.3定時(shí)器定時(shí)器/計(jì)數(shù)器的控制計(jì)數(shù)器的控制 MSC-51單片機(jī)對(duì)定時(shí)器/計(jì)數(shù)器的控制是通過方式方式寄存器寄存器TMOD (Time

4、r/Counter Mode Control Register)和控控制寄存器制寄存器TCON(Timer/Counter Control Register)來實(shí)現(xiàn)的。在復(fù)位狀態(tài)下,這兩個(gè)寄存器的所有位都被清0。 6.3.1方式寄存器方式寄存器TMODM1M0工作方式選擇:工作方式選擇:00:方式方式0,13位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器01:方式方式1,16定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器10:方式方式2,8位自動(dòng)重裝定時(shí)器位自動(dòng)重裝定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器11:方式方式3,定時(shí)器,定時(shí)器T0分成分成2個(gè)個(gè)8位計(jì)數(shù)器位計(jì)數(shù)器定時(shí)器定時(shí)器T1停止計(jì)數(shù)停止計(jì)數(shù)TMODC/T:定時(shí)器定時(shí)器/計(jì)數(shù)器選擇:計(jì)數(shù)

5、器選擇:“0”:定時(shí)器:定時(shí)器“1”:計(jì)數(shù)器:計(jì)數(shù)器GATE:選通門控制信號(hào):選通門控制信號(hào):“1”:由:由TRx和引腳和引腳INTx共同控制啟動(dòng)共同控制啟動(dòng)“0”:僅由控制位:僅由控制位TRx啟動(dòng)啟動(dòng)TMOD例例1:設(shè)定定時(shí)器1為定時(shí)工作方式,要求由軟件啟動(dòng)定時(shí)器1,按方式2工作。定時(shí)器0為計(jì)數(shù)方式,要求由軟件啟動(dòng)定時(shí)器0,按方式1工作。要特別注意的是:要特別注意的是: TMODTMOD不能進(jìn)行位尋址,只能字節(jié)尋址不能進(jìn)行位尋址,只能字節(jié)尋址6.3.2控制寄存器控制寄存器TCONTFx:定時(shí)器/計(jì)數(shù)器溢出標(biāo)志 當(dāng)定時(shí)器溢出時(shí),硬件電路置TFx為 “1”,響應(yīng)中斷時(shí)硬件自動(dòng)復(fù)位TRx。TRx:

6、定時(shí)器/計(jì)數(shù)器控制位 “1”:?jiǎn)?dòng); “0”:停止。 TCON6.4定時(shí)器定時(shí)器/計(jì)數(shù)器的計(jì)數(shù)器的4種工作方式種工作方式 (1 1)方式)方式0 0計(jì)數(shù)脈沖輸入TF0T0TR0GATEINT011&C/T=1振蕩器1/12C/T=0TL0 TH08位低5位1313位計(jì)數(shù)器位計(jì)數(shù)器定時(shí)器計(jì)數(shù)器M1 M0 = 00時(shí)為方式0,13位計(jì)數(shù)器1313位數(shù)據(jù)的組裝:位數(shù)據(jù)的組裝: 例如,在T0中裝入數(shù)據(jù)0C78H0000,1100,011 TL0的低5位TH0的高8位插入000 當(dāng)TMOD的C/T=0時(shí),為定時(shí)工作方式。由于T0和T1在系統(tǒng)復(fù)位后均為00H,若要定時(shí)一定的時(shí)間,則要預(yù)先設(shè)置初值,

7、定時(shí)時(shí)間的計(jì)算公式為:t=(213T0的初值的初值) 振蕩周期振蕩周期 12=(213T0的初值的初值) Tc當(dāng)當(dāng)C/T=0時(shí)時(shí) 當(dāng)C/T=1時(shí),多路開關(guān)與引腳T0(P3.4)相連,外部計(jì)數(shù)脈沖由引腳T0輸入。當(dāng)外信號(hào)電平發(fā)生1到0跳變時(shí),計(jì)數(shù)器加1,這時(shí)T0成為外部事件計(jì)數(shù)器,即定時(shí)器T0工作在計(jì)數(shù)工作方式。當(dāng)當(dāng)C/T=1時(shí)時(shí)當(dāng)當(dāng)GATE=0時(shí)時(shí) 當(dāng)門控位GATE=0時(shí),“或“門被封鎖,INT0輸入信號(hào)無效,TR0一位就可控制定時(shí)器的開啟和關(guān)閉。停止計(jì)數(shù)運(yùn)行(計(jì)數(shù))00010TTTR當(dāng)當(dāng)GATE=1時(shí)時(shí) 當(dāng)GATE=1時(shí),僅當(dāng)引腳INT0輸入高電平,且TR0=1時(shí),定時(shí)器T0開始計(jì)數(shù),當(dāng)IN

8、T0由1變0時(shí),定時(shí)器T0停止計(jì)數(shù)。TR0和INT0同時(shí)控制定時(shí)器的開啟和關(guān)閉。這這一特點(diǎn)可以用來測(cè)量在一特點(diǎn)可以用來測(cè)量在INT0INT0引腳上出現(xiàn)的正脈沖的寬度引腳上出現(xiàn)的正脈沖的寬度。(2)方式)方式1定時(shí)時(shí)間的計(jì)算公式為:t = (2t = (21616 T0 T0的初值的初值) ) 振蕩周期振蕩周期 1212= = (2 (21616 T0 T0的初值的初值) ) TcTc振蕩器1/12TL0 TH0 TF011&T0TR0GATEINT0C/T=0C/T=18位8位1616位計(jì)數(shù)器位計(jì)數(shù)器M1 M0 = 01時(shí)為方式1,16位計(jì)數(shù)器8 8位自動(dòng)裝入時(shí)間常數(shù)方式位自動(dòng)裝入時(shí)間

9、常數(shù)方式 TF0振蕩器1/1211&T0TR0GATEINT0C/T=0C/T=1TL0 TH0(3)方式)方式2定時(shí)時(shí)間的計(jì)算公式為:t = (2t = (28 8 T0 T0的初值的初值) ) 振蕩周期振蕩周期 1212= = (2 (28 8 T0 T0的初值的初值) ) TcTcM1 M0 = 10時(shí)為方式2(4)方式)方式3TF0振蕩器1/1211&T0TR0GATEINT0C/T=0C/T=1TL0 TH0TF11/12foscTR1M1 M0 = 11時(shí)為方式3計(jì)算計(jì)數(shù)器的計(jì)數(shù)初值: 編程時(shí)將計(jì)數(shù)初值送THiTHi、 TLiTLi; 定時(shí)器在使用前需要進(jìn)行初始化初

10、始化:確定TMODTMOD控制字:編程時(shí)將控制字送TMODTMOD; 6.5應(yīng)用舉例應(yīng)用舉例開中斷(如果使用中斷方式): 編程實(shí)置位EAEA、ETiETiTRiTRi位置位控制定時(shí)器的啟動(dòng)和停止。 設(shè)晶振頻率fOSC=6MHz,使用定時(shí)器T1T1以方式方式1 1產(chǎn)生周期為500s500s的方波脈沖,并由P1.0P1.0輸出。試以中斷方式實(shí)現(xiàn)。8051P1.0P1.0500s500s例例1 TMOD確定T1T1控制控制T0T0控制控制XXXX1000M0M1C/TGATEM0M1C/TGATE控制字10H 要產(chǎn)生500s500s 的方波脈沖,只需在P1.0端以250s250s為間隔,交替交替輸出

11、高低電平高低電平即可實(shí)現(xiàn)。為此,定時(shí)間應(yīng)為250s。使用6z晶振,則一個(gè)機(jī)器周期為2s,設(shè)待求計(jì)數(shù)初值為,則: 計(jì)算計(jì)數(shù)器的計(jì)數(shù)初值;(216X)2s = 250s 即216X=125 X216-125=65536-125 0FF83H所以,初值為: TH1=0FFH,TL1=83H 采用中斷方式:編程時(shí)打開全局和局部中斷。 由定時(shí)器控制寄存器TCON中的TR1TR1位控制定時(shí)器的啟動(dòng)和停止。 TR11,啟動(dòng); TR10,停止。 程序設(shè)計(jì) ORG 0000H LJMP MAIN ;主程序入口 ORG 001BH LJMP INTT1 ;T1中斷入口 INTT1: MOV TH1,#0FFH ;

12、重置初值 MOV TL1,#83H CPL P1.0 ;輸出取反 RETI ORG 1000HMAIN: MOV TMOD, #10H ;T1為方式1 MOV TH1, #0FFH MOV TL1, #83H ;初值 SETB EA ;允許中斷 SETB ET1 SETB TR1 ;啟動(dòng)定時(shí) SJMP $ ;等待中斷主程序:主程序:中斷處中斷處理程序:理程序: 對(duì)上題作一修改對(duì)上題作一修改,設(shè)晶振頻率fOSC=6MHz,使用定時(shí)器T1T1以方式方式1 1產(chǎn)生周期為1s1s的方波脈沖,并由P1.0P1.0輸出。試以中斷方式實(shí)現(xiàn)。8051P1.0P1.01s1s例例2; 定時(shí)器實(shí)驗(yàn)定時(shí)器實(shí)驗(yàn)-在在

13、P1.0P1.0腳上輸出一個(gè)腳上輸出一個(gè)1 1秒的方波(定時(shí)秒的方波(定時(shí)100ms100ms* *5 5); 查詢方式查詢方式ORG 0000HMAIN: MOV TMOD,#01H;定時(shí)器T0工作于方式1MOV TH0,#3CH ; MOV TL0,#0B0H ;100ms SETB TR0LOOP5:MOV R7,#5 ;軟件計(jì)數(shù)器5次LOOP: JBC TF0,NEXT SJMP LOOPNEXT: CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 DJNZ R7,LOOP CPL P1.0 SJMP LOOP5課堂測(cè)驗(yàn)課堂測(cè)驗(yàn) 利用定時(shí)器1,選擇

14、工作方式2,實(shí)現(xiàn)定時(shí)200s。已知晶振為6MHz。(1)計(jì)算定時(shí)初值TH1和TL1;(2)編寫一段程序,實(shí)現(xiàn)上述定時(shí),并控制P1.0輸出周期為4ms的方波。例例3 選擇T1方式0用于定時(shí),在P1.0輸出周期為1ms的方波,晶振fosc=6MHz。解解1:用查詢查詢方法編程:ORG 1000HMOV TMOD, #00H ;設(shè)置T1為定時(shí)方式0MOV TH1, #0F8H;C/T=0, GATE=0MOV TL1, #06H;定時(shí)500sSETB TR1;啟動(dòng)T1工作LP1:JBC TF1, LP2;查詢計(jì)數(shù)溢出否SJMP LP1LP2:MOV TH1, #0F8H;重置計(jì)數(shù)初值MOV TL1,

15、 #06HCPL P1.0;輸出取反SJMP LP1;重復(fù)循環(huán)解解2:用中斷中斷方法編程: ORG 0000H LJMP MAIN ORG 001BH LJMP INTT1 ORG 0100HMAIN: MOV TMOD,#00H MOV TH1,#0F8H MOV TL1,#06H SETB TR1 SETB ET1 SETB EA SJMP $ ORG 0120HINTT1: MOV TH1,#0F8H MOV TL1,#06H CPL P1.0 RETI例例4利用定時(shí)器T1的方式2對(duì)外部信號(hào)計(jì)數(shù)。要求每計(jì)滿100次,將P1.0端取反,試用查詢方法實(shí)現(xiàn)。解:MOV TMOD, #60HMO

16、V TH1, #9CH ;28-x=100MOV TL1, #9CHSETB TR1TEST: JBC TF1, LOOPSJMP TESTLOOP:CPL P1.0SJMP TESTEND例例5 以定時(shí)器1進(jìn)行外部計(jì)數(shù),每計(jì)數(shù)1000個(gè)脈沖后,定時(shí)器1轉(zhuǎn)為定時(shí)工作方式,定時(shí)10ms后又轉(zhuǎn)為計(jì)數(shù)方式,如此循環(huán)不止。設(shè)fosc=6Mhz,用方式1編程。解: T1為計(jì)數(shù)器時(shí)初值:x+1000=216x=65536-1000=64536=FC18H T1為定時(shí)器時(shí)初值:(216 x)2s=10000sx=65536-5000=60536=EC78H下面我們用查詢的方法編程。L1: MOV TMOD,

17、 #50H;設(shè)置T1為計(jì)數(shù)方式 MOV TH1, #0FCH ;且工作在方式1 MOV TL1, #18H;置入計(jì)數(shù)初值 SETB TR1;啟動(dòng)T1計(jì)數(shù)器LOOP1:JBC TF1, L2;查詢計(jì)數(shù)溢出? SJMP LOOP1L2: CLR TR1;關(guān)閉T1 MOV TMOD, #10H;設(shè)置T1為定時(shí)方式1 MOV TH1, #0ECH ;定時(shí)10ms MOV TL1, #78H SETB TR1;啟動(dòng)T1工作LOOP2:JBC TF1, L1 ;查詢10 s定時(shí) SJMP LOOP2;重復(fù)循環(huán)例例6 已知8051單片機(jī)的fosc=6MHz,請(qǐng)用T0和P1.0輸出矩形波,矩形波高電平寬50s

18、,低電平寬300s。解: T0采用方式2作50s定時(shí)時(shí)的初值: (28 x) 2s = 50 sx = 256-25=231=E7H 作300s定時(shí)時(shí)的初值: (28 x) 2s = 300 sx = 256-150=106=6AH下面我們用查詢的方法編程。MOV TMOD, #02H ;設(shè)置T0為定時(shí)方式2L2:CLR P1.0MOV TH0, #6AH;定時(shí)300sMOV TL0, #6AHSETB TR0;啟動(dòng)T0工作LOOP1:JBC TF0, L1;查詢300 s定時(shí)SJMP LOOP1L1:SETB P1.0;P1.0輸出高電平CLR TR0;關(guān)閉T0MOV TH0, #0E7H;

19、定時(shí)50sMOV TL0, #0E7HSETB TR0;啟動(dòng)T0工作LOOP2:JBC TF0, L2 ;查詢50 s定時(shí)SJMP LOOP2;重復(fù)循環(huán)下面我們用中斷的方法編程ORG 0000HORG 1000HLJMP MAINSERV:CPL P1.0ORG 000BHJB P1.0, TT1LJMP SERVMOV TH0, #6AHMAIN: MOV TMOD, #02HMOV TL0, #6AHCLR P1.0TT1:MOV TH0, #0E7H MOV TH0, #6AHMOV TL0, #0E7HMOV TL0, #6AHTT:RETISETB ET0ENDSETB EASETB TR0SJMP $例例7解:這個(gè)題目是門控位GATE的應(yīng)用。方法是: 首先使TR0=1 當(dāng)INT0引腳信號(hào)由低電平變成高電平時(shí),T0開始計(jì)數(shù)。 當(dāng)INT0引腳信號(hào)變?yōu)榈碗娖綍r(shí),T0停止計(jì)數(shù)。 TH0和TL0中的計(jì)數(shù)值 機(jī)器周期=正脈沖的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論