第六章定時(shí)器及應(yīng)用_第1頁(yè)
第六章定時(shí)器及應(yīng)用_第2頁(yè)
第六章定時(shí)器及應(yīng)用_第3頁(yè)
第六章定時(shí)器及應(yīng)用_第4頁(yè)
第六章定時(shí)器及應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第六章定時(shí)器及應(yīng)用第1頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月教學(xué)內(nèi)容基本要求:掌握計(jì)數(shù)/定時(shí)器的應(yīng)用及編程方法重點(diǎn):定時(shí)器/計(jì)數(shù)器工作模式及應(yīng)用難點(diǎn):定時(shí)器/計(jì)數(shù)器的應(yīng)用編程定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)及功能定時(shí)器/計(jì)數(shù)器的控制定時(shí)器/計(jì)數(shù)器的4種工作模式及其應(yīng)用定時(shí)器/計(jì)數(shù)器的編程方法第2頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月§6.1定時(shí)器概述89C51單片機(jī)內(nèi)有兩個(gè)16位定時(shí)器/計(jì)數(shù)器,即定時(shí)器0(T0)和定時(shí)器1(T1),都是16位加1計(jì)數(shù)器。功能:定時(shí)和事件計(jì)數(shù),可用于定時(shí)控制、延時(shí)、對(duì)外部件計(jì)數(shù)和檢測(cè)等場(chǎng)合。T0由兩個(gè)8位特殊功能寄存器TH0和TL0構(gòu)成;T1由TH1和TL1構(gòu)成。第3頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月每個(gè)定時(shí)器都可由軟件設(shè)置為定時(shí)工作方式或計(jì)數(shù)工作方式。由特殊功能寄存器TMOD和TCON所控制。定時(shí)器工作不占用CPU時(shí)間,除非定時(shí)器/計(jì)數(shù)器溢出,才能中斷CPU的當(dāng)前操作。定時(shí)器/計(jì)數(shù)器有四種工作模式。第4頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月定時(shí)器對(duì)89C51片內(nèi)振蕩器輸出經(jīng)12分頻后的脈沖進(jìn)行計(jì)數(shù),即每個(gè)機(jī)器周期使定時(shí)器(T0或T1)的數(shù)值加1直至計(jì)滿溢出。當(dāng)89C51采用12MHz晶振時(shí),一個(gè)機(jī)器周期為1μs,計(jì)數(shù)頻率為1MHz。定時(shí)工作方式若89C51采用6MHz晶振,計(jì)數(shù)頻率為多少?第5頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月通過(guò)引腳T0(P3.4)和T1(P3.5)對(duì)外部脈沖信號(hào)計(jì)數(shù)。當(dāng)輸入脈沖信號(hào)產(chǎn)生由1至0的下降沿時(shí)計(jì)數(shù)器的值加1。CPU檢測(cè)一個(gè)1至0的跳變需要兩個(gè)機(jī)器周期,故最高計(jì)數(shù)頻率為振蕩頻率的1/24。為了確保某個(gè)電平在變化之前被采樣一次,要求電平保持時(shí)間至少是一個(gè)完整的機(jī)器周期Tcy。計(jì)數(shù)工作方式>Tcy>Tcy第6頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月定時(shí)器共有兩個(gè)控制字,由軟件寫TMOD和TCON兩個(gè)8位寄存器,用來(lái)設(shè)置T0和T1的工作模式和控制功能。單片機(jī)系統(tǒng)復(fù)位時(shí),兩個(gè)寄存器所有位都被清0。

§6.2定時(shí)器的控制

第7頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月TMOD用于控制T0和T1的工作模式,其各位的定義格式如下圖所示。

一、工作模式寄存器—TMOD(89H)TMOD不能位尋址,只能字節(jié)尋址。第8頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月

TMOD

GATEC/T

M1

M0用于T0工作模式

(89H)

工作模式

00—模式001—模式110—模式211—模式3

功能選擇

1—計(jì)數(shù)0—定時(shí)

選通控制

