單片機 第六章_第1頁
單片機 第六章_第2頁
單片機 第六章_第3頁
單片機 第六章_第4頁
單片機 第六章_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機第六章第1頁,共32頁,2023年,2月20日,星期一6.1定時器/計數(shù)器6.1.1定時器/計數(shù)器的結(jié)構(gòu)第2頁,共32頁,2023年,2月20日,星期一一、定時/計數(shù)器的定時和計數(shù)功能在TMOD中,各有一個控制位(C/T),分別用于控制定時/計數(shù)器T0和T1是工作在定時器方式還是計數(shù)器方式。1.定時功能----計數(shù)輸入信號是內(nèi)部時鐘脈沖,每個機器周期使寄存器的值加1。所以,計數(shù)頻率是振蕩頻率的1/12。2.計數(shù)功能----計數(shù)脈沖來自相應(yīng)的外部輸入引腳,T0為P3.4,T1為P3.5。定時/計數(shù)器的核心部件是二進制加1計數(shù)器(TH0、TL0或TH1、TL1)。第3頁,共32頁,2023年,2月20日,星期一6.1.2定時器/計數(shù)器的控制寄存器與定時器/計數(shù)器有關(guān)的控制寄存器有:1.定時器控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中斷請求標志觸發(fā)方式選擇啟動定時/計數(shù)器0

低電平1下降沿0停止1啟動第4頁,共32頁,2023年,2月20日,星期一2.工作方式控制寄存器TMODT1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE—門控位C/T—計數(shù)/定時選擇M1M0—工作方式選擇第5頁,共32頁,2023年,2月20日,星期一計數(shù)脈沖輸入6.1.3定時器/計數(shù)器的工作方式定時器/計數(shù)器共有四種工作方式1.方式0—13位方式

TF0T0TR0GATEINT01≥1&C/T=1振蕩器1/12C/T=0TL0TH08位低5位13位計數(shù)器定時器計數(shù)器第6頁,共32頁,2023年,2月20日,星期一定時時間為:t=(213-T0初值)×機器周期第7頁,共32頁,2023年,2月20日,星期一2.方式1—16位方式定時時間為:

t=(216-T0初值)×機器周期振蕩器1/12TL0TH0TF01≥1&T0TR0GATEINT0C/T=0C/T=18位8位16位計數(shù)器第8頁,共32頁,2023年,2月20日,星期一3.方式2—8位自動裝入時間常數(shù)方式定時時間為:

t=(28-T0初值)×機器周期TF0振蕩器1/121≥1&T0TR0GATEINT0C/T=0C/T=1TL0TH0第9頁,共32頁,2023年,2月20日,星期一4.方式3—2個8位方式

僅T0可以工作在方式3—此時T0分成2個獨立的計數(shù)器—TL0和TH0,前者用原來T0的控制信號(TR0、TF0),后者用原來T1的控制信號(TR1、TF1)。第10頁,共32頁,2023年,2月20日,星期一6.2定時器/計數(shù)器的應(yīng)用

可編程器件在使用前需要進行初始化:①確定TMOD控制字:編程時將控制字送TMOD;②計算計數(shù)器的計數(shù)初值:

編程時將計數(shù)初值送THi、TLi;第11頁,共32頁,2023年,2月20日,星期一③開中斷(如果使用中斷方式):

編程實置位EA、ETi④

TRi位置位控制定時器的啟動和停止。第12頁,共32頁,2023年,2月20日,星期一6.2.1定時器方式0的應(yīng)用

1.定時時間常數(shù)的計算定時時間t=(M-X)×Tosc其中M可取值為213、216、28,Tosc為機器周期。計數(shù)器初值X=M-t/Tosc例如:單片機采用12M晶振,定時器工作在方式0,定時時間為5ms,那么TH0及TL0的設(shè)置如下:X=8192-5000/1=3192=C78H=110001111000其中:TL0取低5位,其余位為TH0,那么TH0=63H;TL0=18H。第13頁,共32頁,2023年,2月20日,星期一2.TMOD寄存器初始化為了把定時器/計數(shù)器0設(shè)定為方式0,則M1M0=00;為實現(xiàn)定時功能,應(yīng)使=0;為實現(xiàn)定時器/計數(shù)器0的運行控制,則GATE=0,定時器/計數(shù)器1不用,有關(guān)位設(shè)定為0,因此TMOD寄存器應(yīng)初始化為00H。由定時器控制寄存器TCON中的TR0位控制定時的啟動和停止,TR0=1啟動,TR0=0停止。第14頁,共32頁,2023年,2月20日,星期一【例6-1】利用單片機的定時器實現(xiàn)5ms的定時,軟件延時1s,使圖6-6所示的電路圖中的發(fā)光二極管實現(xiàn)1s鐘的閃爍。

第15頁,共32頁,2023年,2月20日,星期一軟件如下:

ORG 0000HAJMP MAINORG 000BH;定時器T0中斷服務(wù)程序入口地址

AJMP IT0ORG 0030HMAIN: MOV SP,#70H MOV TMOD,#00H ;設(shè)置定時器方式0 MOV IE,#82H ;設(shè)置中斷控制寄存器

MOV R2,#0C8H ;軟件延時時間 ;1s=200×5ms SETB P1.0 ;使發(fā)光二極管滅

MOV TH0,#63H ;置定時器時間常數(shù)

MOV TL0,#18H SETB TR0 ;啟動定時器T0LOOP: AJMP LOOP第16頁,共32頁,2023年,2月20日,星期一IT0: CLR TR0 ;中斷服務(wù)程序開始,關(guān)閉定時器

