版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
單片微機的定時器第1頁,共64頁,2023年,2月20日,星期一內(nèi)容介紹6.1概述6.2定時器/計數(shù)器T0、T16.3定時器/計數(shù)器T26.4監(jiān)視定時器(看門狗)T36.5定時器/計數(shù)器的應(yīng)用編程第2頁,共64頁,2023年,2月20日,星期一
在時序控制系統(tǒng)中,為了實現(xiàn)定時或計數(shù),通??刹捎靡韵氯N方法:1.硬件法硬件定時功能完全由硬件電路完成,不占用CPU時間。但當(dāng)要求改變定時時間時,只能通過改變電路中的元件參數(shù)來實現(xiàn),很不靈活。2.軟件法軟件定時是執(zhí)行一段循環(huán)程序來進行時間延時,優(yōu)點是無額外的硬件開銷,時間比較精確。但犧牲了CPU的時間。
§1概述第3頁,共64頁,2023年,2月20日,星期一3.可編程定時器/計數(shù)器 可編程定時器/計數(shù)器最大特點是可以通過軟件編程來實現(xiàn)定時時間的改變,通過中斷或查詢方法來完成定時功能或計數(shù)功能。有專門的可編程定時器/計數(shù)器芯片可供選用,比如Intel8253。還有一些日歷時鐘芯片,如菲利浦公司的PCF8583等。目前在單片微機中均已配備了定時器/計數(shù)器(timer/counter)。
第4頁,共64頁,2023年,2月20日,星期一80C51芯片內(nèi)包含有兩個16位的定時器/計數(shù)器:T0和T1;而80C52包含有三個16位的定時器/計數(shù)器:T0、T1和T2;在80C51系列的部分產(chǎn)品(如Philips公司的80C552)中,還包含有一個用做看門狗的8位定時器(T3)。 若是對單片微機的T0、T1或T2引腳上輸入的一個1到0的跳變進行計數(shù)增l,即是計數(shù)功能。若是對單片微機內(nèi)部的機器周期進行計數(shù),從而得到定時,這就是定時功能。第5頁,共64頁,2023年,2月20日,星期一定時器/計數(shù)器的核心是一個加1計數(shù)器,其基本功能是計數(shù)加1。定時功能和計數(shù)功能的設(shè)定和控制都是通過軟件來設(shè)定的。8051的定時器/計數(shù)器的邏輯功能結(jié)構(gòu)框圖如下圖所示。8051的定時器/計數(shù)器除了可用作定時器或計數(shù)器之外,還可用作串行接口的波特率發(fā)生器。第6頁,共64頁,2023年,2月20日,星期一定時器/計數(shù)器T0、T1的內(nèi)部結(jié)構(gòu)簡圖示于圖-1中。從圖中可以看出,定時器/計數(shù)器T0、T1由以下幾部分組成:
計數(shù)器TH0、TL0和TH1、TL1;
特殊功能寄存器TMOD、TCON;
時鐘分頻器;
輸入引腳T0、T1?!?定時器/計數(shù)器T0、T1第7頁,共64頁,2023年,2月20日,星期一
⒈定時器/計數(shù)器T0、T1的方式寄存器——TMOD,
字節(jié)地址為89H。TMOD的格式如下:低4位用來定義T0,高4位用來定義T1§2.1與定時器/計數(shù)器T0、T1有關(guān)的特殊功能寄存器D7 D6 D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0第8頁,共64頁,2023年,2月20日,星期一D7 D6 D5D4 D3D2D1D0GATEC/TM1M0GATEC/TM1M0T1T0各位的意義如下:
GATE——門控位。GATE=1時,由外部中斷引腳、和TR0、TR1共同來啟動定時器。當(dāng)INT0引腳為高電平時,TR0置位啟動定時器T0;當(dāng)INT1引腳為高電平時,TR1置位,啟動定時器T1。
GATE=0時,僅由TR0和TR1置位來啟動定時器T0和T1。
第9頁,共64頁,2023年,2月20日,星期一
C/T——功能選擇位。C/T=1時,選擇計數(shù)功能;C/T=0時,選擇定時功能。T0、T1的計數(shù)、定時功能是通過TMOD中的位來選擇的。
①定時器,設(shè)置C/T=0計數(shù)輸入信號是內(nèi)部時鐘脈沖,每個機器周期使寄存器的值增1。每個機器周期等于12個振蕩周期,故計數(shù)速率為振蕩周期的1/12。當(dāng)采用12MHz的晶體時,計數(shù)速率為1MHz。定時器的定時時間,與系統(tǒng)的振蕩頻率fosc、計數(shù)器的長度和初始值等有關(guān)。
第10頁,共64頁,2023年,2月20日,星期一
②計數(shù)器,設(shè)置C/T=1 這時,通過引腳T0(P3.4)和T1(P3.5)對外部信號進行計數(shù)。在每個機器周期的S5P2期間,CPU采樣引腳的輸入電平。若前一機器周期采樣值為1,下一機器周期采樣值為0,則計數(shù)器增1,此后的機器周期S3P1期間,新的計數(shù)值裝入計數(shù)器。所以檢測一個1到0的跳變需要兩個機器周期,故計數(shù)脈沖頻率不能高于振蕩脈沖頻率的1/24。第11頁,共64頁,2023年,2月20日,星期一
M1、M0——工作方式選擇位。由于有M1和M0兩位,可以有四種工作方式,如表-1所示。
⒉定時器/計數(shù)器T0、T1的控制寄存器——TCON控制寄存器TCON是一個逐位定義的8位寄存器,字節(jié)地址為88H,位尋址的地址為88H~8FH。其格式如下:位地址8FH8EH8DH8CH8BH8AH89H88H位功能TF1TR1TF0TR0IE1IT1IE0IT0其中各位的意義如下:第12頁,共64頁,2023年,2月20日,星期一
TF1(TCON.7)——定時器/計數(shù)器T1的溢出標(biāo)志。T1溢出時,該位由內(nèi)部硬件置位。若中斷開放,即響應(yīng)中斷,進入中斷服務(wù)程序后,由硬件自動清0;若中斷禁止,可用于判跳,用軟件清0。
TR1(TCON.6)——T1的運行控制位。 用軟件控制,置l時,啟動T1;清0時,停止T1。
TF0(TCON.5)——T0的溢出標(biāo)志。T0溢出時,該位由內(nèi)部硬件置位。若中斷開放,即響應(yīng)中斷,進入中斷服務(wù)程序后,由硬件自動清0;若中斷禁止,可用于判跳,用軟件清0。
TR0(TCON.4)——T0的運行控制位。用軟件控制,置1時,啟動T0;清0時,停止T0。位地址8FH8EH8DH8CH8BH8AH89H88H位功能TF1TR1TF0TR0IE1IT1IE0IT0第13頁,共64頁,2023年,2月20日,星期一
IE1(TCON.3)——外部中斷1下降沿觸發(fā)標(biāo)志位。
IE0(TCON.I)——外部中斷0下降沿觸發(fā)標(biāo)志位。
IT1(TCON.0)——外部中斷1觸發(fā)類型選擇位。
IT0(TCON.0)——外部中斷0觸發(fā)類型選擇位。TCON的低4位與中斷有關(guān),已在第五章“中斷系統(tǒng)”中討論過。
復(fù)位后,TCON的所有位均清0。T0和T1均是關(guān)斷的。
⒊定時器/計數(shù)器T0、T1的數(shù)據(jù)寄存器由TH1(地址為8DH)、TL1(地址為8BH)和TH0(地址為8CH)、TL0(地址為8AH)寄存器所組成。復(fù)位后,所有這四個寄存器全部清零。第14頁,共64頁,2023年,2月20日,星期一⒋定時器/計數(shù)器中斷
⑴中斷允許寄存器IE
EA位--中斷允許總控制位ET0位、ET1位、ET2位--T0、T1和T2的中斷允許控制位。某位=0,則禁止對應(yīng)定時器/計數(shù)器的中斷。某位=1,則允許對應(yīng)定時器/計數(shù)器的中斷。
⑵中斷矢量 定時器T0:000BH 定時器T1:001BH 定時器T2:002BH第15頁,共64頁,2023年,2月20日,星期一
⑶中斷優(yōu)先級寄存器IP
PT0位、PT1位、PT2位--T0、T1和T2中斷優(yōu)先級控制位。某位為0,則相應(yīng)的定時器/計數(shù)器的中斷為低優(yōu)先級;某位為1,則相應(yīng)的定時器/計數(shù)器的中斷為高優(yōu)先級。第16頁,共64頁,2023年,2月20日,星期一
根據(jù)對TMOD寄存器中M1和M0的設(shè)定,T0可選擇四種不同的工作方式,而T1只具有三種工作方式(即方式0、方式1和方式2)。⒈方式0:13位定時器/計數(shù)器當(dāng)TMOD中的M1=0、M0=0時,選定方式0工作。方式0時的結(jié)構(gòu)如圖-2所示。這種方式下,計數(shù)寄存器由13位組成,即THx高八位(作計數(shù)器)和TLx的低5位(32分頻的定標(biāo)器)構(gòu)成。TLx的高3位未用。計數(shù)時,TLx的低5位溢出后向THx進位,THx溢出后將TFx置位,并向CPU申請中斷?!?.2定時器/計數(shù)器T0、T1的工作方式第17頁,共64頁,2023年,2月20日,星期一從圖–2中可看到:C/T位的電平為“0”或“1”,用來設(shè)定是作定時器或計數(shù)器。門控位GATE可用作對INTx引腳上的高電平時間進行計量。由圖–2上可看出,當(dāng)GATE=0時,A點為高電平,定時器/計數(shù)器的啟動/停止由TRx決定。TRx=1,定時器/計數(shù)器啟動;TRx=0,定時器/計數(shù)器停止。當(dāng)GATE=1時A點的電位由INTx決定,因而B點的電位就由TRx和INTx決定,即定時器/計數(shù)器的啟動/停止由TRx和INTx兩個條件決定。
計數(shù)溢出時,TFx置位。如果中斷允許,CPU響應(yīng)中斷并轉(zhuǎn)入中斷服務(wù)程序,由內(nèi)部硬件清TFx。TFx也可以由程序查詢和清零。
第18頁,共64頁,2023年,2月20日,星期一⒉方式1:16位定時器/計數(shù)器
當(dāng)TMOD中的M1=0、M0=l時,選定方式1工作。
方式1時,T0、T1的邏輯結(jié)構(gòu)如圖-3所示。這種方式下,計數(shù)寄存器由16位組成,THx高八位和TLx的低8位。 計數(shù)時,TLx溢出后向THx進位,THx溢出后將TFx置位,如果中斷允許,CPU響應(yīng)中斷并轉(zhuǎn)入中斷服務(wù)程序,由內(nèi)部硬件清TFx。TFx也可以由程序查詢和清零。第19頁,共64頁,2023年,2月20日,星期一
⒊方式2:定時常數(shù)自動重裝載的8位定時器/計數(shù)器
當(dāng)TMOD中的M1=1、M0=0時,選定方式2工作。這種方式是將16位計數(shù)寄存器分為兩個8位寄存器,組成一個可重載的8位計數(shù)寄存器。方式2時定時器/計數(shù)器T0、T1的邏輯結(jié)構(gòu)如圖-4所示。在方式2中,TLx作為8位計數(shù)寄存器,THx作為8位計數(shù)常數(shù)寄存器。當(dāng)TLx計數(shù)溢出時,一方面將TFx置位,并向CPU申請中斷;另一方面將THx的內(nèi)容重新裝入TLx中,繼續(xù)計數(shù)。重新裝入不影響THx的內(nèi)容。方式2適合于作為串行口波特率發(fā)生器使用。第20頁,共64頁,2023年,2月20日,星期一
⒋方式3當(dāng)TMOD中的M1=l、M0=1時,選定方式3工作。這種方式是是將T0分為一個8位定時器/計數(shù)器和一個8位定時器,TL0用于8位定時器/計數(shù)器,TH0用于8位定時器。方式3時定時器/計數(shù)器T0、T1邏輯結(jié)構(gòu)分別如圖–5、圖–6所示。⑴工作方式3下的定時器/計數(shù)器T0方式3時,T0的結(jié)構(gòu)見圖–5所示。其工作與方式0時相同,只是此時的計數(shù)器為8位計數(shù)器TL0,它占用了T0的GATE、INT0、啟動/停止控制位TR0、T0引腳(P3.4)以及
計數(shù)溢出標(biāo)志位TF0和T0的中斷矢量(地址為000BH)等。第21頁,共64頁,2023年,2月20日,星期一
TH0所構(gòu)成的定時器只能作為定時器用,因為此時的外部引腳T0已為定時器/計數(shù)器TL0所占用。這時它占用了T1的啟動/停止控制位TR1、計數(shù)溢出標(biāo)志位TF1及T1中斷矢量(地址為001BH)。T0方式3時,T1的結(jié)構(gòu)如圖6–6所示,T1只可選方式0、1或2。由于此時計數(shù)溢出標(biāo)志位TF1及T1中斷矢量(地址為001BH)已被TH0所占用,所以T1僅能作為波特率發(fā)生器或其它不用中斷的地方。作串行口波特率發(fā)生器時,T1的計數(shù)輸出直接去串行口,只需設(shè)置好工作方式,串行口波特率發(fā)生器自動開始運行,如要停止工作,只需向T1送一個設(shè)為工作方式3的控制字即可。第22頁,共64頁,2023年,2月20日,星期一
⒈定時器/計數(shù)器溢出率的計算
定時器/計數(shù)器運行前,在其中預(yù)先置入的常數(shù),稱為定時常數(shù)或計數(shù)常數(shù)(TC)。由于計數(shù)器是加1(向上)計數(shù)的,故而預(yù)先置入的常數(shù)均應(yīng)為補碼。其中:
t——定時時間, TC——機器周期。L——計數(shù)器的長度,Fosc——晶體振蕩器頻率。
TC—定時器/計數(shù)器初值,即定時常數(shù)或計數(shù)常數(shù)。
§3定時器/計數(shù)器的應(yīng)用編程§3.1定時器的應(yīng)用第23頁,共64頁,2023年,2月20日,星期一定時/計數(shù)器的溢出率即為定時時間的倒數(shù),即:對于T0及T1:方式0 L=13213=8192方式1 L=16216=65536方式2 L=828=256對于T2:L=16216=65536因此,根據(jù)要求的定時時間t、設(shè)定的定時器工作方式(確定L)及晶體振蕩頻率fosc,可計算出TC值(十進制數(shù)),再將其轉(zhuǎn)換成二進制數(shù)TCB,然后再分別送入THi、TLi(對于T0,i=0;對于T1,i=l)。第24頁,共64頁,2023年,2月20日,星期一對于定時器/計數(shù)器T0、T1:方式0時:TCB=TCH+TCL,TCH—高8位,TCL—低5位MOVTHi,#TCH ;送高8位MOVTLi,#TCL ;送低5位(高3位為0)方式1時:TCB=TCH+TCL,TCH—高8位,TCL—低8位MOVTHi,#TCH ;送高8位MOVTLi,#TCL ;送低8位。方式2時:TCB——8位重裝載MOVTHi,#TCB ;送高8位
MOVTLi,#TCB ;送低8位。對于定時器/計數(shù)器T2:與T0、T1的方式1相同。第25頁,共64頁,2023年,2月20日,星期一
例1.要求在P1.0引腳上產(chǎn)生周期為2ms的方波輸出。分析:設(shè)晶體振蕩器的頻率為fosc=6MHz??墒褂肨0作定時器,設(shè)為方式0,設(shè)定lms的定時,每隔1ms使P1.0引腳上的電平變反。解:(1)定時常數(shù)計算振蕩器的頻率fosc=6MHz,機器周期為2μs,方式0計數(shù)器長度L=13(213=8192),定時時間t=1ms=0.001s定時常數(shù):第26頁,共64頁,2023年,2月20日,星期一TC為7692=1E0CH,二進制數(shù):TCB=00011110000
01100B,取低13位,其中高8位TCH=F0H,低5位為TCL=0CH。計數(shù)長度為13,定時為(8192—7692)×2μs=0.001S。TMOD的設(shè)定(即控制字):第27頁,共64頁,2023年,2月20日,星期一(2)編程 ORG 0000 AJMP MAIN ORG 000BH ;T0中斷矢量 AJMPINQP ORG 0030HMAIN:MOVTMOD,#00H;設(shè)T0為定時器方式0 MOV TH0,#0F0H;寫定時常數(shù)(定時1ms) MOV TL0,#0CH SETB TR0;啟動T0 SETB ET0;允許T0中斷 SETB EA;開放CPU中斷 AJMP$ ;定時中斷等待
第28頁,共64頁,2023年,2月20日,星期一
ORG XXXXH;T0中斷服務(wù)程序INQP:MOVTH0,#0F0H;重寫定時常數(shù)
MOVTL0,#0CH CPL P1.0 ;P1.0變反輸出
RETI;中斷返回
例2.使用T1的方式1,設(shè)定1ms的定時。同樣,在P1.0引腳上產(chǎn)生周期為2ms的方波輸出。設(shè)晶體振蕩器的頻率為fosc=6MHz。解:
⑴定時常數(shù)計算振蕩器的頻率fosc=6MHz=6×106Hz,方式1計數(shù)器長度L=16,2L=216=65536定時時間t=1ms=0.001s定時常數(shù):第29頁,共64頁,2023年,2月20日,星期一定時常數(shù)TC轉(zhuǎn)換成二進制TCB=11111110
00001100B=FE0CH所以TCH=FEH(高8位),TCL=0CH(低8位)TMOD的設(shè)定(即控制字)第30頁,共64頁,2023年,2月20日,星期一⑵
編程 ORG0000H AJMPMAIN ORG 001BH ;T1中斷矢量地址 AJMPINQP ORG 100H ;主程序入口MAIN:MOVTMOD,#10H ;T1為定時器方式1 MOV TH1,#0FEH ;寫定時常數(shù),定時1ms MOV TL1,#0CH SETB TR1 ;啟動T1 SETB ET1 ;允許T1中斷 SETB EA ;開放CPU中斷 AJMP $ ORG 00XXH ;中斷服務(wù)程序 INQP:MOVTH1,#0FEH ;重寫定時常數(shù) MOV TL1,#0CH CPL P1.0 ;P1.0變反輸出 RETI ;中斷返第31頁,共64頁,2023年,2月20日,星期一例3.欲用80C51產(chǎn)生兩個方波,一個周期為200μs,另一個周期為400μs,該80C51同時使用串行口,用定時器/計數(shù)器作為波特率發(fā)生器。解:⑴這時T0采用方式3工作,其中,TL0產(chǎn)生200μs定時,由P1.0輸出方波;TH0產(chǎn)生400μs定時,由Pl.1輸出方波;T1設(shè)置為方式2作波特率發(fā)生器用。focs=9.216MHz。第32頁,共64頁,2023年,2月20日,星期一
定時常數(shù)計算?TL0定時常數(shù)為TCL0:tl0=100μs單位μs,為十進數(shù)制數(shù)值。十六進制數(shù)值為TCBL0=B3H。?TH0定時常數(shù)為TCH0:定時時間為th0=200μs單位μs,為十進制數(shù)值。十六進制的值為TCBH0=66H。?TH1的波特率(詳細(xì)計算見串行口部分)設(shè)波特率為2400,則定時常數(shù)為TC2=F6H(1/波特率=(1/2400)S=(1/24)x104μs第33頁,共64頁,2023年,2月20日,星期一⑵編程 ORG0000H AJMPMAIN ORG000BH ;TL0的中斷入口 AJMPITL0 ORG00lBH ;TH0的中斷入口 AJMPITH0 ORG0100HMAIN:MOVSP,#60H ;設(shè)棧指針MOVTMOD,#23H ;設(shè)T0為方式3,TI為2MOVTL0,#0B3H;設(shè)TL0初值(100μs定時)MOVTH0,#66H;設(shè)TH0初值(200μs定時)MOVTL1,#0F6H;設(shè)TL1初值(波特率為2400)MOVTH1,#0F6H;設(shè)TH1初值 第34頁,共64頁,2023年,2月20日,星期一 SETB TR0;啟動TL0 SETB TR1;啟動TH0 SETB ET0;允許TL0中斷 SETB ET1;允許TH0中斷 SETB EA;CPU中斷開放 AJMP $ ORG 0200HITL0:MOVTL0,#0B3H ;重裝定時常數(shù) CPL P1.0 ;輸出方波(200μs) RETIITH0:MOVTH0,#66H ;重裝定時常數(shù) CPL P1.1 ;輸出方波(400μs) RETI第35頁,共64頁,2023年,2月20日,星期一當(dāng)TMOD寄存器中C/T位設(shè)置為“1”時,定時器/計數(shù)器作為計數(shù)器使用,可對來自單片微機引腳T0或T1上的負(fù)跳變脈沖進行計數(shù),計數(shù)溢出時可申請中斷,也可查詢溢出標(biāo)志位TFx。例4.假如一個用戶系統(tǒng)已使用了二個外部中斷源,即INT0和INT1,用戶系統(tǒng)要求從P1.0引腳上輸出一個5KHz的方波,并要求采用定時器/計數(shù)器作為串行口的波特率發(fā)生器,另外還需要再增加一個外部中斷源。 ⑴為了不增加其他硬件開銷,可以把T0設(shè)置為方式3,這時可把單片微機的引腳T0作為外部中斷源,TL0設(shè)置為計數(shù)器,但計數(shù)器的定時常數(shù)設(shè)為FFH,這樣當(dāng)T0引腳上出現(xiàn)從“1”至“0”的負(fù)跳變時,TL0計數(shù)溢出,申請中斷,相當(dāng)于一個邊沿觸發(fā)的外部中斷源?!?.2計數(shù)器的應(yīng)用第36頁,共64頁,2023年,2月20日,星期一在T0方式3下,TH0只能做8位定時器,用來產(chǎn)生5KHz方波的定時。TH0只能做8位定時器,用來產(chǎn)生5KHz方波的定時。當(dāng)T0設(shè)置為方式3之后,T1就作為串行口的波特率發(fā)生器,設(shè)為方式2。由P1.0引腳上輸出5KH頻率的方波,而方波周期為200μs,則要求定時時間為100μs,若采用12MHz的晶體振蕩器,則機器周期為1μs。計算時間常數(shù):(28-TC)×1μs=100μs ∴TC=256-100=156⑵編程: ORG 0000H SJMP MAIN ORG 000BH AJMP TL0INT ;TL0中斷入口第37頁,共64頁,2023年,2月20日,星期一
ORG 001BH AJMP TH0INT ;TH0中斷入口 ORG 0030HMAIN: MOV TMOD,#27H;設(shè)T0為方式3, ;TL0為計數(shù)器方式,TH0為定時器方式,T1作波特率發(fā)生器,方式2。 MOV TH0,#156 ;TH0定時常數(shù)。 MOV TL0,#0FFH ;TL0計數(shù)常數(shù) MOV TL1,#BAUD
;BAUD根據(jù)波特率算出的時間常數(shù)。 MOV TH1,#BAUD MOV TCON,#55H
;置TR0和TR1為“1”,啟動TL0和TH0。
第38頁,共64頁,2023年,2月20日,星期一
SETB ET0 ;允許TR0中斷 SETB ET1 ;允許TR1中斷 SETB EA ;允許CPU中斷 SJMP $ ;中斷等待。 ORG 0100HTL0INT: MOV TL0,#0FFH ;重置計數(shù)長度
┇(中斷處理) RETITH0INT: MOV TH0,#156 ;重置定時常數(shù) CPL P1.0 ;P1.0引腳輸出方波 RETI第39頁,共64頁,2023年,2月20日,星期一門控位GATE可用作對INTx引腳上的高電平持續(xù)時間進行計量。當(dāng)GATE位設(shè)為“1”,并設(shè)定時器/計數(shù)器啟動位TRx為“1”,這時定時器/計數(shù)器定時完全取決于INTx引腳,僅當(dāng)INTx引腳電平為“1”時,定時器才工作,換另一角度看,定時器實際記錄的時間就是相應(yīng)INTx引腳上高電平的持續(xù)時間。通過反相器,則可測得相應(yīng)INTx引腳上低電平的持續(xù)時間。二個時間的和即為INTx引腳上輸入波形的周期,其倒數(shù)即為INTx引腳上輸入波形的頻率。還可算出占空比等參數(shù)。
§5.3門控位GATE的應(yīng)用第40頁,共64頁,2023年,2月20日,星期一例5.利用定時器/計數(shù)器測定圖6-11所示波形的一個周期長度。利用門控信號GATE啟動定時器的方法。設(shè)如圖示,T0為定時器,為高電平時,啟動定時器;T1為計數(shù)器,T1的電平由1到0,計數(shù)器計數(shù)。第41頁,共64頁,2023年,2月20日,星期一P3.3(INT1)TR1置1T1開始計時TR1清零圖6–11波形脈沖寬度測試原理編程如下:⑴查詢法 ORG0000HSTART:MOVTMOD,#90H
;設(shè)置T1為定時器方式1,GATA位置“1” MOV TL1,#00H ;置為最大定時值 MOV TH1,#00H LP1:JB P3.3,LP1 ;P3.3為高電平,等待
SETBTR1;當(dāng)P3.3為低電平時,置TR1位為“1”第42頁,共64頁,2023年,2月20日,星期一
LP2: JNB P3.3,LP2 ;當(dāng)P3.3為低電平時,再等待LP3: JB P3.3,LP3 ;當(dāng)P3.3為高電平時,T1開始定時計數(shù) CLR TR1;當(dāng)P3.3為低電平時,高電平脈寬定時計數(shù)結(jié)束 SJMP $當(dāng)fosc=12MHz時,機器周期為1μs,本方案最大被測脈沖寬度為65536μs(65.536ms)。由于靠軟件進行啟動和停止計數(shù),存在一定的測量誤差。若被測波形除了接至P3.3,另外同時通過一個反相器接至P3.2(INT0
),則通過編程同時可以測得波形的高電平寬度和低電平寬度。第43頁,共64頁,2023年,2月20日,星期一⑵中斷法對于脈沖寬度大于65.536ms的脈沖,可以采用對定時溢出次數(shù)進行計數(shù)的方法。這樣,脈寬為(定時溢出時間×溢出次數(shù))+定時時間。利用定時器/計數(shù)器來測定脈沖周期的方法參見圖6-12。(1)設(shè)定晶體振蕩器為6MHz,機器周期Tc為2μs,定時器/計數(shù)器T0為方式1,定時溢出時間為100ms,則T0定時時間常數(shù)為:(TH0)=3CH,(TL0)=B0H第44頁,共64頁,2023年,2月20日,星期一因為外部脈沖同時接至T1的輸入引腳T1,所以T1腳上對下降沿計數(shù)二次,即為外部脈沖的一個周期時間?,F(xiàn)設(shè)T1為計數(shù)器。計數(shù)值為2。當(dāng)計數(shù)值為1時,啟動定時器;當(dāng)計數(shù)值為2時,中斷計數(shù)器T1,并停止定時器T0的定時;T1中斷優(yōu)先級設(shè)為高于定時器T0。計數(shù)初值為FFFEH:即(TH1)=FFH,(TL0)=FEH。(2)編程 ORG 0000H SJMP MAIN ORG 000BH ;定時器T0中斷入口 AJMP TIMEO
ORG 00IBH ;定時器T1中斷入口 AJMPTIMEI
第45頁,共64頁,2023年,2月20日,星期一 ORG 0030HMAIN:MOVR0,#0 ;清除T0定時中斷次數(shù)計數(shù)器 MOV TMOD,#59H ;設(shè)T0為定時器方式1,門控位GATE=1,設(shè)T1為計數(shù)器方式1 MOV TH0,#3CH ;T0定時器初值 MOV TLO,#0B0H MOV TH1,#0FFH ;T1計數(shù)器初值 MOV TL1,#0FEH SETB TR0 ;啟動T0定時器 SETB TR1 ;啟動T1計數(shù)器 MOV IP,#08H ;T1中斷優(yōu)先級高于T0 第46頁,共64頁,2023年,2月20日,星期一
SETB ET1 ;允許T1中斷 SETB ET0 ;允許T0中斷 SETB EA ;CPU開中斷 SETB 20H ;設(shè)20H為T1計數(shù)中斷標(biāo)志LOOP:SETBF0 ;設(shè)用戶標(biāo)志F0為T0定時中斷標(biāo)志
JBF0,$ ;T0定時未溢出,等待 JB20H,LOOP;判T1計數(shù)溢出,若未溢出則循環(huán),否則結(jié)束。 SJMP $ ORG 0100H TIMEO:MOVTL0,#0B0H;重置T0定時器初值 MOV TH0,#3CH
第47頁,共64頁,2023年,2月20日,星期一
INC R0 ;T0定時溢出計數(shù)器加1 CPLF0 ;清除T0定時中斷標(biāo)志 RETI ORG 0200HTIMEI:CLRF0 ;清除T0定時中斷標(biāo)志 CLR20H ;清除T1計數(shù)中斷標(biāo)志 CLRET0;禁止T0、T1中斷 CLRET1 CLREA ;關(guān)中斷 RETI可測的最
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度棉紗行業(yè)質(zhì)量標(biāo)準(zhǔn)制定與實施合同4篇
- 2025版年會現(xiàn)場攝影攝像服務(wù)合同范本4篇
- 二零二五年度棉花病蟲害防治與防治藥物供應(yīng)合同4篇
- 二零二五年度新能源汽車動力電池研發(fā)合作合同
- 2025年度農(nóng)家樂景區(qū)旅游咨詢與導(dǎo)覽服務(wù)合同協(xié)議
- 二零二五年度美容院美容設(shè)備維護保養(yǎng)及備件供應(yīng)合同4篇
- 二零二五年度美甲店互聯(lián)網(wǎng)營銷與電商平臺合作合同4篇
- 二零二五年度南寧市體育場館設(shè)施租賃合同及賽事組織協(xié)議3篇
- 2025年度個人二手車居間銷售合同示范文本2篇
- 二零二五年帳篷租賃及活動策劃服務(wù)合同3篇
- 完整版秸稈炭化成型綜合利用項目可行性研究報告
- 油氣行業(yè)人才需求預(yù)測-洞察分析
- 《數(shù)據(jù)采集技術(shù)》課件-Scrapy 框架的基本操作
- 2025年河北省單招語文模擬測試二(原卷版)
- 工作計劃 2025年度醫(yī)院工作計劃
- 高一化學(xué)《活潑的金屬單質(zhì)-鈉》分層練習(xí)含答案解析
- DB34∕T 4010-2021 水利工程外觀質(zhì)量評定規(guī)程
- 2024年內(nèi)蒙古中考英語試卷五套合卷附答案
- 2024年電工(高級)證考試題庫及答案
- 2024年全國各地中考試題分類匯編:古詩詞閱讀
- 農(nóng)產(chǎn)品質(zhì)量評估與分級
評論
0/150
提交評論