2022年單片機(jī)課件定時(shí)器及應(yīng)用_第1頁(yè)
2022年單片機(jī)課件定時(shí)器及應(yīng)用_第2頁(yè)
2022年單片機(jī)課件定時(shí)器及應(yīng)用_第3頁(yè)
2022年單片機(jī)課件定時(shí)器及應(yīng)用_第4頁(yè)
2022年單片機(jī)課件定時(shí)器及應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

§6.1定時(shí)器概述§6.2定時(shí)器的控制§6.3定時(shí)器的四種模式及應(yīng)用§6.4思考題與習(xí)題第六章定時(shí)器及應(yīng)用§6.1定時(shí)器概述§6.1.18051定時(shí)器結(jié)構(gòu)§6.1.28051定時(shí)器功能§6.1.18051定時(shí)器結(jié)構(gòu)8051定時(shí)器的結(jié)構(gòu)如圖6-1所示。有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,即定時(shí)器0(T0)和定時(shí)器1(T1)。它們實(shí)際上都是16位加1計(jì)數(shù)器。T0由兩個(gè)8位特殊功能寄存器TH0和TL0構(gòu)成;T1由TH1和TL1構(gòu)成。圖6-189C51定時(shí)器結(jié)構(gòu)§6.1.28051定時(shí)器功能每個(gè)定時(shí)器都可由軟件設(shè)置為定時(shí)工作方式或計(jì)數(shù)工作方式及其他靈活多樣的可控功能方式。這些功能由特殊功能寄存器TMOD和TCON所控制。定時(shí)器工作不占用CPU時(shí)間,除非定時(shí)器/計(jì)數(shù)器溢出,才能中斷CPU的當(dāng)前操作。每個(gè)定時(shí)器/計(jì)數(shù)器還有四種工作模式。其中模式0-2對(duì)T0和T1是一樣的,模式3對(duì)兩者不同。定時(shí)工作方式定時(shí)器計(jì)數(shù)8051片內(nèi)振蕩器輸出經(jīng)12分頻后的脈沖,即每個(gè)機(jī)器周期使定時(shí)器(T0或T1)的數(shù)值加1直至計(jì)滿(mǎn)溢出。當(dāng)8051采用12MHz晶振時(shí),一個(gè)機(jī)器周期為1μs,計(jì)數(shù)頻率為1MHz。計(jì)數(shù)工作方式通過(guò)引腳T0(P3.4)和T1(P3.5)對(duì)外部脈沖信號(hào)計(jì)數(shù)。當(dāng)輸入脈沖信號(hào)產(chǎn)生由1至0的下降沿時(shí)定時(shí)器的值加1。CPU檢測(cè)一個(gè)1至0的跳變需要兩個(gè)機(jī)器周期,故最高計(jì)數(shù)頻率為振蕩頻率的1/24。為了確保某個(gè)電平在變化之前被采樣一次,要求電平保持時(shí)間至少是一個(gè)完整的機(jī)器周期。對(duì)輸入脈沖信號(hào)的基本要求如圖6-2所示?!?.2定時(shí)器的控制

§6.2.1工作模式寄存器TMOD§6.2.2控制器寄存器TCON§6.2.1工作模式寄存器TMODTMOD用于控制T0和T1的工作模式。TMOD不能位尋址,只能用字節(jié)設(shè)置定時(shí)器的工作模式,低半字節(jié)設(shè)置T0,高半字節(jié)設(shè)置T1。8051系統(tǒng)復(fù)位時(shí),TMOD的所有位被清0。TMOD各位的定義格式如圖6-3所示。TMOD各位的功能:TMOD各位定義及具體的意義歸納如圖6-4所示。GATEC/TM1M0GATEM1C/TM0定時(shí)器T1定時(shí)器T0TMOD(89H)D7D6D5D4D3D2D1D0圖6-3工作模式寄存器TMOD的位定義圖6-4TMOD各位定義及具體的意義TMOD各位的功能①

M1和M0—操作模式控制位。兩位可形成四種編碼,對(duì)應(yīng)于四種模式。見(jiàn)表6-1。表6-1M1,M0控制的四種工作模式②C/T—計(jì)數(shù)器/定時(shí)器方式選擇位。