DJNZ R2,YAS1 ;判斷1s到嗎?

MOV R2,#0C8H ;1s到,重新置軟件延時常數(shù)

CPL P1.0 ;P1.0取反,實現(xiàn)閃爍YAS1: MOV TH0,#63H ;重新啟動定時器

MOV TL0,#18H SETB TR0 RETI ;中斷服務(wù)程序返回

END第17頁,共32頁,2023年,2月20日,星期一6.2.2定時器方式1的應(yīng)用例題:設(shè)晶振頻率fOSC=6MHz,使用定時器1以方式1產(chǎn)生周期為500μs的方波脈沖,并由P1.0

輸出。試以中斷方式實現(xiàn)。8051P1.0500μs第18頁,共32頁,2023年,2月20日,星期一1.TMOD確定T1控制T0控制XXXX1000M0M1C/TGATEM0M1C/TGATE控制字10H

要產(chǎn)生500μs

的方波脈沖,只需在P1.0端以250μs為間隔,交替輸出高低電平即可實現(xiàn)。為此,定時間應(yīng)為250μs。使用6MHz晶振,則一個機器周期為2μs,設(shè)待求計數(shù)初值為X,則:2.計算計數(shù)器的計數(shù)初值第19頁,共32頁,2023年,2月20日,星期一(216–X)×2×10-6=250×10-6

即216–X=125X=216-125=65536-125=65411=(10000H-7DH)=1111111110000011

=0FF83HTH1=0FFH,TL1=83H3.采用中斷方式:編程時打開全局和局部中斷。4.由定時器控制寄存器TCON中的TR1位控制定時器的啟動和停止。

TR1=1,啟動;

TR1=0,停止。第20頁,共32頁,2023年,2月20日,星期一程序設(shè)計

ORG0000HLJMPMAIN;主程序入口

ORG001BHLJMPINTT1;T1中斷入口第21頁,共32頁,2023年,2月20日,星期一INTT1:MOVTH1,#0FFH;重新設(shè)置初值

MOVTL1,#83HCPLP1.0

;輸出取反

RETI

ORG1000HMAIN:MOVTMOD,#10H;T1為方式1MOVTH1,#0FFHMOVTL1,#83H;初值

SETBEA;允許中斷

SETBET1SETBTR1;啟動定時

SJMP$;等待中斷主程序中斷處理程序第22頁,共32頁,2023年,2月20日,星期一例題2:設(shè)晶振頻率fOSC=6MHz,分別討論各種工作方式下最長定時時間。解:1.由fOSC=6MHz可知,MC=2us;2.由于是加1計數(shù),所以最長定時應(yīng)是計數(shù)初值最小時(即為0時)的定時時間。所以此時有:方式0:(213–0)×2us=214us=16384us=16.384ms第23頁,共32頁,2023年,2月20日,星期一方式1:(216–0)×2us=217us=131.072ms方式2、3

(28–0)×2us=29us=0.512ms注意:以上是當(dāng)fOSC=6MHz,即MC=2us時各種方式下的定時時間,若fOSC=12MHz,則最長定時時間將縮短一半。第24頁,共32頁,2023年,2月20日,星期一6.2.3外部脈沖寬度的測量寄存器TMOD的GATE位為1時,定時/計數(shù)的啟動和關(guān)閉受外部中斷信號的控制。當(dāng)外部信號上出現(xiàn)高電平時,啟動定時器,T0開始對機器周期進行計數(shù),直到上出現(xiàn)低電平時,T0停止計數(shù),讀出T0的計數(shù)值,即可算出時間(脈沖的寬度)

第25頁,共32頁,2023年,2月20日,星期一【例6-3】電路如圖6-7所示,在引腳輸入一個脈沖,采用查詢方式,測量這個脈沖的高電平的寬度。振蕩器1/12TL0TH0TF01≥1&T0TR0GATEINT0C/T=0C/T=18位8位16位計數(shù)器第26頁,共32頁,2023年,2月20日,星期一程序如下:

ORG 0000HAJMP MAINORG 0030HMAIN: MOV SP,#70H MOV TMOD,#09H;設(shè)置定時器0為方式1, ;GATE置1 MOV TH0,#00H ;定時器時間常數(shù)清0 MOV TL0,#00HLOOP1: JB P3.2,LOOP1;起始準備

SETB TR0 ;啟動T0,但并未計數(shù)LOOP2: JNB P3.2,LOOP2;正脈沖到,開始計數(shù)LOOP3: JB P3.2,LOOP3;負脈沖到?

CLR TR0 ;停止計數(shù)

MOV A,TL0 ;計數(shù)器低8位送R2保存

MOV R2,A MOV A,TH0 MOV R3,A ;計數(shù)器高8位送R3保存

LJMP MAIN END第27頁,共32頁,2023年,2月20日,星期一6.2.4單片機內(nèi)部軟件看門狗的應(yīng)用用一個定時器來做軟件看門狗(WATCHDOG),將它的溢出中斷設(shè)定為最高優(yōu)先級中斷,系統(tǒng)的其它中斷均設(shè)為低優(yōu)先級中斷,軟件看門狗啟動后,系統(tǒng)工作程序必須經(jīng)常重新設(shè)置定時器的時間常數(shù),且每兩次設(shè)置之間的間隔不得大于定時器的定時時間。第28頁,共32頁,2023年,2月20日,星期一【例6-4】當(dāng)程序陷

溫馨提示

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

評論

0/150

提交評論