1—受/INT1控制0—不受/INT1控制第9頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月M1M0工作模式功能描述00模式013位計(jì)數(shù)器01模式116位計(jì)數(shù)器10模式2自動(dòng)裝入8位計(jì)數(shù)器11模式3定時(shí)器0:分成兩個(gè)8位計(jì)數(shù)器定時(shí)器1:停止計(jì)數(shù)M1、M0形成四種編碼控制四種工作模式第10頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月C/T:定時(shí)器/計(jì)數(shù)器方式選擇位C/T=0:定時(shí)方式計(jì)數(shù)片內(nèi)脈沖(即對(duì)機(jī)器周期計(jì)數(shù),周期確定)C/T=1:計(jì)數(shù)方式計(jì)數(shù)片外脈沖(即對(duì)通過(guò)P3.4/P3.5來(lái)自片外的計(jì)數(shù)信號(hào)計(jì)數(shù),周期不定)第11頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月GATE:門控位GATE=0:軟件使TR0/TR1置1,即可啟動(dòng)定時(shí)器GATE=1:只有INT0/INT1輸入信號(hào)為高電平,軟件使TR0/TR1置1,才可啟動(dòng)定時(shí)器定時(shí)器的使用:設(shè)置工作方式----置初值----啟動(dòng)----溢出中斷第12頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月二、控制寄存器—TCON(88H)TCON各位的作用如下:①TF1(TCON.7)——T1溢出標(biāo)志位。有溢出,TF1=1.②TF0(TCON.5)——T0溢出標(biāo)志位。有溢出,TF0=1.③TR1(TCON.6)——T1運(yùn)行控制位。TR1=1,啟動(dòng)T1④TR0(TCON.4)——T0運(yùn)行控制位。TR0=1,啟動(dòng)T0⑤IE1,IT1,IE0和IT0(TCON.3~TCON.0)——外部中斷INT1,INT0請(qǐng)求及請(qǐng)求方式控制位。89C51復(fù)位后,TCON的所有位被清0。第13頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月§6.3定時(shí)器的四種模式及應(yīng)用

89C51單片機(jī)的定時(shí)/計(jì)數(shù)器T0和T1的四種工作模式,在模式0、模式1和模式2時(shí),T0和T1的工作模式相同;在模式3時(shí),兩個(gè)定時(shí)器的工作模式不同。第14頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月一、模式1及其應(yīng)用(一)模式1的邏輯電路結(jié)構(gòu)(以T0為例)模式1對(duì)應(yīng)的是一個(gè)16位的定時(shí)器/計(jì)數(shù)器。定時(shí)計(jì)數(shù)第15頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月在這種模式下,寄存器(TH0和TL0)以全16位參與計(jì)數(shù)。TH0占高8位,TL0為低8位。當(dāng)TL0計(jì)數(shù)溢出時(shí),向TH0進(jìn)位;TH0溢出時(shí),向中斷標(biāo)志TF0進(jìn)位(硬件置位TF0),并申請(qǐng)中斷。(二)模式1工作特點(diǎn)第16頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月(二)模式1工作特點(diǎn)計(jì)100個(gè)機(jī)器周期數(shù)所需的時(shí)間為多少?(所接晶振為12MHz)定時(shí)時(shí)間為:t=計(jì)數(shù)值×機(jī)器周期=(216-T0初值)×振蕩周期×12如何實(shí)現(xiàn)定時(shí)?如何得到所需的定時(shí)時(shí)間?最大可計(jì)數(shù)多少個(gè)機(jī)器周期?當(dāng)C/T=0時(shí),控制開關(guān)接通振蕩器12分頻輸出端,T0對(duì)機(jī)器周期計(jì)數(shù)。這就是定時(shí)工作方式。利用溢出中斷,并給出相應(yīng)的計(jì)數(shù)初值第17頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月(二)模式1工作特點(diǎn)當(dāng)C/T=1時(shí),T0對(duì)外部輸入計(jì)數(shù)。計(jì)數(shù)長(zhǎng)度為:L=(216-T0初值)(個(gè)外部脈沖)第18頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月例1:設(shè)晶振頻率為12MHz,試計(jì)算定時(shí)器T0工作于模式1時(shí)的最大定時(shí)時(shí)間T。解:當(dāng)T0處于工作模式1時(shí),加1計(jì)數(shù)器為16位。定時(shí)時(shí)間為:t=(216-T0初值)×振蕩周期×12

最大定時(shí)時(shí)間為“T0初值=0”時(shí)。所以:T=216×振蕩周期×12第19頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月例2:用定時(shí)器T1產(chǎn)生一個(gè)50Hz的方波,由P1.1輸出。fosc=6MHz。解:1)確定定時(shí)器T1初值∵方波周期T=1/50=0.02s=20ms