C/T=0,設(shè)置為定時(shí)方式。定時(shí)器計(jì)數(shù)8051片內(nèi)脈沖,即對(duì)機(jī)器周期計(jì)數(shù)。C/T=1,設(shè)置為計(jì)數(shù)方式。計(jì)數(shù)器的輸入來(lái)自T0(P3.4)或T1(P3.5)端的外部脈沖。TMOD各位的功能

③GATE—門(mén)控位。GATE=0,只要用軟件使TR0(或TR1)置1就可以啟動(dòng)定時(shí)器,而不管INT0(或INT1)的電平是高還是低。

GATE=1,只有INT0(或INT1)引腳為高電平且由軟件使TR0(或TR1)置1時(shí),才能啟動(dòng)定時(shí)器工作。TMOD各位的功能§6.2.2控制器寄存器TCONTCON除可字節(jié)尋址外,各位還可位尋址。8051系統(tǒng)復(fù)位時(shí),TCON的所有位被清0。

TCON各位的定義格式如圖6-5所示。TCON各位的功能:TCON各位定義及具體的意義歸納如圖6-6所示。TF1TR1TF0TR0IE1IE0IT1IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88H圖6-5控制寄存器TCON的位定義圖6-6TCON各位定義及具體的意義(3)采用查詢(xún)方式的程序圖6-189C51定時(shí)器結(jié)構(gòu)HERE:SJMPHERE;5)—T0溢出標(biāo)志位。三、模式0的應(yīng)用舉例(例6-3)7)—T1溢出標(biāo)志位。設(shè)單片機(jī)晶振頻率fosc=12MHz。MOVTH1,#9CHMOVIE,#88H;定時(shí)器開(kāi)中斷X=28-100=156=9CH在程序初始化時(shí),TL0和TH0由軟件賦予相同的初值。CPLP1.18051定時(shí)器結(jié)構(gòu)三、模式0的應(yīng)用舉例(例6-3)CPLP1.TCON各位的功能①TF1(TCON.7)—T1溢出標(biāo)志位。當(dāng)T1溢出時(shí),由硬件自動(dòng)使中斷觸發(fā)器TF1置1,并CPU申請(qǐng)中斷。當(dāng)CPU響應(yīng)中斷進(jìn)入中斷服務(wù)程序后,TF1由被硬件自動(dòng)清0。TF1也可以用軟件清0。②TF0(TCON.5)—T0溢出標(biāo)志位。其功能和操作情況同TF1。③TR1(TCON.6)—T1運(yùn)行控制位。可通過(guò)軟件置1(TR1=1)或清0(TR1=0)來(lái)啟動(dòng)或關(guān)閉T1。在程序中用指令“SETBTR1”使TR1位置1,定時(shí)器T1便開(kāi)始計(jì)數(shù)。④TR0(TCON.4)—T0運(yùn)行控制位。其功能和操作情況同TR1。TCON各位的功能⑤IE1,IT1,IE0,IT0(TCON.3~TCON.0)—外部中斷INT1,INT0請(qǐng)求及請(qǐng)求方式控制位。前一章已經(jīng)講過(guò)。TCON各位的功能§6.3定時(shí)器的四種模式及應(yīng)用

模式0及其應(yīng)用

模式1及其應(yīng)用

模式2及其應(yīng)用

模式3及其應(yīng)用

