![第六章定時器及應(yīng)用_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/bce9dd05-b2ff-4296-b68f-72eb2689b6fb/bce9dd05-b2ff-4296-b68f-72eb2689b6fb1.gif)
![第六章定時器及應(yīng)用_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/bce9dd05-b2ff-4296-b68f-72eb2689b6fb/bce9dd05-b2ff-4296-b68f-72eb2689b6fb2.gif)
![第六章定時器及應(yīng)用_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/bce9dd05-b2ff-4296-b68f-72eb2689b6fb/bce9dd05-b2ff-4296-b68f-72eb2689b6fb3.gif)
![第六章定時器及應(yīng)用_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/bce9dd05-b2ff-4296-b68f-72eb2689b6fb/bce9dd05-b2ff-4296-b68f-72eb2689b6fb4.gif)
![第六章定時器及應(yīng)用_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/bce9dd05-b2ff-4296-b68f-72eb2689b6fb/bce9dd05-b2ff-4296-b68f-72eb2689b6fb5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2022-3-11第六章定時器及應(yīng)用n 2022-3-12一、定時方法:一、定時方法:1 1、硬件定時:、硬件定時:較長時間;不夠靈活、方便;較長時間;不夠靈活、方便;2 2、軟件定時:、軟件定時:編循環(huán)程序,時間精確;占用編循環(huán)程序,時間精確;占用CPUCPU;3 3、可編程定時器定時:、可編程定時器定時:對系統(tǒng)時鐘脈沖記數(shù),對系統(tǒng)時鐘脈沖記數(shù), 靈活、方便。靈活、方便。2022-3-13二、定時器二、定時器/ /計數(shù)器的工作原理:計數(shù)器的工作原理: 定時器定時器/ /計數(shù)器中的核心部件為可預(yù)置初值計數(shù)器。計數(shù)器中的核心部件為可預(yù)置初值計數(shù)器。預(yù)置初值后開始計數(shù),直至計數(shù)值回預(yù)置初值后開始計
2、數(shù),直至計數(shù)值回0 0或產(chǎn)生溢出,可申或產(chǎn)生溢出,可申請中斷請中斷( (或供查詢或供查詢) )。 計數(shù)器有計數(shù)器有加加1 1計數(shù)或減計數(shù)或減1 1計數(shù)計數(shù)兩種形式。兩種形式。K1K2可預(yù)置初值計數(shù)器可預(yù)置初值計數(shù)器中斷中斷請求請求功能功能選擇選擇啟動啟動控制控制內(nèi)部時鐘脈沖內(nèi)部時鐘脈沖(定時)(定時)外部輸入脈沖外部輸入脈沖(計數(shù))(計數(shù))溢出信號溢出信號計數(shù)脈沖計數(shù)脈沖計數(shù)初值計數(shù)初值TF0/TF1TF0/TF1TR0/TR1TR0/TR1C/TC/TTMODTMOD控制字控制字2022-3-14 作為定時器用時的計時速度:作為定時器用時的計時速度:一個機(jī)器周期計數(shù)一個機(jī)器周期計數(shù)器加器加1
3、,直至計滿溢出。,直至計滿溢出。 如晶振為如晶振為12MHz的單片機(jī),一個機(jī)器周期為的單片機(jī),一個機(jī)器周期為1S,其,其計數(shù)頻率為振蕩頻率的計數(shù)頻率為振蕩頻率的1/12 。 作為計數(shù)器用時的計數(shù)速度:作為計數(shù)器用時的計數(shù)速度:每兩個機(jī)器周期計每兩個機(jī)器周期計數(shù)器加數(shù)器加1,計數(shù)頻率最高為振蕩頻率的,計數(shù)頻率最高為振蕩頻率的1/24。 在在S5P2對計數(shù)輸入引腳對計數(shù)輸入引腳T0、T1進(jìn)行采樣,進(jìn)行采樣,下降下降沿計數(shù)沿計數(shù)。說明:說明: 定時器定時器/計數(shù)器在工計數(shù)器在工作期間不占用作期間不占用CPU的時間。的時間。6-1 MCS-51MCS-51定時器定時器/ /計數(shù)器計數(shù)器定時器初始化編程
4、包括:定時器初始化編程包括:1.1.功能選擇(定時功能選擇(定時/ /計數(shù));計數(shù));2.2.位數(shù)選擇(位數(shù)選擇(8/13/168/13/16位);位);3.3.啟動方式選擇(內(nèi)部啟動啟動方式選擇(內(nèi)部啟動/ /外部啟動);外部啟動);4.4.啟動控制(啟動啟動控制(啟動/ /停止);停止);5.5.恢復(fù)初值方式(自動重裝恢復(fù)初值方式(自動重裝/ /軟件重裝)。軟件重裝)。2 2個可獨立控制的個可獨立控制的1616位定時器位定時器/ /計數(shù)器:計數(shù)器: 計數(shù)器計數(shù)器T T0 0、T T1 11 1、TMOD定時器方式寄存器(定時器方式寄存器(89H89H):):1 1)功能選擇位)功能選擇位C
5、/TC/T: =0=0:定時功能,計數(shù)內(nèi)部機(jī)器周期脈沖;:定時功能,計數(shù)內(nèi)部機(jī)器周期脈沖; =1=1:計數(shù)功能,計數(shù)引腳:計數(shù)功能,計數(shù)引腳T0(T1)T0(T1)輸入的負(fù)脈沖。輸入的負(fù)脈沖。2 2)方式選擇位)方式選擇位M1M1、M0M0:4 4種工作方式:種工作方式:13/16/813/16/8位位一、定時器控制、狀態(tài)寄存器:一、定時器控制、狀態(tài)寄存器:GATE C/T M1 M0 GATE C/T M1 M0 T1T03 3)門控方式選擇位)門控方式選擇位GATEGATE : =0=0,非門控方式,非門控方式( (內(nèi)部啟動內(nèi)部啟動) ): TRx=1TRx=1,啟動定時器工作;,啟動定時
6、器工作; TRx=0TRx=0,停止定時器工作。,停止定時器工作。 =1=1,門控方式,門控方式( (外部啟動外部啟動) ): TRx=1TRx=1且引腳且引腳INTx=1INTx=1才啟動。才啟動。確定定時器工作方式指令:確定定時器工作方式指令: MOV TMODMOV TMOD,# #方式字方式字例:例:設(shè)設(shè)T T0 0用方式用方式2 2非門控定時,非門控定時, T T1 1用方式用方式1 1門控計數(shù)。門控計數(shù)。 MOV TMODMOV TMOD,# #?2 2、TCONTCON定時器控制定時器控制/ /狀態(tài)寄存器:狀態(tài)寄存器:1 1)啟動控制位)啟動控制位TR0TR0、TR1TR1: =
7、0=0,停止定時器工作;,停止定時器工作; =1=1,啟動定時器工作。,啟動定時器工作。例:例:啟動啟動T T0 0:SETB TR0SETB TR02 2)溢出中斷標(biāo)志位)溢出中斷標(biāo)志位TF0TF0、TF1TF1: 定時器溢出使定時器溢出使TFx=1TFx=1,引起中斷請求,引起中斷請求,CPUCPU響應(yīng)響應(yīng)TxTx中斷中斷 后,系統(tǒng)自動將后,系統(tǒng)自動將TFxTFx清清0 0。當(dāng)然,也可用軟件檢測當(dāng)然,也可用軟件檢測TFxTFx,這時必須軟件清,這時必須軟件清0 0。WAITWAIT: JBCJBCTF0TF0,NEXT NEXT ;檢測;檢測T0T0是否溢出是否溢出 SJMPSJMPWAI
8、TWAIT ;未溢出,繼續(xù)檢測;未溢出,繼續(xù)檢測NEXTNEXT: ;溢出,;溢出,TF0TF0清清0 0,處理溢,處理溢出出2022-3-19TCON的地址及格式如下,的地址及格式如下,可按位尋址可按位尋址。 各位的意義如下:各位的意義如下:TF1(TCON.7, 8FH位)位)-T1溢出標(biāo)志位。溢出標(biāo)志位。TF0(TCON.5, 8DH位)位)-T0溢出標(biāo)志位。溢出標(biāo)志位。TR1(TCON.6, 8EH位)位)-T1運行控制位。運行控制位。 0:關(guān)閉:關(guān)閉T1;1:啟動:啟動T1運行。運行。TR0(TCON.4, 8CH位)位)-T0運行控制位。運行控制位。 0:關(guān)閉:關(guān)閉T0;1:啟動:
9、啟動T0運行。運行。2022-3-110TCON各位的意義如下圖所示:各位的意義如下圖所示:3 3、可預(yù)置初值的、可預(yù)置初值的1616位位加加1 1計數(shù)器計數(shù)器TH0TH0、TL0TL0、TH1TH1、TL1TL1: 如:預(yù)置如:預(yù)置T T0 0初值指令:初值指令: MOVMOVTH0TH0,#X#XH H MOVMOVTL0TL0,#X#XL L二、二、 定時器工作方式:定時器工作方式:由方式選擇位由方式選擇位M1M1、M0M0設(shè)定。設(shè)定。計數(shù)外部脈沖個數(shù):計數(shù)外部脈沖個數(shù):1 181928192(2(21313) )定時時間定時時間( (若若T=1T=1 s)s):1 1 s s8.19m
10、s8.19msfoscfoscT=12/foscT=12/fosc2022-3-113模式模式0工作時的構(gòu)成工作時的構(gòu)成: (1)運行)運行控制部分控制部分;(;(2)定時)定時/計數(shù)計數(shù)信號源信號源; (3)13位位計數(shù)器計數(shù)器;(;(4)溢出標(biāo)志溢出標(biāo)志。二、特點二、特點 1、可定時(、可定時(C/T=0)、可計數(shù)()、可計數(shù)(C/T=1) ; 2、13位方式(位方式(TL0、1的低的低5位和位和TH0、1的的8位);位); 3、INT0、INT1是定時器是定時器/計數(shù)器計數(shù)器0、1的外部門,的外部門, GATE=1允許使用外部門(允許使用外部門(TR0、1應(yīng)置應(yīng)置1), 此時用外部此時用
11、外部門控制運行門控制運行 GATE=0禁止外部門,此時用禁止外部門,此時用TR0、1控制運行;控制運行; 4、計數(shù)值、計數(shù)值N和定時時間和定時時間t的計算的計算 : N= 213- 初值初值X t=(213-初值初值X)*振蕩周期振蕩周期*12 =(213-初值初值X)*機(jī)器周期機(jī)器周期Tcy最大計數(shù)值為:最大計數(shù)值為: 213 = 81922022-3-114三、應(yīng)用舉例三、應(yīng)用舉例 例例6-1 設(shè)定時器設(shè)定時器T0選擇工作模式選擇工作模式0,定時時間為,定時時間為1ms, osc=6MHz。試確定。試確定T0初值,計算最大定時時初值,計算最大定時時間間T。 解:解: (1)求)求T0的初值
12、的初值X由公式:由公式:t=(213-T0初值初值)*機(jī)器周期機(jī)器周期Tcy t=1ms=1000s 機(jī)器周期機(jī)器周期Tcy=12/osc=12/6000000s=2s得得 1000=( 213 -X)*2所以初值所以初值 X=8192-500=7692=1111000001100BT0的低的低5位:位:01100B=0CHT0的高的高8位:位:11110000B=F0H(2)最大定時時間)最大定時時間T 當(dāng)當(dāng)T0的初值的初值=0時為最大定時時間時為最大定時時間 T=(213 -0)*2=8192*2s =16384 s =16.384ms7692 32商為高商為高8位,位,余數(shù)為低余數(shù)為低5
13、位位2022-3-115 例例6-2 設(shè)設(shè)T1以模式以模式0定時,定時時間為定時,定時時間為1ms, osc=6MHz,編程實現(xiàn)其定時功能。,編程實現(xiàn)其定時功能。解解: (1)計算初值(同上,略)計算初值(同上,略) F0HTH0,0CHTL0(2)程序清單)程序清單 ORG 0000HAJMP MAIN ORG 000BH AJMP IT0P;主程序;主程序 ORG 0100HMAIN: MOV SP,#5FHMOV TMOD ,#00HMOV TL0,#0CHMOV TH0,#0F0HSETB TR0SETB ET0SETB EASJMP $2022-3-116;中斷服務(wù)程序;中斷服務(wù)程序
14、 ORG 0120HIT0P:MOV TL0,#0CH MOV TH0,#0F0H CPL P1.0 RETI2022-3-117 例例6-3 利用利用T0的工作模式的工作模式0產(chǎn)生產(chǎn)生1ms的定時,編的定時,編程實現(xiàn)在程實現(xiàn)在P1.0引腳上輸出周期為引腳上輸出周期為2ms的方波。設(shè)單的方波。設(shè)單片機(jī)的晶振頻率片機(jī)的晶振頻率osc=12MHz。解解: 方法:方法:定時定時1ms,對,對P1.0取反,然后繼續(xù)定時取反,然后繼續(xù)定時(1)設(shè)置模式字)設(shè)置模式字 TMOD= * 0000B =00000000B=00H (2)計算初值)計算初值由公式:由公式:t=(213-T0初值初值)*機(jī)器周期機(jī)
15、器周期 t=1ms=1000s,機(jī)器周期機(jī)器周期Tcy=12/osc=12/12000000s=1s得得 1000=( 213 -X)*1=(8192-X)*1所以初值所以初值 X=7192=1110000011000BT0的低的低5位:位:11000B=18HT0的高的高8位:位:11100000B=E0H1ms2ms7192 32商為高商為高8位,位,余數(shù)為低余數(shù)為低5位位2022-3-118(3)程序清單)程序清單方法一:中斷方式方法一:中斷方式 ORG 0000HRESET:LJMP MAIN ORG 000BH LJMP CTC0;主程序;主程序 ORG 0030HMAIN: MOV
16、 SP,#5FH MOV TMOD,#0 MOV TL0,#18H MOV TH0,#0E0H SETB EA SETB ET0 SETB TR0 SJMP $;中斷服務(wù)程序中斷服務(wù)程序 ORG 0100HCTC0:MOV TL0,#18H MOV TH0,#0E0H CPL P1.0 RETI2022-3-119方法二:查詢方式方法二:查詢方式 ORG 0000HSTART:MOV SP,#5FH MOV TMOD,#0 MOV TL0,#18H MOV TH0,#0E0H SETB TR0LOOP: JBC TF0,NEXT SJMP LOOPNEXT: MOV TL0,#18H MOV
17、TH0,#0E0H CPL P1.0 SJMP LOOP可替換為可替換為:LOOP:JNB TF0,$ CLR TF0 MOV TL0,#18H :1616位定時位定時/ /計數(shù)器。計數(shù)器。 THx8THx8位和位和TLx8TLx8位組成位組成1616位加位加1 1計數(shù)器。計數(shù)器。計數(shù)外部脈沖個數(shù):計數(shù)外部脈沖個數(shù):1 16553665536(2(21616) )定時時間定時時間( (若若T=1T=1 s)s):1 1 s s(65536(65536T=65.54ms)T=65.54ms)T=12/foscT=12/fosc 自動恢復(fù)初值自動恢復(fù)初值8 8位定時位定時/ /計數(shù)器。計數(shù)器。TL
18、xTLx為為8 8位加位加1 1計數(shù)器,計數(shù)器, THxTHx為為8 8位初值暫存器。位初值暫存器。用于需要重復(fù)定時和計數(shù)的場合。用于需要重復(fù)定時和計數(shù)的場合。最大計數(shù)值:最大計數(shù)值:256 (2256 (28 8) )最大定時時間最大定時時間( (若若T=1T=1 s)s): 256256 s sT=12/foscT=12/foscnT0T0分成分成2 2個個8 8位定時器:位定時器:TL0TL0定時定時/ /計數(shù)器和計數(shù)器和TH0TH0定時器;定時器;nTL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATEGATE;nTH0TH0占用占用T1T1控制位:控制位:T
19、R1TR1、TF1TF1;nT1T1不能使用方式不能使用方式3 3工作,常作串口的波特率發(fā)生器使用。工作,常作串口的波特率發(fā)生器使用。foscfosc振蕩器振蕩器2022-3-123 TMOD各位的意義如下:各位的意義如下:M1和和M0-工作模式控制位。其功能如下表:工作模式控制位。其功能如下表:C/T-定時器定時器/計數(shù)器方式選擇位。計數(shù)器方式選擇位。 0:定時器;:定時器;1:計數(shù)器。:計數(shù)器。GATE-外部門控位。外部門控位。 0:不用外部門;:不用外部門;1:使用外部門。:使用外部門。2022-3-124求求THX、TLX的方法:的方法: T0 T0運行于計數(shù)器狀態(tài),工作于方式運行于計
20、數(shù)器狀態(tài),工作于方式1 1 (1616位方式),要求外部引腳出現(xiàn)位方式),要求外部引腳出現(xiàn)3 3個個 脈沖后,脈沖后,TH0TH0、TL0TL0全回全回0 0(以便申請(以便申請 中斷)。求計數(shù)初值中斷)。求計數(shù)初值C C。解:解:C=(0003H)C=(0003H)求補求補=FFFDH=FFFDH例例1:加加1 1計數(shù)計數(shù)例例2: T0 T0運行于定時器狀態(tài),時鐘振蕩周期為運行于定時器狀態(tài),時鐘振蕩周期為12MH12MHZ Z,要求定,要求定時時100100 s s。求不同工作方式時的定時初值。求不同工作方式時的定時初值C C。解:解:fosc=12MHzfosc=12MHz T=1 T=1
21、 s s X=100 X=100 s/1s/1 s=(100)s=(100)D D=64H=64H方式方式0 0(13(13位方式位方式) ):C=(64H)C=(64H)求補求補=0 0000 0110 0100 B+1=0 0000 0110 0100 B+1 =1F9CH =1F9CH方式方式1 1(16(16位方式位方式) ):C=(64H)C=(64H)求補求補=0000 0000 0110 0100 B+1=0000 0000 0110 0100 B+1 =FF9CH =FF9CH方式方式2 2、3 3(8(8位方式位方式) ):C=(64H)C=(64H)求補求補=0110 01
22、00 B+1=0110 0100 B+1 =9CH =9CH注意:注意:工作方式工作方式0 0的初值裝入方法:的初值裝入方法:1F9CH=0001F9CH=0001 1111 1001 1111 1001 11001 1100 B B 可見,可見,TH0=FCHTH0=FCH,TL0=1CHTL0=1CHTL0TL0的低的低5 5位位TH0TH0的的8 8位位MOVMOVTH0TH0,#0FCH#0FCHMOVMOVTL0TL0,#1CH#1CHT=12/foscT=12/fosc三、三、MCS-51MCS-51定時器的應(yīng)用:定時器的應(yīng)用:1 1計數(shù)功能:計數(shù)功能:n生產(chǎn)線上產(chǎn)品計數(shù):生產(chǎn)線上
23、產(chǎn)品計數(shù):每個產(chǎn)品通過得到一個脈沖信號,每個產(chǎn)品通過得到一個脈沖信號, 計數(shù)器記錄脈沖個數(shù),當(dāng)計數(shù)值與計數(shù)器記錄脈沖個數(shù),當(dāng)計數(shù)值與 設(shè)定值相等,啟動包裝機(jī)器。設(shè)定值相等,啟動包裝機(jī)器。n檢測轉(zhuǎn)速:檢測轉(zhuǎn)速:電機(jī)轉(zhuǎn)動一圈發(fā)出一個脈沖,計數(shù)器記錄一電機(jī)轉(zhuǎn)動一圈發(fā)出一個脈沖,計數(shù)器記錄一 秒時間內(nèi)脈沖個數(shù),顯示轉(zhuǎn)速。秒時間內(nèi)脈沖個數(shù),顯示轉(zhuǎn)速。2 2定時功能:定時功能:n用于實時控制:用于實時控制:定時采樣、定時啟動等。定時采樣、定時啟動等。 當(dāng)定時時間與設(shè)定值相等,執(zhí)行規(guī)定操作。當(dāng)定時時間與設(shè)定值相等,執(zhí)行規(guī)定操作。定時器初始化編程:定時器初始化編程: 使用定時器工作之前,先寫入控制寄存器,使用
24、定時器工作之前,先寫入控制寄存器, 確定好定時器工作方式。確定好定時器工作方式。 初始化編程格式:初始化編程格式:MOV TMOD,# 方式字方式字 ;選擇方式;選擇方式MOV THx,#XH ;裝入;裝入Tx時間常數(shù)時間常數(shù)MOV TLx,#XL(SETB EA) ;開;開Tx中斷中斷(SETB ETx ) SETB TRx ;啟動;啟動Tx定時器定時器需考慮:需考慮:1. 按實際需要選擇定時按實際需要選擇定時/ /計數(shù)功能;計數(shù)功能; 2. 按時間或計數(shù)長度選擇工作方式;按時間或計數(shù)長度選擇工作方式;計算時間常數(shù)計算時間常數(shù)X(X(計算初值計算初值) ):計數(shù)功能:計數(shù)功能:X= 2X=
25、2n n - -計數(shù)值計數(shù)值 (n n:8/13/168/13/16) 定時功能:定時功能:X= 2X= 2n n - t/T- t/T (t t:定時時間;:定時時間; T T:機(jī)器周期):機(jī)器周期)4. 溢出處理編程格式:溢出處理編程格式:1 1)查詢方式:)查詢方式:先查詢定時器溢出標(biāo)志,再進(jìn)行溢出處理。先查詢定時器溢出標(biāo)志,再進(jìn)行溢出處理。 ;定時器初始化;定時器初始化WAITWAIT: JBC JBC TFxTFx,PT PT ;檢測溢出標(biāo)志;檢測溢出標(biāo)志SJMP SJMP WAITWAIT PT PT: MOVMOVTHxTHx,#X#XH H ;重裝時間常數(shù);重裝時間常數(shù)MOVM
26、OVTLxTLx,#X#XL L ;溢出處理;溢出處理SJMPSJMPWAITWAIT2 2)中斷方式)中斷方式:初始化后執(zhí)行其它任務(wù),中斷服務(wù)程序處理溢出。:初始化后執(zhí)行其它任務(wù),中斷服務(wù)程序處理溢出。ORGORG0000H0000HLJMPLJMPMAINMAINORGORG000BH(001BH) 000BH(001BH) ;TxTx中斷入口中斷入口LJMPLJMPPTSPTSMAINMAIN: ;初始化后執(zhí)行其他程序;初始化后執(zhí)行其他程序 PTSPTS: ;溢出中斷服務(wù)程序;溢出中斷服務(wù)程序MOVMOVTHxTHx,#X#XH H;重裝時間常數(shù);重裝時間常數(shù)MOVMOVTLxTLx,#
27、X#XL LRETIRETI80C5180C51單片機(jī)選擇單片機(jī)選擇1616位加位加1 1計數(shù)器。計數(shù)器。 按要求選擇功能和初值。按要求選擇功能和初值。1 1、要求檢測到、要求檢測到100100個脈沖,發(fā)中斷請求,通知個脈沖,發(fā)中斷請求,通知CPUCPU。 選計數(shù)功能,計數(shù)初值為選計數(shù)功能,計數(shù)初值為156156。2 2、要求定時每隔、要求定時每隔100100 s s時間,發(fā)一次中斷請求。時間,發(fā)一次中斷請求。 設(shè)內(nèi)部時鐘周期設(shè)內(nèi)部時鐘周期1 1 s s 選定時功能,計數(shù)初值為選定時功能,計數(shù)初值為156156。 80C51單片機(jī)內(nèi)有單片機(jī)內(nèi)有2個個16位的位的T0和和T1,如在應(yīng)用中,定時器
28、如在應(yīng)用中,定時器/計數(shù)器的數(shù)量或功能不計數(shù)器的數(shù)量或功能不能滿足要求,則可在外部擴(kuò)展。能滿足要求,則可在外部擴(kuò)展。 擴(kuò)展的芯片主要有擴(kuò)展的芯片主要有8253( (最高時鐘頻率為最高時鐘頻率為2MHz) )和和8254( (最高時鐘頻率為最高時鐘頻率為8MHz) )等。等。它們均為它們均為減法計數(shù)減法計數(shù)。各有。各有3個獨立的個獨立的16位計數(shù)位計數(shù)器器T0、T1和和T2,它們既可用于計數(shù),又可用,它們既可用于計數(shù),又可用于定時,并可運行在于定時,并可運行在0模式模式5模式共模式共6種不同種不同的工作模式中。的工作模式中。6- 定時器定時器/計數(shù)器與中斷計數(shù)器與中斷綜合應(yīng)用綜合應(yīng)用舉例舉例例例
29、1 1:由由P1.0P1.0輸出方波信號,周期為輸出方波信號,周期為2ms2ms, 設(shè)設(shè)f foscosc=12MHz=12MHz。2ms解:每隔解:每隔1ms1ms改變一次改變一次P1.0P1.0的輸出狀態(tài)。的輸出狀態(tài)。 用用T0T0非門控方式非門控方式1 1定時。定時。 計算時間常數(shù):計算時間常數(shù):X=2X=21616-t/T=2-t/T=21616-1000/1 -1000/1 =FC18H =FC18H(1 1)查詢方式)查詢方式(fangbo)(fangbo) START:MOV TMOD,#01H MOV TL0,#18H MOV TH0,#0FCH SETB TR0 LOOP:
30、JBC TF0,PTF0 SJMP LOOP PTF0: CPL P1.0 MOV TL0,#18H MOV TH0,#0FCH SJMP LOOPT1T0單片機(jī)單片機(jī) P1.02ms(2 2)中斷方式:)中斷方式: ORG0000H AJMPMAIN ORG000BH;T0定時器定時器 AJMPPT0INT ORG0100HMAIN: MOVSP,#60H MOVTMOD,#01H MOVTL0,#18H MOVTH0,#0FCH SETBEA SETBET0 SETBTR0HERE: SJMPHEREPT0INT: CPLP1.0 MOVTL0,#18H MOVTH0,#0FCH RETI
31、T1T0利用利用C51程序?qū)崿F(xiàn):程序?qū)崿F(xiàn):#includesbit P1_0=P10;Void main (void) TMOD=0 x01;/*定時器定時器0方式方式1*/TR0=1;/*啟動啟動T/C0*/ for (;)TH0=(65536-1000)/256;/*裝載計數(shù)初值裝載計數(shù)初值*/TL0=(65536-1000)%256;do while (! TF0);/*等待查詢等待查詢TF0置位置位*/P1_0=! P1_0;/*定時時間到定時時間到P1.0反相反相*/TF0=0;/*軟件清軟件清TF0*/用定時器用定時器0的方式的方式1編程,采用查詢方式。編程,采用查詢方式。reg5
32、1.h文件定義了所有文件定義了所有8051的特殊功能寄存器及中斷的特殊功能寄存器及中斷#includesbit P1_0=P10;Void timer0 (void)interrupt 1 using 1 /*T/C0中斷服務(wù)程序入口中斷服務(wù)程序入口*/ P1_0=! P1_0;/*定時時間到定時時間到P1.0反相反相*/TH0=(65536-1000)/256;/*計數(shù)初值重裝載計數(shù)初值重裝載*/TL0=(65536-1000)%256;Void main(void)TMOD=0 x01;/*定時器定時器0工作在方式工作在方式1*/P1_0=0;TH0=(65536-1000)/256;/*
33、預(yù)置計數(shù)初值預(yù)置計數(shù)初值*/TL0=(65536-1000)%256;EA=1;/*CPU開中斷開中斷*/ET0=1;/*T/C0開中斷開中斷*/TR0=1; /*啟動啟動T/C0開始定時開始定時*/do while(1);fangbozdc用定時器用定時器0的方式的方式1編程,采用中斷方式。編程,采用中斷方式。例例2 2:長定時方法:增加一個軟件長定時方法:增加一個軟件計數(shù)器或一個硬件計數(shù)器。計數(shù)器或一個硬件計數(shù)器。本題采用硬件方式:本題采用硬件方式:T0T0定時,定時定時,定時10ms10ms; T1T1計數(shù)計數(shù)T0T0的定時跳變信號的定時跳變信號P1.0P1.0的負(fù)跳變次數(shù),計滿的負(fù)跳變
34、次數(shù),計滿5050個跳變?yōu)閭€跳變?yōu)? 1秒。秒。(查詢方法)(查詢方法)START: MOV TMOD,#61H MOV TL1,#0CDH MOV TH1,#0CDH CLR P1.0 SETB TR1LOOP1: CPL P1.7LOOP2: MOV TL0 ,#78H MOV TH0,#0ECH SETB TR0LOOP3: JBC TF0,LOOP4 SJMP LOOP3LOOP4: MOV TL0 ,#78H MOV TH0,#0ECH CPL P1.0 JBC TF1,LOOP1 SJMP LOOP2T=2T=2s s,X=5X=510105 5個個T T,而最大只能,而最大只能6
35、553665536個個T T,不能滿足要求,必須借助硬件計數(shù)器或軟件循環(huán)。不能滿足要求,必須借助硬件計數(shù)器或軟件循環(huán)。 T0T0定時初值:定時初值: (方式(方式1 1)t=10mst=10ms,X=5000D=1388HX=5000D=1388H,C=C=(1388H1388H)補補=EC78H=EC78H T1T1計數(shù)初值:計數(shù)初值: (方式(方式2 2)X=50DX=50D,C=C=(32H32H)補補=CDH=CDHP P1.71.7驅(qū)動驅(qū)動LEDLED亮亮1 1秒滅秒滅1 1秒地閃爍,設(shè)時鐘頻率為秒地閃爍,設(shè)時鐘頻率為6MHz6MHz。利利用用C51程程序序?qū)崒崿F(xiàn):現(xiàn):#includ
36、esbit P1_0=P10;sbit P1_7=P17;timer0 interrupt 1 using 1 /*T/C0中斷服務(wù)程序中斷服務(wù)程序*/ P1_0=! P1_0;/*10ms定時時間到定時時間到, P1.0反相反相*/TH0=(65536-5000)/256;/*計數(shù)初值重裝載計數(shù)初值重裝載*/TL0=(65536-5000)%256;timer1 interrupt 3 using 2 /*T/C1中斷服務(wù)程序入口中斷服務(wù)程序入口*/ P1_7=! P1_7;/*1s定時時間到定時時間到, 燈改變狀態(tài)燈改變狀態(tài)*/main( ) P1_7=0;/*置燈初始滅置燈初始滅*/P1
37、_0=1;/*保證第一次反相便開始計數(shù)保證第一次反相便開始計數(shù)*/TMOD=0 x61;/*定時器定時器0工作在方式工作在方式1定時,定時器定時,定時器1工作在方式工作在方式2計數(shù)計數(shù) */TH0=(65536-5000)/256;/*預(yù)置計數(shù)初值預(yù)置計數(shù)初值*/TL0=(65536-5000)%256;TH1=256-50;TL1=256-50;IP=0 x08; /*置優(yōu)先級寄存器置優(yōu)先級寄存器*/EA=1;/*CPU開中斷開中斷*/ET0=1;/*開開T/C0中斷中斷*/ET1=1;/*開開T/C1中斷中斷*/TR0=1;/*啟動啟動T/C0*/ TR1=1;/*啟動啟動T/C1*/fo
38、r (;)reg51.h文件定義了所有文件定義了所有8051的特殊功能寄存器及中斷的特殊功能寄存器及中斷例例3:外部負(fù)脈沖引起中斷請求,選計數(shù)方式,時間常數(shù)為外部負(fù)脈沖引起中斷請求,選計數(shù)方式,時間常數(shù)為FFHFFH。START:MOV TMOD,#90H MOV TL1,#00H MOV TH1,#00HWAIT1:JB P3.3,WAIT1 SETB TR1WAIT2:JNB P3.3,WAIT2 WAIT3:JB P3.3,WAIT3 CLR TR1 MOV R2,TL1 MOV R3,TH1 TR1=1 T1啟動啟動 TR1=0 T1停止停止INT1例:例:門控方式測量正脈沖寬度門控方
39、式測量正脈沖寬度解:解: INT1INT1引腳輸入被檢測信號,記錄在正脈沖的引腳輸入被檢測信號,記錄在正脈沖的 時間內(nèi)包含機(jī)器脈沖個數(shù)。時間內(nèi)包含機(jī)器脈沖個數(shù)。 (1)設(shè)脈寬小于設(shè)脈寬小于65.5ms65.5ms(方式(方式1 1):): 等待查詢等待查詢INT1INT1,正脈沖過后,讀出,正脈沖過后,讀出TH1TL1。定時器外部引腳定時器外部引腳T0(T1)T0(T1)用作外部中斷信號輸入端用作外部中斷信號輸入端 ( (單片機(jī)振蕩頻率為單片機(jī)振蕩頻率為 12M)12M)。 ORG 0000HORG 0000H LJMP MAIN LJMP MAIN ORG 001BH ORG 001BH AJMP PRIC AJMP PRIC MAIN: SETBMAIN: SETBTR1TR1SETBSETBET1ET1 ;開;開T1T1中斷中斷SETBSETBEAEAWAIT2WAIT2:JNBJNBP3.3P3.3,WAIT2 WAIT2 ;等待正脈沖到來;等待正脈沖到來WAIT3WAIT3:JBJBP3.3P3.3,WAIT3 WAIT3 ;等待正脈沖結(jié)束;等待正脈沖結(jié)束CLRCLRTR1TR1 ;關(guān)閉;關(guān)閉T1T1
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一建建筑冬季施工方案
- 地理教學(xué)策略
- 藥物研發(fā)全景
- 全國導(dǎo)游基礎(chǔ)知識-全國導(dǎo)游基礎(chǔ)知識章節(jié)練習(xí)
- 初級銀行業(yè)法律法規(guī)與綜合能力-銀行專業(yè)初級《法律法規(guī)》模考試卷6
- 初級公司信貸-初級銀行從業(yè)資格考試《公司信貸》點睛提分卷4
- 如何寫低保戶申請書
- 社交媒體海量信息的存儲應(yīng)對措施
- 5.1 觀察物體(同步練習(xí)) 二年級上冊數(shù)學(xué)同步課時練 (含答案)
- 大學(xué)勞動委員申請書
- ESD測試作業(yè)指導(dǎo)書-防靜電手環(huán)
- 船模制作教程(課堂PPT)課件(PPT 85頁)
- 高一(4)班分科后第一次班會課件ppt課件(PPT 29頁)
- 春季開學(xué)安全第一課PPT、中小學(xué)開學(xué)第一課教育培訓(xùn)主題班會PPT模板
- JJG30-2012通用卡尺檢定規(guī)程
- 部編版人教版二年級上冊語文教材分析
- APR版制作流程
- 《C++程序設(shè)計》完整教案
- 美國LM2500艦用燃?xì)廨啓C(jī)
- 《公共政策分析》課件.ppt
- RNA-seq研究方法與策略-zzz
評論
0/150
提交評論