∴用T1定時(shí)10ms,時(shí)間到P1.1引腳電平取反。∴(TH1)=ECH,(TL1)=78H20ms10ms10ms第20頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月解:2)確定工作模式寄存器TMOD的值∵定時(shí)器T1工作于模式1的定時(shí)器工作方式,

∴高四位:GATE=0,C/T=0,M1M0=01,低四位:取0。

∴(TMOD)=00010000B=10H3)編程(查詢方式)

#include<at89x51.h>voidmain(){TMOD=0x10;TH1=0xec;TL1=0x78;TR1=1;P1_1=1;while(1){if(TF1==1){TF1=0;TH1=0xec;TL1=0x78;P1_1=~P1_1;}}}第21頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月3)編程(定時(shí)器溢出中斷方式)#include<at89x51.h>voidmain(){TMOD=0x10;TH1=0xec;TL1=0x78;ET1=1;EA=1;TR1=1;P1_1=1;while(1);}voidtimer_1()interrupt3{TH1=0xec;TL1=0x78;P1_1=~P1_1;}思考:設(shè)定時(shí)器T0用于定時(shí)10ms,晶振為6MHz。編程實(shí)現(xiàn):P1.0輸出周期為40ms,高電平寬為10ms,低電平寬為30ms的矩形波。如何編程?

第22頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月例3:設(shè)定時(shí)器T0選擇工作模式1的計(jì)數(shù)器工作方式,其計(jì)數(shù)器初值為FFFFH,問(wèn)此時(shí)定時(shí)器T0的實(shí)際用途是什么?解:因其初值為FFFFH,只要隨機(jī)外來(lái)一脈沖即可溢出,向CPU申請(qǐng)中斷,故這一內(nèi)部中斷源實(shí)質(zhì)上已作為外部中斷源使用。因此此定時(shí)器T0并不用于定時(shí)或計(jì)數(shù)。第23頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月該模式對(duì)應(yīng)的是一個(gè)13位的定時(shí)器/計(jì)數(shù)器。在這種模式下,(以T0為例)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)中斷?!痢痢罷H0TL08位5位二、模式0及其應(yīng)用第24頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月二、模式0及其應(yīng)用用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為:

t=(213–T0初值)×振蕩周期×12

用于計(jì)數(shù)工作方式時(shí),計(jì)數(shù)長(zhǎng)度為:(213-T0初值)(個(gè)外部脈沖)。

第25頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月例4:設(shè)晶振頻率為12MHz,試計(jì)算定時(shí)器T0工作于模式0時(shí)的最大定時(shí)時(shí)間T。解:當(dāng)T0處于工作模式0時(shí),加1計(jì)數(shù)器為13位。定時(shí)時(shí)間為:t=(213-T0初值)×振蕩周期×12

最大定時(shí)時(shí)間為“T0初值=0”時(shí)。所以:第26頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月模式2把TL0(或TL1)配置成一個(gè)可以自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器,邏輯電路結(jié)構(gòu)如下圖。三、模式2及其應(yīng)用TL0計(jì)數(shù)溢出時(shí),不僅使溢出中斷標(biāo)志位TF0置1,而且還自動(dòng)把TH0中的內(nèi)容重新裝載到TL0中。第27頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月在程序初始化時(shí),TL0和TH0由軟件賦予相同的初值。用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為:t=(28-TL0初值)×機(jī)器周期用于計(jì)數(shù)工作方式時(shí),計(jì)數(shù)長(zhǎng)度為:

(28-TL0初值)(外部脈沖的個(gè)數(shù))該模式可省去軟件中重裝常數(shù)的語(yǔ)句,并可產(chǎn)生相當(dāng)精確的定時(shí)時(shí)間,適合于作串行口波特率發(fā)生器。第28頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月例5:利用定時(shí)器T1的模式2對(duì)外部信號(hào)計(jì)數(shù)。要求每計(jì)滿100次,將P1.0端取反。解:(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。第29頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月(2)計(jì)算T1的計(jì)數(shù)初值

X=28-100=156=9CH

因此:TL1的初值為9CH,重裝初值寄存器TH1=9CH。(3)程序清單#include<at89x51.h>main(){TMOD=0x60;TH1=0x9c;TL1=0x9c;ET1=1;EA=1;TR1=1;while(1);}voidtimer_1()interrupt3{P1_1=~P1_1;}第30頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月四、模式3及其應(yīng)用工作模式3對(duì)T0和T1大不相同。若將T0設(shè)置為模式3,TL0和TH0被分成為兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器,邏輯圖如下圖:第31頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月TL0:

用原T0的各控制位、引腳和中斷源,即C/T,GATE,TR0,TF0,T0(P3.4)引腳,INT0(P3.2)引腳。

TL0可工作在定時(shí)器方式和計(jì)數(shù)器方式。其功能和操作與模式0、模式1相同(只是8位)。TH0:

只可用作簡(jiǎn)單的內(nèi)部定時(shí)功能。TH0占用了定時(shí)器T1的控制位TR1和T1的中斷標(biāo)志TF1,其啟動(dòng)和關(guān)閉僅受TR1的控制。

定時(shí)器T1無(wú)工作模式3狀態(tài)。在T0用作模式3時(shí),T1仍可設(shè)置為模式0~2。第32頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月五、綜合應(yīng)用舉例解:(1)定時(shí)器T0工作模式的確定∵模式0最長(zhǎng)可定時(shí)16.384ms;模式1最長(zhǎng)可定時(shí)131.072ms;模式2最長(zhǎng)可定時(shí)512μs;LED每1秒閃爍一次?!喽〞r(shí)0.5s,可選用模式1,每隔100ms中斷一次,中斷5次從而達(dá)到0.5s的定時(shí)。(2)求計(jì)數(shù)器初值X∵(216-X)×12/(6×106)=100×10-3s∴X=15536=3CB0H因此:(TL0)=0B0H(TH0)=3CH例6:設(shè)時(shí)鐘頻率為6MHz,試編寫用T0產(chǎn)生定時(shí)使P1.0所接的發(fā)光二極管每1秒鐘閃爍一次。第33頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月源程序清單(使發(fā)光二極管閃爍,每1S閃爍1次)#include<at89x51.h>unsignedchartemp=5;main(){TMOD=0x01;TH0=0X3C;TL0=0XB0;ET0=1;EA=1;TR0=1;P1_0=1;while(1);}voidtimer_0()interrupt1{TH0=0X3C;TL0=0XB0;temp--;if(temp==0){temp=5;P1_0=~P1_0;}}第34頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月例7:設(shè)計(jì)實(shí)時(shí)時(shí)鐘程序。時(shí)鐘就是以秒、分、時(shí)為單位進(jìn)行計(jì)時(shí)。用定時(shí)器與中斷的聯(lián)合應(yīng)用。解:(1)實(shí)現(xiàn)時(shí)鐘計(jì)時(shí)的基本方法①計(jì)算計(jì)數(shù)初值。

時(shí)鐘計(jì)時(shí)的最小單位是秒,可把定時(shí)器的定時(shí)時(shí)間定為100ms,計(jì)數(shù)溢出10次即得到1秒;10次計(jì)數(shù)可用軟件方法實(shí)現(xiàn)。

假定使用定時(shí)器T1,以工作模式1進(jìn)行100ms的定時(shí)。如fosc=6MHz,則計(jì)數(shù)初值X為:∴X=15536=3CB0H∴

(TL0)=0B0H(TH0)=3CH第35頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月例6:設(shè)計(jì)實(shí)時(shí)時(shí)鐘程序。時(shí)鐘就是以秒、分、時(shí)為單位進(jìn)行計(jì)時(shí)。用定時(shí)器與中斷的聯(lián)合應(yīng)用。②采用定時(shí)方式進(jìn)行溢出次數(shù)的累計(jì),計(jì)滿10次即得到秒計(jì)時(shí)。

設(shè)置軟件計(jì)數(shù)器初值為10,每100ms定時(shí)時(shí)間到溢出中斷,使軟件計(jì)數(shù)器減1,直到減到0,則1s到。③從秒到分和從分到時(shí)的計(jì)時(shí)是通過(guò)累計(jì)和數(shù)值比較實(shí)現(xiàn)的。

設(shè)置幾個(gè)累加單元分別進(jìn)行對(duì)1s,1min,1h進(jìn)行計(jì)數(shù)。滿1s,秒位累加;滿60s,分位累加;滿60min,時(shí)位累加;滿24h全部累加單元清0第36頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月(2)程序流程及程序清單 ①主程序流程如右圖所示。設(shè)T1為模式1設(shè)中斷次數(shù)清計(jì)時(shí)單元開中斷啟動(dòng)T1調(diào)用顯示子程序時(shí)鐘主程序流程開始第37頁(yè),課件共40頁(yè),創(chuàng)作于2023年2月保護(hù)現(xiàn)場(chǎng)賦計(jì)數(shù)初值到1s?秒單元加1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論