綜合應(yīng)用舉例§6.3.1模式0及其應(yīng)用一、模式0的邏輯電路結(jié)構(gòu)二、模式0工作特點(diǎn)三、模式0的應(yīng)用舉例一、模式0的邏輯電路結(jié)構(gòu)T0在模式0的邏輯電路結(jié)構(gòu)如圖所示。(T1相同)T0(或T1)模式0結(jié)構(gòu)-13位計(jì)數(shù)器二、模式0工作特點(diǎn)在這種模式下,16位寄存器(TH0和TL0)只用了13位。其中TL0的高3位未用,其余5位為整個(gè)13位的低5為,TH0占高8位。當(dāng)TL0的低5位溢出時(shí),向TH0進(jìn)位;TH0溢出時(shí),向中斷標(biāo)志TF0進(jìn)位(硬件置位TF0),并申請(qǐng)中斷。定時(shí)時(shí)間為:t=(213-T0初值)×振蕩周期×12三、模式0的應(yīng)用舉例(例6-1)例6-1:設(shè)定時(shí)器T0選擇工作模式0,定時(shí)時(shí)間為1ms,fosc=6MHz。試確定T0初值,計(jì)算最大定時(shí)時(shí)間T。三、模式0的應(yīng)用舉例(例6-1)解:當(dāng)T0處于工作模式0時(shí),加1計(jì)數(shù)器為13位。(1)試確定T0初值

設(shè)T0的初值位X。則:(213-X)×1/6×10-6×12=1×10-3sX=7692D=1111000001100BT0的低5位:01100B=0CH即(TL0)=0CHT0的高8位:11110000B=F0H即(TH0)=F0H(2)計(jì)算最大定時(shí)時(shí)間TT0的最大定時(shí)時(shí)間對(duì)應(yīng)于13位計(jì)數(shù)器T0的各位全為1,即(TL0)=1FH,(TH0)=FFH.則:T=213×1/6×10-6三、模式0的應(yīng)用舉例(例6-2)例6-2:設(shè)T0工作在模式0,定時(shí)時(shí)間為1ms,fosc=6MHz。編程實(shí)現(xiàn)其定時(shí)功能。定時(shí)時(shí)間到,P1.0取反。

三、模式0的應(yīng)用舉例(例6-2)解:(1)計(jì)算T0初值X

計(jì)算步驟見(jiàn)例6-1。

結(jié)果:(TH0)=0F0H,(TL0)=0CH。三、模式0的應(yīng)用舉例(例6-2)(2)程序清單:

初始化引導(dǎo)程序ORG0000HRESET:AJMPMAIN;跳過(guò)中斷服務(wù)程序區(qū)ORG000BH;中斷服務(wù)程序入口AJMPITOP三、模式0的應(yīng)用舉例(例6-2)主程序:ORG0100HMAIN:MOVSP,#60H;設(shè)堆棧指針ACALLPTOMDHERE:AJMPHERE;等待時(shí)間到,轉(zhuǎn)入中斷服務(wù)程序PTOMD:MOVTMOD,#00H;選擇工作模式MOVTL0,#0CH;送初值MOVTH0,#0F0HSETBTR0;啟動(dòng)定時(shí)SETBET0;T0開(kāi)中斷SETBEA;CPU開(kāi)中斷RET三、模式0的應(yīng)用舉例(例6-2)中斷服務(wù)程序ORG0120HITOP:MOVTL0,#0CH;重新裝如初值MOVTH0,#0F0H取反RETI三、模式0的應(yīng)用舉例(例6-3)例6-3:利用T0的工作模式0產(chǎn)生1ms定時(shí),在P1.0引腳輸出周期為2ms的方波。設(shè)單片機(jī)晶振頻率fosc=12MHz。編程實(shí)現(xiàn)其功能。三、模式0的應(yīng)用舉例(例6-3)解:取反一次即可。

(1)選擇工作模式

T0的模式字為T(mén)MOD=00H,即M1M0=00,C/T=0,GATE=0,其余位為0。三、模式0的應(yīng)用舉例(例6-3)(2)計(jì)算1ms定時(shí)時(shí)T0的初值

(213-X)×1/12×10-6×12=1×10-3sX=7193D=1110000011000BT0的低5位:11000B=18H即(TL0)=18HT0的高8位:11100000B=E0H即(TH0)=E0H

三、模式0的應(yīng)用舉例(例6-3)(3)采用查詢(xún)方式的程序程序清單:MOVTMOD,#00H;設(shè)置T0為模式0MOVTL0,#18H;送初值MOVTH0,#0E0HSETBTR0;啟動(dòng)定時(shí)LOOP:JBCTF0,NEXT;查詢(xún)定時(shí)時(shí)間到否SJMPLOOPNEXT:MOVTL0,#18H;重裝計(jì)數(shù)初值MOVTH0,#0E0HCPLP1.0;取反SJMPLOOP;重復(fù)循環(huán)三、模式0的應(yīng)用舉例(例6-3)(4)采用定時(shí)器溢出中斷方式的程序程序清單:主程序ORG0000HRESET:AJMPMAIN;跳過(guò)中斷服務(wù)程序區(qū)ORG0030HMAIN:MOVTMOD,#00H;設(shè)置T0為模式0MOVTL0,#18H;送初值MOVTH0,#0E0HSETBEA;CPU開(kāi)中斷SETBET0;T0中斷允許SETBTR0;啟動(dòng)定時(shí)HERE:SJMPHERE;等待中斷,虛擬主程序三、模式0的應(yīng)用舉例(例6-3)中斷服務(wù)程序ORG000BHAJMPCTC0ORG0120HCTC0:MOVTL0,#18H;重新裝如初值MOVTH0,#0E0H取反RETI§6.3.2模式1及其應(yīng)用一、模式1的邏輯電路結(jié)構(gòu)二、模式1工作特點(diǎn)三、模式1的應(yīng)用舉例一、模式1的邏輯電路結(jié)構(gòu)T0在模式1的邏輯電路結(jié)構(gòu)如圖6-7所示。(T1相同)圖6-7T0(或T1)模式1結(jié)構(gòu)-16位計(jì)數(shù)器二、模式1工作特點(diǎn)該模式對(duì)應(yīng)的是一個(gè)16位的定時(shí)器/計(jì)數(shù)器。用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為:

t=(216-T0初值)×振蕩周期×12用于計(jì)數(shù)工作方式時(shí),計(jì)數(shù)長(zhǎng)度最大為:216=65536(個(gè)外部脈沖)三、模式1的應(yīng)用舉例(例6-4)輸出。,使用程序查詢(xún)方式,fosc=6MHz。三、模式1的應(yīng)用舉例(例6-4)解:∵方波周期T=1/50=0.02s=20ms

∴用T1定時(shí)10ms

計(jì)數(shù)初值X為:

X=216-12×10×1000/12=65536-10000=55536=D8F0H三、模式1的應(yīng)用舉例(例6-4)源程序清單:MOVTMOD,#10H;設(shè)置T1為模式1SETBTR1;啟動(dòng)定時(shí)LOOP:MOVTL1,#0D8H;送初值MOVTH1,#0F0HJNBTF1,$;查詢(xún)定時(shí)時(shí)間到否CLRTF1;產(chǎn)生溢出,清標(biāo)志位CPLP1.1;取反SJMPLOOP;重復(fù)循環(huán)§6.3.3模式2及其應(yīng)用一、模式2的邏輯電路結(jié)構(gòu)二、模式2工作特點(diǎn)三、模式2的應(yīng)用舉例一、模式2的邏輯電路結(jié)構(gòu)T0在模式2的邏輯電路結(jié)構(gòu)如圖6-8所示。(T1相同)TL0計(jì)數(shù)溢出時(shí),不僅使溢出中斷標(biāo)志位TF0置1,而且還自動(dòng)把TH0中的內(nèi)容重新裝載到TL0中。TL0用作8位計(jì)數(shù)器,TH0用以保存初值。圖6-8T0(或T1)模式2結(jié)構(gòu)-8位計(jì)數(shù)器二、模式2工作特點(diǎn)該模式把TL0(TL1)配置成一個(gè)可以自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。在程序初始化時(shí),TL0和TH0由軟件賦予相同的初值。用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為:t=(28-TH0初值)×振蕩周期×12用于計(jì)數(shù)工作方式時(shí),計(jì)數(shù)長(zhǎng)度最大為:28=256(個(gè)外部脈沖)該模式可省去軟件中重裝常數(shù)的語(yǔ)句,并可產(chǎn)生相當(dāng)精確的定時(shí)時(shí)間,適合于作串行口波特率發(fā)生器。三、模式2的應(yīng)用舉例(例6-5)輸出一個(gè)500μs的同步脈沖。請(qǐng)編程序?qū)崿F(xiàn)該功能。查詢(xún)方式,fosc=6MHz。三、模式2的應(yīng)用舉例(例6-5)解:(1)模式選擇

選T0為模式2,外部事件計(jì)數(shù)方式。輸出由1變?yōu)?。T0定時(shí)到產(chǎn)生溢出,使P1.0輸出恢復(fù)高電平,T0又恢復(fù)外部事件計(jì)數(shù)方式。如圖6-9

所示。圖6-9功能描述三、模式2的應(yīng)用舉例(例6-5)(2)計(jì)算初值

T0工作在外部事件計(jì)數(shù)方式,當(dāng)計(jì)數(shù)到28時(shí),再加1計(jì)數(shù)器就會(huì)溢出。設(shè)計(jì)數(shù)初值為X,當(dāng)再出現(xiàn)一次外部事件時(shí),計(jì)數(shù)器溢出。則:X+1=28

X=28-1=11111111B=0FFH

T0工作在定時(shí)工作方式,設(shè)晶振頻率為6MHz,500μs相當(dāng)于250個(gè)機(jī)器周期。因此,初值X為(28-X)×2μs=500μs

X=6=06H三、模式2的應(yīng)用舉例(例6-5)(3)程序清單START:MOVTMOD,#06H;設(shè)置T0為模式2,外部計(jì)數(shù)方式MOVTL0,#0FFH;T0計(jì)數(shù)器初值MOVTH0,#0FFHSETBTR0;啟動(dòng)T0計(jì)數(shù)LOOP1:JBCTF0,PTFO1;查詢(xún)T0溢出標(biāo)志,;TF0=1時(shí)轉(zhuǎn),且清TF0=0SJMPLOOP1;三、模式2的應(yīng)用舉例(例6-5)PTFO1:CLRTR0;停止計(jì)數(shù)MOVTMOD,#02H;設(shè)置T0為模式2,定時(shí)方式MOVTL0,#06H;送初值,定時(shí)500μsMOVTH0,#06HSETBTR0;啟動(dòng)定時(shí)500μsLOOP2:JBCTF0,PTFO2;查詢(xún)T0溢出標(biāo)志,;TF0=1時(shí)轉(zhuǎn),且清TF0=0;(第一個(gè)500μs到否?)SJMPLOOP2;等待中斷,虛擬主程序CLRTR0;停止計(jì)數(shù)SJMPSTART三、模式2的應(yīng)用舉例(例6-6)解:(1)選擇模式外部信號(hào)由T1(P3.5)引腳輸入,每發(fā)生一次負(fù)跳變計(jì)數(shù)器加1,每輸入100個(gè)脈沖,計(jì)數(shù)器發(fā)生溢出中斷,中斷服務(wù)程序?qū)1.0取反一次。

T1計(jì)數(shù)工作方式模式2的模式字為(TMOD)=60H。T0不用時(shí),TMOD的低4位可任取,但不能進(jìn)入模式3,一般取0。三、模式2的應(yīng)用舉例(例6-6)(2)計(jì)算T1的計(jì)數(shù)初值

X=28-100=156=9CH

因此:TL1的初值為9CH,重裝初值寄存器TH1=9CH。三、模式2的應(yīng)用舉例(例6-6)(3)程序清單MAIN:MOVTMOD,#60H;設(shè)置T1為模式2,外部計(jì)數(shù)方式MOVTL1,#9CH;T1計(jì)數(shù)器初值MOVTH1,#9CHMOVIE,#88H;定時(shí)器開(kāi)中斷SETBTR1;啟動(dòng)T1計(jì)數(shù)HERE:SJMPHERE;等待中斷ORG001BH;中斷服務(wù)程序入口RETI§6.3.5綜合應(yīng)用舉例(例6-8)例6-8:設(shè)時(shí)鐘頻率為6MHz。編寫(xiě)利用T0產(chǎn)生1s循環(huán)定時(shí)的程序,時(shí)間到后P1.0取反。§6.3.5綜合應(yīng)用舉例(例6-8)解:(1)定時(shí)器T0工作模式的確定∵模式0最長(zhǎng)可定

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論