單片機(jī)原理及接口技術(shù)-第六章-定時(shí)器及應(yīng)用課件_第1頁
單片機(jī)原理及接口技術(shù)-第六章-定時(shí)器及應(yīng)用課件_第2頁
單片機(jī)原理及接口技術(shù)-第六章-定時(shí)器及應(yīng)用課件_第3頁
單片機(jī)原理及接口技術(shù)-第六章-定時(shí)器及應(yīng)用課件_第4頁
單片機(jī)原理及接口技術(shù)-第六章-定時(shí)器及應(yīng)用課件_第5頁
已閱讀5頁,還剩89頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第六章

定時(shí)器及應(yīng)用主講:武桐第六章

定時(shí)器及應(yīng)用主講:武桐第六章定時(shí)器及應(yīng)用在測(cè)控系統(tǒng)中,常常需要有實(shí)時(shí)時(shí)鐘和計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)控制以及對(duì)外界事件進(jìn)行計(jì)數(shù)。MCS-51內(nèi)部的兩個(gè)16位定時(shí)器/計(jì)數(shù)器就具有這兩種功能,可用于定時(shí)控制、延時(shí)、對(duì)外部事件計(jì)數(shù)和檢測(cè)等場(chǎng)合。定時(shí)器概述定時(shí)器的控制定時(shí)器的四種模式及應(yīng)用定時(shí)器的結(jié)構(gòu)和功能工作寄存器和控制寄存器模式1、2、3及應(yīng)用第六章定時(shí)器及應(yīng)用在測(cè)控系統(tǒng)中,常常需2

1、定時(shí)器的結(jié)構(gòu)這些寄存器之間是通過內(nèi)部總線和控制邏輯電路連接起來的?!?.1定時(shí)器概述1、定時(shí)器的結(jié)構(gòu)這些寄存器之間是通過內(nèi)部總線和控制邏輯電3§6.1定時(shí)器概述89C51定時(shí)器的結(jié)構(gòu)如圖6-1

所示?!?/p>

有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,即T0和T1,它們實(shí)際上都是16位加1計(jì)數(shù)器。◆

T0由兩個(gè)8位特殊功能寄存器TH0和TL0構(gòu)成;T1由TH1和TL1構(gòu)成。這些寄存器用于存放定時(shí)和計(jì)數(shù)初值。0000H~FFFFH0~65535§6.1定時(shí)器概述89C51定時(shí)器的結(jié)構(gòu)如圖6-1所示4§6.1定時(shí)器概述◆每個(gè)定時(shí)器都可由軟件設(shè)置為定時(shí)工作方式或計(jì)數(shù)工作方式及其他靈活多樣的可控功能方式。這些功能由特殊功能寄存器TMOD和TCON所控制?!?/p>

TMOD主要用于選定定時(shí)器的工作方式;TCON主要用于控制定時(shí)器的啟動(dòng)與停止?!?.1定時(shí)器概述◆每個(gè)定時(shí)器都可由軟件設(shè)置為定時(shí)工5§6.1定時(shí)器概述

2、定時(shí)器的功能16位的定時(shí)器/計(jì)數(shù)器的實(shí)質(zhì)上是一個(gè)加1的計(jì)數(shù)器,其控制電路受軟件控制、切換。計(jì)數(shù)的次數(shù)和時(shí)間之間是相關(guān)的。只要計(jì)數(shù)脈沖的間隔相等,計(jì)數(shù)值就代表時(shí)間的流逝§6.1定時(shí)器概述2、定時(shí)器的功能16§6.1定時(shí)器概述※定時(shí)工作方式當(dāng)定時(shí)器/計(jì)數(shù)器為定時(shí)工作方式時(shí),加1信號(hào)由振蕩器的12分頻產(chǎn)生,即每過一個(gè)機(jī)器周期,計(jì)數(shù)值增1,直至計(jì)滿溢出為止。顯然,定時(shí)器的定時(shí)時(shí)間與系統(tǒng)的振蕩頻率有關(guān)。由于一個(gè)機(jī)器周期等于12個(gè)振蕩周期,所以計(jì)數(shù)頻率fcount=1/12fosc§6.1定時(shí)器概述※定時(shí)工作方式當(dāng)定時(shí)器/計(jì)數(shù)器為定7§6.1定時(shí)器概述※定時(shí)工作方式例:晶振為12MHz,則計(jì)數(shù)周期為

T=1/(12*106)Hz*1/12=1微秒最短的定時(shí)周期當(dāng)8051采用12MHz晶振時(shí),一個(gè)機(jī)器周期為1μs,計(jì)數(shù)頻率為1MHz。§6.1定時(shí)器概述※定時(shí)工作方式例:晶振為12MHz8§6.1定時(shí)器概述※計(jì)數(shù)工作方式當(dāng)定時(shí)器/計(jì)數(shù)器為計(jì)數(shù)工作方式時(shí),通過引腳T0和T1對(duì)外部信號(hào)計(jì)數(shù),外部脈沖的下降沿觸發(fā)計(jì)數(shù)。在每個(gè)機(jī)器周期的S5P2期間采樣引腳。采樣過程:當(dāng)輸入脈沖信號(hào)產(chǎn)生由1至0的下降沿時(shí)定時(shí)器的值加1。>Tcy>Tcy§6.1定時(shí)器概述※計(jì)數(shù)工作方式當(dāng)定時(shí)器/計(jì)數(shù)器為計(jì)9§6.1定時(shí)器概述※計(jì)數(shù)工作方式由于CPU檢測(cè)一個(gè)由1到0的跳變需要兩個(gè)機(jī)器周期,所以計(jì)數(shù)的最高頻率為振蕩頻率的1/24。為了確保給定電平在變化前至少被采樣一次,外部計(jì)數(shù)脈沖的高低電平均需保持一個(gè)機(jī)器周期以上?!?.1定時(shí)器概述※計(jì)數(shù)工作方式由于CPU檢測(cè)一個(gè)由10§6.1定時(shí)器概述

2、定時(shí)器的功能

經(jīng)過分析,我們知道單片機(jī)中的定時(shí)器和計(jì)數(shù)器是一個(gè)東西,只不過計(jì)數(shù)器用來記錄外界發(fā)生的事情,而定時(shí)器則是由單片機(jī)提供一個(gè)非常穩(wěn)定的計(jì)數(shù)源。定時(shí)器/計(jì)數(shù)器是一種可編程部件,在其開始工作前,CPU必須將一些命令(控制字)寫入定時(shí)器/計(jì)數(shù)器。這個(gè)過程稱為定時(shí)器/計(jì)數(shù)器的初始化?!?.1定時(shí)器概述2、定時(shí)器的功能11§6.1定時(shí)器概述

2、定時(shí)器的功能

當(dāng)CPU用軟件給定時(shí)器設(shè)置了某種工作方式之后,定時(shí)器就會(huì)按設(shè)定的工作方式獨(dú)立運(yùn)行,不再占用CPU的操作時(shí)間,除非定時(shí)器計(jì)數(shù)溢出,才可能中斷CPU當(dāng)前操作。每個(gè)定時(shí)器/計(jì)數(shù)器還有4種工作模式。其中模式0-2對(duì)T0和T1是一樣的,模式3對(duì)兩者不同?!?.1定時(shí)器概述2、定時(shí)器的功能12§6.2定時(shí)器的控制

1、工作模式寄存器TMOD

2、控制寄存器TCON定時(shí)器共有兩個(gè)控制字,由軟件寫入TMOD和TCON兩個(gè)8位寄存器,用來設(shè)置T0或T1的操作模式和控制功能。當(dāng)89C51系統(tǒng)復(fù)位時(shí),兩個(gè)寄存器所有位都被清零。§6.2定時(shí)器的控制1、工作模式寄存器TMOD13§6.2定時(shí)器的控制

1、工作模式寄存器TMODTMOD用于控制T0和T1的工作模式。TMOD不能位尋址,只能用字節(jié)設(shè)置定時(shí)器的工作模式,低半字節(jié)設(shè)置T0,高半字節(jié)設(shè)置T1。89C51系統(tǒng)復(fù)位時(shí),TMOD的所有位被清0。89H§6.2定時(shí)器的控制1、工作模式寄存器TMODT14圖6-3工作模式寄存器TMOD的位定義§6.2定時(shí)器的控制

1、工作模式寄存器TMODGATEC/TM1M0GATEM1C/TM0定時(shí)器T1定時(shí)器T0TMOD(89H)

bit7bit6bit5bit4bit3bit2bit1bit0圖6-3工作模式寄存器TMOD的位定義§6.2定時(shí)15TMOD各位的功能①

M1和M0—操作模式控制位。

兩位可形成四種編碼,對(duì)應(yīng)于四種模式。見表6-1。TMOD各位的功能:§6.2定時(shí)器的控制

1、工作模式寄存器TMODGATEC/TM1M0GATEM1C/TM0定時(shí)器T1定時(shí)器T0

bit7bit6bit5bit4bit3bit2bit1bit0TMOD各位的功能①M(fèi)1和M0—操作模式控制位。TMOD16表6-1M1,M0控制的四種工作模式§6.2定時(shí)器的控制表6-1M1,M0控制的四種工作模式§6.2定時(shí)器17TMOD各位的功能②

C/T—計(jì)數(shù)器/定時(shí)器方式選擇位。§6.2定時(shí)器的控制

1、工作模式寄存器TMODGATEC/TM1M0GATEM1C/TM0◆

C/T=0,設(shè)置為定時(shí)方式。定時(shí)器計(jì)數(shù)89C51片內(nèi)脈沖,即對(duì)機(jī)器周期計(jì)數(shù)?!?/p>

C/T=1,設(shè)置為計(jì)數(shù)方式。計(jì)數(shù)器的輸入來自T0(P3.4)或T1(P3.5)端的外部脈沖。

bit7bit6bit5bit4bit3bit2bit1bit0TMOD各位的功能②C/T—計(jì)數(shù)器/定時(shí)器方式選擇位?!?18TMOD各位的功能③

GATE—門控位?!?.2定時(shí)器的控制

1、工作模式寄存器TMODGATEC/TM1M0GATEM1C/TM0◆

GATE=0,只要用軟件使TR0(或TR1)置1就可啟動(dòng)定時(shí)器,而不管INT0(或INT1)的電平的高低;◆

GATE=1,只有INT0(或INT1)引腳為高電平且由軟件使TR0(或TR1)置1時(shí),才能啟動(dòng)定時(shí)器工作。

bit7bit6bit5bit4bit3bit2bit1bit0TMOD各位的功能③GATE—門控位?!?.2定時(shí)器的19§6.2定時(shí)器的控制§6.2定時(shí)器的控制20§6.2定時(shí)器的控制

2、控制寄存器TCONTCON除可字節(jié)尋址外,各位還可位尋址。89C51系統(tǒng)復(fù)位時(shí),TCON的所有位被清0。TCON各位的定義格式如圖所示:TF1TR1TF0TR0IE1IE0IT1IT0TCON(88H)

8FH8EH8DH8CH8BH8AH89H88HTCON各位的功能。88H§6.2定時(shí)器的控制2、控制寄存器TCONTCO21TMOD各位的功能§6.2定時(shí)器的控制TF1TR1TF0TR0IE1IE0IT1IT0TCON(88H)

8FH8EH8DH8CH8BH8AH89H88H①

TF1(TCON.7)—T1溢出標(biāo)志位?!?/p>

當(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。TMOD各位的功能§6.2定時(shí)器的控制TF1TR1TF022TMOD各位的功能§6.2定時(shí)器的控制TF1TR1TF0TR0IE1IE0IT1IT0TCON(88H)

8FH8EH8DH8CH8BH8AH89H88H③TR1(TCON.6)—T1運(yùn)行控制位?!?/p>

可通過軟件置1(TR1=1)或清0(TR1=0)來啟動(dòng)或關(guān)閉

T1。◆

在程序中用指令“SETBTR1”使TR1位置1,定時(shí)器T1便開始計(jì)數(shù)。④TR0(TCON.4)—T0運(yùn)行控制位。

其功能和操作情況同TR1。TMOD各位的功能§6.2定時(shí)器的控制TF1TR1TF023TMOD各位的功能§6.2定時(shí)器的控制TF1TR1TF0TR0IE1IE0IT1IT0TCON(88H)

8FH8EH8DH8CH8BH8AH89H88H⑤IE1,IT1,IE0,IT0(TCON.3~TCON.0)◆

外部中斷INT1,INT0請(qǐng)求及請(qǐng)求方式控制位。前一章已經(jīng)講過。TMOD各位的功能§6.2定時(shí)器的控制TF1TR1TF024§6.2定時(shí)器的控制§6.2定時(shí)器的控制25§6.3定時(shí)器的4種模式及應(yīng)用由上節(jié)可知,通過對(duì)TMOD中的M1、M0的設(shè)置,可以選擇四種工作方式。也就是每個(gè)定時(shí)器可構(gòu)成4種電路結(jié)構(gòu)模式。在模式0、1和2,T0和T1的工作方式相同,在模式3,兩個(gè)定時(shí)器的方式不同。下面以T0為例,分述各種工作方式的特點(diǎn)和用法?!?.3定時(shí)器的4種模式及應(yīng)用由上節(jié)可知26

1、模式0§6.3定時(shí)器的4種模式及應(yīng)用模式0為TL0(5位)、TH0(8位)方式,模式1為TL1(8位)、TH1(8位)方式,其余完全相同。13位計(jì)數(shù)1、模式0§6.3定時(shí)器的4種模式及應(yīng)用27

2、模式1及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(1)模式1

的邏輯電路結(jié)構(gòu)圖6-7T0(或T1)模式1結(jié)構(gòu)-16位計(jì)數(shù)器2、模式1及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(28

2、模式1及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(1)模式1

的邏輯電路結(jié)構(gòu)該模式對(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è)外部脈沖)2、模式1及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(29例6-1:用定時(shí)器T1產(chǎn)生一個(gè)50Hz的方波,由P1.1

輸出。使用程序查詢方式,fosc=12MHz?!?.3定時(shí)器的4種模式及應(yīng)用(2)模式1

應(yīng)用舉例(例6-1)∵方波周期T=1/50=0.02s=20ms∴用T1定時(shí)10ms

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

X=216-=65536-10000=55536=D8F0H解:10ms1212MHz例6-1:用定時(shí)器T1產(chǎn)生一個(gè)50Hz的方波,由P1.1§30源程序清單:

MOVTMOD,#10H;設(shè)置T1為模式1

SETBTR1;啟動(dòng)定時(shí)LOOP:MOVTH1,#0D8H;送初值

MOVTL1,#0F0HJNBTF1,$;查詢定時(shí)時(shí)間到否

CLRTF1;產(chǎn)生溢出,清標(biāo)志位

CPLP1.1;P1.1取反輸出

SJMPLOOP;重復(fù)循環(huán)§6.3定時(shí)器的4種模式及應(yīng)用(2)模式1

應(yīng)用舉例(例6-4)源程序清單:§6.3定時(shí)器的4種模式及應(yīng)用(2)模式131

3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(1)模式2

的邏輯電路結(jié)構(gòu)圖6-7T0(或T1)模式2結(jié)構(gòu)-8位計(jì)數(shù)器3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(32

3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(1)模式2的邏輯電路結(jié)構(gòu)TL0計(jì)數(shù)溢出時(shí),不僅使溢出中斷標(biāo)志位TF0置1,而且還自動(dòng)把TH0中的內(nèi)容重新裝載到TL0中。用TL0用作8位計(jì)數(shù)器,TH0用以保存初值。3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(33

3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(2)模式2的工作特點(diǎn)該模式把TL0(TL1)配置成一個(gè)可以自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器;在程序初始化時(shí),TL0和TH0由軟件賦予相同的初值;用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為:t=(28-TH0初值)×振蕩周期×123、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(34

3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(2)模式2的工作特點(diǎn)用于計(jì)數(shù)工作方式時(shí),計(jì)數(shù)長(zhǎng)度最大為:28=256(個(gè)外部脈沖);該模式可省去軟件中重裝常數(shù)的語句,并可產(chǎn)生相當(dāng)精確的定時(shí)時(shí)間,適合于作串行口波特率發(fā)生器。3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(35例6-2:利用定時(shí)器T1的模式2對(duì)外部信號(hào)計(jì)數(shù)。要求設(shè)計(jì)滿100次,將P1.0端取反?!?.3定時(shí)器的4種模式及應(yīng)用解:(1)選擇模式外部信號(hào)由T1(P3.5)引腳輸入,每發(fā)生一次負(fù)跳變計(jì)數(shù)器加1,每輸入100個(gè)脈沖,計(jì)數(shù)器發(fā)生溢出中斷,中斷服務(wù)程序?qū)1.0取反一次。例6-2:利用定時(shí)器T1的模式2對(duì)外部信號(hào)計(jì)數(shù)?!?.336§6.3定時(shí)器的4種模式及應(yīng)用(1)選擇模式T1計(jì)數(shù)工作方式模式2的模式字為(TMOD)=60H。

T0不用時(shí),TMOD的低4位可任取,但不能進(jìn)入模式3,一般取0。(2)計(jì)算T1的計(jì)數(shù)初值X=28

-100=156D=9CH

因此:TL1的初值為9CH,重裝初值寄存器TH1=9CH?!?.3定時(shí)器的4種模式及應(yīng)用(1)選擇模式(2)計(jì)算T37(3)程序清單MAIN:MOVTMOD,#60H;設(shè)置T1為模式2,外部計(jì)數(shù)方式

MOVTL1,#9CH;T1計(jì)數(shù)器初值

MOVTH1,#9CHMOVIE,#88H;定時(shí)器開中斷

SETBTR1;啟動(dòng)T1計(jì)數(shù)HERE:SJMPHERE;等待中斷

ORG001BH;中斷服務(wù)程序入口

CPLP1.0RETI§6.3定時(shí)器的4種模式及應(yīng)用(3)程序清單§6.3定時(shí)器的4種模式及應(yīng)用38例6-3:已知89C51單片機(jī)的fOSC=6MHz,請(qǐng)利用T0和P1.0輸出矩形波。矩形波高電平寬為50μs,低電平為300μs。解:(1)輸出及模式的確定§6.3定時(shí)器的4種模式及應(yīng)用50μs300μsP1.0T0采用定時(shí)工作方式模式2,模式字為(TMOD)=02H例6-3:已知89C51單片機(jī)的fOSC=6MHz,39(2)設(shè)置定時(shí)器初值X§6.3定時(shí)器的4種模式及應(yīng)用T0采用模式2作50μs定時(shí)的初值:(28-X)×12/(6×106)=50×10-6sX=256-50×10-6×6×106/12=231=E7H作300μs定時(shí)的初值:(28-X)×12/(6×106)=300×10-6sX=256-300×10-6×6×106/12=106=6AH(2)設(shè)置定時(shí)器初值X§6.3定時(shí)器的4種模式及應(yīng)用T040(3)主程序清單

MOVTMOD,#02H;上電,轉(zhuǎn)向主程序L2:CLRP1.0;P1.0輸出低電平 CLRTR0;關(guān)閉T0

MOVTH0,#6AH;置入定時(shí)300μs初值

MOVTL0,#6AH

SETBTR0;啟動(dòng)T0§6.3定時(shí)器的4種模式及應(yīng)用LOOP1:JBCTF0,L1;查詢300μs時(shí)間到?到轉(zhuǎn)L1SJMPLOOP1;時(shí)間未到,轉(zhuǎn)LOOP1,繼續(xù)查詢

(3)主程序清單§6.3定時(shí)器的4種模式及應(yīng)用LOOP141L1:SETBP1.0;P1.0輸出高電平

CLRTR0;關(guān)閉T0

MOVTH0,#0E7H;置入定時(shí)50μs初值MOVTL0,#0E7H

SETBTR0;啟動(dòng)T0§6.3定時(shí)器的4種模式及應(yīng)用LOOP2:JBCTF0,L2;查詢50μs時(shí)間到?到轉(zhuǎn)L2SJMPLOOP2;時(shí)間未到,轉(zhuǎn)LOOP2,繼續(xù)查詢

L1:SETBP1.042例6-4:已知89C51單片機(jī)的fOSC=12MHz,采用T1定時(shí)模式2。編寫由P1.0和P1.1引腳分別輸出周期為2ms和500μs的方波。解:(1)輸出及模式的確定§6.3定時(shí)器的4種模式及應(yīng)用500μs2msP1.1T1采用定時(shí)工作方式模式2,模式字為(TMOD)=20HP1.0例6-4:已知89C51單片機(jī)的fOSC=12MHz,43(2)設(shè)置定時(shí)器初值X§6.3定時(shí)器的4種模式及應(yīng)用T1采用模式2作250μs定時(shí)的初值:(28-X)×12/(12×106)=250×10-6sX=256-250×10-6×12×106/12=6=06H

∴T1的低8位為06H,高8位為06H(2)設(shè)置定時(shí)器初值X§6.3定時(shí)器的4種模式及應(yīng)用T144(3)主程序清單

MOVR2,#04H;R2為計(jì)數(shù)器,計(jì)1ms,初值為4 CLRP1.0;P1.0,P1.1輸出低電平 CLRP1.1 MOVTMOD,#20H;定時(shí)器T1工作在模式2L2:

MOVTH1,#06H;置入定時(shí)250μs初值

MOVTL1,#06H

SETBTR1;啟動(dòng)T1§6.3定時(shí)器的4種模式及應(yīng)用(3)主程序清單§6.3定時(shí)器的4種模式及應(yīng)用45LOOP:JBCTF1,L1;查詢到250μs?

SJMPLOOP L1:

CPLP1.1;P1.1取反,輸出

500μs方波CLRTR1;關(guān)閉T1DJNZR2,L2;查詢到1ms?未到轉(zhuǎn)L2 CPLP1.0;到1ms,P1.1取反,輸出2ms方波

MOVR2,#04H;重置計(jì)數(shù)器初值

LJMPL2§6.3定時(shí)器的4種模式及應(yīng)用LOOP:JBCTF1,L1;查46ThankYou!ThankYou!第六章

定時(shí)器及應(yīng)用主講:武桐第六章

定時(shí)器及應(yīng)用主講:武桐第六章定時(shí)器及應(yīng)用在測(cè)控系統(tǒng)中,常常需要有實(shí)時(shí)時(shí)鐘和計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)控制以及對(duì)外界事件進(jìn)行計(jì)數(shù)。MCS-51內(nèi)部的兩個(gè)16位定時(shí)器/計(jì)數(shù)器就具有這兩種功能,可用于定時(shí)控制、延時(shí)、對(duì)外部事件計(jì)數(shù)和檢測(cè)等場(chǎng)合。定時(shí)器概述定時(shí)器的控制定時(shí)器的四種模式及應(yīng)用定時(shí)器的結(jié)構(gòu)和功能工作寄存器和控制寄存器模式1、2、3及應(yīng)用第六章定時(shí)器及應(yīng)用在測(cè)控系統(tǒng)中,常常需49

1、定時(shí)器的結(jié)構(gòu)這些寄存器之間是通過內(nèi)部總線和控制邏輯電路連接起來的?!?.1定時(shí)器概述1、定時(shí)器的結(jié)構(gòu)這些寄存器之間是通過內(nèi)部總線和控制邏輯電50§6.1定時(shí)器概述89C51定時(shí)器的結(jié)構(gòu)如圖6-1

所示?!?/p>

有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,即T0和T1,它們實(shí)際上都是16位加1計(jì)數(shù)器?!?/p>

T0由兩個(gè)8位特殊功能寄存器TH0和TL0構(gòu)成;T1由TH1和TL1構(gòu)成。這些寄存器用于存放定時(shí)和計(jì)數(shù)初值。0000H~FFFFH0~65535§6.1定時(shí)器概述89C51定時(shí)器的結(jié)構(gòu)如圖6-1所示51§6.1定時(shí)器概述◆每個(gè)定時(shí)器都可由軟件設(shè)置為定時(shí)工作方式或計(jì)數(shù)工作方式及其他靈活多樣的可控功能方式。這些功能由特殊功能寄存器TMOD和TCON所控制。◆

TMOD主要用于選定定時(shí)器的工作方式;TCON主要用于控制定時(shí)器的啟動(dòng)與停止?!?.1定時(shí)器概述◆每個(gè)定時(shí)器都可由軟件設(shè)置為定時(shí)工52§6.1定時(shí)器概述

2、定時(shí)器的功能16位的定時(shí)器/計(jì)數(shù)器的實(shí)質(zhì)上是一個(gè)加1的計(jì)數(shù)器,其控制電路受軟件控制、切換。計(jì)數(shù)的次數(shù)和時(shí)間之間是相關(guān)的。只要計(jì)數(shù)脈沖的間隔相等,計(jì)數(shù)值就代表時(shí)間的流逝§6.1定時(shí)器概述2、定時(shí)器的功能153§6.1定時(shí)器概述※定時(shí)工作方式當(dāng)定時(shí)器/計(jì)數(shù)器為定時(shí)工作方式時(shí),加1信號(hào)由振蕩器的12分頻產(chǎn)生,即每過一個(gè)機(jī)器周期,計(jì)數(shù)值增1,直至計(jì)滿溢出為止。顯然,定時(shí)器的定時(shí)時(shí)間與系統(tǒng)的振蕩頻率有關(guān)。由于一個(gè)機(jī)器周期等于12個(gè)振蕩周期,所以計(jì)數(shù)頻率fcount=1/12fosc§6.1定時(shí)器概述※定時(shí)工作方式當(dāng)定時(shí)器/計(jì)數(shù)器為定54§6.1定時(shí)器概述※定時(shí)工作方式例:晶振為12MHz,則計(jì)數(shù)周期為

T=1/(12*106)Hz*1/12=1微秒最短的定時(shí)周期當(dāng)8051采用12MHz晶振時(shí),一個(gè)機(jī)器周期為1μs,計(jì)數(shù)頻率為1MHz?!?.1定時(shí)器概述※定時(shí)工作方式例:晶振為12MHz55§6.1定時(shí)器概述※計(jì)數(shù)工作方式當(dāng)定時(shí)器/計(jì)數(shù)器為計(jì)數(shù)工作方式時(shí),通過引腳T0和T1對(duì)外部信號(hào)計(jì)數(shù),外部脈沖的下降沿觸發(fā)計(jì)數(shù)。在每個(gè)機(jī)器周期的S5P2期間采樣引腳。采樣過程:當(dāng)輸入脈沖信號(hào)產(chǎn)生由1至0的下降沿時(shí)定時(shí)器的值加1。>Tcy>Tcy§6.1定時(shí)器概述※計(jì)數(shù)工作方式當(dāng)定時(shí)器/計(jì)數(shù)器為計(jì)56§6.1定時(shí)器概述※計(jì)數(shù)工作方式由于CPU檢測(cè)一個(gè)由1到0的跳變需要兩個(gè)機(jī)器周期,所以計(jì)數(shù)的最高頻率為振蕩頻率的1/24。為了確保給定電平在變化前至少被采樣一次,外部計(jì)數(shù)脈沖的高低電平均需保持一個(gè)機(jī)器周期以上?!?.1定時(shí)器概述※計(jì)數(shù)工作方式由于CPU檢測(cè)一個(gè)由57§6.1定時(shí)器概述

2、定時(shí)器的功能

經(jīng)過分析,我們知道單片機(jī)中的定時(shí)器和計(jì)數(shù)器是一個(gè)東西,只不過計(jì)數(shù)器用來記錄外界發(fā)生的事情,而定時(shí)器則是由單片機(jī)提供一個(gè)非常穩(wěn)定的計(jì)數(shù)源。定時(shí)器/計(jì)數(shù)器是一種可編程部件,在其開始工作前,CPU必須將一些命令(控制字)寫入定時(shí)器/計(jì)數(shù)器。這個(gè)過程稱為定時(shí)器/計(jì)數(shù)器的初始化?!?.1定時(shí)器概述2、定時(shí)器的功能58§6.1定時(shí)器概述

2、定時(shí)器的功能

當(dāng)CPU用軟件給定時(shí)器設(shè)置了某種工作方式之后,定時(shí)器就會(huì)按設(shè)定的工作方式獨(dú)立運(yùn)行,不再占用CPU的操作時(shí)間,除非定時(shí)器計(jì)數(shù)溢出,才可能中斷CPU當(dāng)前操作。每個(gè)定時(shí)器/計(jì)數(shù)器還有4種工作模式。其中模式0-2對(duì)T0和T1是一樣的,模式3對(duì)兩者不同。§6.1定時(shí)器概述2、定時(shí)器的功能59§6.2定時(shí)器的控制

1、工作模式寄存器TMOD

2、控制寄存器TCON定時(shí)器共有兩個(gè)控制字,由軟件寫入TMOD和TCON兩個(gè)8位寄存器,用來設(shè)置T0或T1的操作模式和控制功能。當(dāng)89C51系統(tǒng)復(fù)位時(shí),兩個(gè)寄存器所有位都被清零?!?.2定時(shí)器的控制1、工作模式寄存器TMOD60§6.2定時(shí)器的控制

1、工作模式寄存器TMODTMOD用于控制T0和T1的工作模式。TMOD不能位尋址,只能用字節(jié)設(shè)置定時(shí)器的工作模式,低半字節(jié)設(shè)置T0,高半字節(jié)設(shè)置T1。89C51系統(tǒng)復(fù)位時(shí),TMOD的所有位被清0。89H§6.2定時(shí)器的控制1、工作模式寄存器TMODT61圖6-3工作模式寄存器TMOD的位定義§6.2定時(shí)器的控制

1、工作模式寄存器TMODGATEC/TM1M0GATEM1C/TM0定時(shí)器T1定時(shí)器T0TMOD(89H)

bit7bit6bit5bit4bit3bit2bit1bit0圖6-3工作模式寄存器TMOD的位定義§6.2定時(shí)62TMOD各位的功能①

M1和M0—操作模式控制位。

兩位可形成四種編碼,對(duì)應(yīng)于四種模式。見表6-1。TMOD各位的功能:§6.2定時(shí)器的控制

1、工作模式寄存器TMODGATEC/TM1M0GATEM1C/TM0定時(shí)器T1定時(shí)器T0

bit7bit6bit5bit4bit3bit2bit1bit0TMOD各位的功能①M(fèi)1和M0—操作模式控制位。TMOD63表6-1M1,M0控制的四種工作模式§6.2定時(shí)器的控制表6-1M1,M0控制的四種工作模式§6.2定時(shí)器64TMOD各位的功能②

C/T—計(jì)數(shù)器/定時(shí)器方式選擇位?!?.2定時(shí)器的控制

1、工作模式寄存器TMODGATEC/TM1M0GATEM1C/TM0◆

C/T=0,設(shè)置為定時(shí)方式。定時(shí)器計(jì)數(shù)89C51片內(nèi)脈沖,即對(duì)機(jī)器周期計(jì)數(shù)。◆

C/T=1,設(shè)置為計(jì)數(shù)方式。計(jì)數(shù)器的輸入來自T0(P3.4)或T1(P3.5)端的外部脈沖。

bit7bit6bit5bit4bit3bit2bit1bit0TMOD各位的功能②C/T—計(jì)數(shù)器/定時(shí)器方式選擇位?!?65TMOD各位的功能③

GATE—門控位。§6.2定時(shí)器的控制

1、工作模式寄存器TMODGATEC/TM1M0GATEM1C/TM0◆

GATE=0,只要用軟件使TR0(或TR1)置1就可啟動(dòng)定時(shí)器,而不管INT0(或INT1)的電平的高低;◆

GATE=1,只有INT0(或INT1)引腳為高電平且由軟件使TR0(或TR1)置1時(shí),才能啟動(dòng)定時(shí)器工作。

bit7bit6bit5bit4bit3bit2bit1bit0TMOD各位的功能③GATE—門控位?!?.2定時(shí)器的66§6.2定時(shí)器的控制§6.2定時(shí)器的控制67§6.2定時(shí)器的控制

2、控制寄存器TCONTCON除可字節(jié)尋址外,各位還可位尋址。89C51系統(tǒng)復(fù)位時(shí),TCON的所有位被清0。TCON各位的定義格式如圖所示:TF1TR1TF0TR0IE1IE0IT1IT0TCON(88H)

8FH8EH8DH8CH8BH8AH89H88HTCON各位的功能。88H§6.2定時(shí)器的控制2、控制寄存器TCONTCO68TMOD各位的功能§6.2定時(shí)器的控制TF1TR1TF0TR0IE1IE0IT1IT0TCON(88H)

8FH8EH8DH8CH8BH8AH89H88H①

TF1(TCON.7)—T1溢出標(biāo)志位?!?/p>

當(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。TMOD各位的功能§6.2定時(shí)器的控制TF1TR1TF069TMOD各位的功能§6.2定時(shí)器的控制TF1TR1TF0TR0IE1IE0IT1IT0TCON(88H)

8FH8EH8DH8CH8BH8AH89H88H③TR1(TCON.6)—T1運(yùn)行控制位?!?/p>

可通過軟件置1(TR1=1)或清0(TR1=0)來啟動(dòng)或關(guān)閉

T1?!?/p>

在程序中用指令“SETBTR1”使TR1位置1,定時(shí)器T1便開始計(jì)數(shù)。④TR0(TCON.4)—T0運(yùn)行控制位。

其功能和操作情況同TR1。TMOD各位的功能§6.2定時(shí)器的控制TF1TR1TF070TMOD各位的功能§6.2定時(shí)器的控制TF1TR1TF0TR0IE1IE0IT1IT0TCON(88H)

8FH8EH8DH8CH8BH8AH89H88H⑤IE1,IT1,IE0,IT0(TCON.3~TCON.0)◆

外部中斷INT1,INT0請(qǐng)求及請(qǐng)求方式控制位。前一章已經(jīng)講過。TMOD各位的功能§6.2定時(shí)器的控制TF1TR1TF071§6.2定時(shí)器的控制§6.2定時(shí)器的控制72§6.3定時(shí)器的4種模式及應(yīng)用由上節(jié)可知,通過對(duì)TMOD中的M1、M0的設(shè)置,可以選擇四種工作方式。也就是每個(gè)定時(shí)器可構(gòu)成4種電路結(jié)構(gòu)模式。在模式0、1和2,T0和T1的工作方式相同,在模式3,兩個(gè)定時(shí)器的方式不同。下面以T0為例,分述各種工作方式的特點(diǎn)和用法?!?.3定時(shí)器的4種模式及應(yīng)用由上節(jié)可知73

1、模式0§6.3定時(shí)器的4種模式及應(yīng)用模式0為TL0(5位)、TH0(8位)方式,模式1為TL1(8位)、TH1(8位)方式,其余完全相同。13位計(jì)數(shù)1、模式0§6.3定時(shí)器的4種模式及應(yīng)用74

2、模式1及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(1)模式1

的邏輯電路結(jié)構(gòu)圖6-7T0(或T1)模式1結(jié)構(gòu)-16位計(jì)數(shù)器2、模式1及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(75

2、模式1及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(1)模式1

的邏輯電路結(jié)構(gòu)該模式對(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è)外部脈沖)2、模式1及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(76例6-1:用定時(shí)器T1產(chǎn)生一個(gè)50Hz的方波,由P1.1

輸出。使用程序查詢方式,fosc=12MHz。§6.3定時(shí)器的4種模式及應(yīng)用(2)模式1

應(yīng)用舉例(例6-1)∵方波周期T=1/50=0.02s=20ms∴用T1定時(shí)10ms

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

X=216-=65536-10000=55536=D8F0H解:10ms1212MHz例6-1:用定時(shí)器T1產(chǎn)生一個(gè)50Hz的方波,由P1.1§77源程序清單:

MOVTMOD,#10H;設(shè)置T1為模式1

SETBTR1;啟動(dòng)定時(shí)LOOP:MOVTH1,#0D8H;送初值

MOVTL1,#0F0HJNBTF1,$;查詢定時(shí)時(shí)間到否

CLRTF1;產(chǎn)生溢出,清標(biāo)志位

CPLP1.1;P1.1取反輸出

SJMPLOOP;重復(fù)循環(huán)§6.3定時(shí)器的4種模式及應(yīng)用(2)模式1

應(yīng)用舉例(例6-4)源程序清單:§6.3定時(shí)器的4種模式及應(yīng)用(2)模式178

3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(1)模式2

的邏輯電路結(jié)構(gòu)圖6-7T0(或T1)模式2結(jié)構(gòu)-8位計(jì)數(shù)器3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(79

3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(1)模式2的邏輯電路結(jié)構(gòu)TL0計(jì)數(shù)溢出時(shí),不僅使溢出中斷標(biāo)志位TF0置1,而且還自動(dòng)把TH0中的內(nèi)容重新裝載到TL0中。用TL0用作8位計(jì)數(shù)器,TH0用以保存初值。3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(80

3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(2)模式2的工作特點(diǎn)該模式把TL0(TL1)配置成一個(gè)可以自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器;在程序初始化時(shí),TL0和TH0由軟件賦予相同的初值;用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為:t=(28-TH0初值)×振蕩周期×123、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(81

3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(2)模式2的工作特點(diǎn)用于計(jì)數(shù)工作方式時(shí),計(jì)數(shù)長(zhǎng)度最大為:28=256(個(gè)外部脈沖);該模式可省去軟件中重裝常數(shù)的語句,并可產(chǎn)生相當(dāng)精確的定時(shí)時(shí)間,適合于作串行口波特率發(fā)生器。3、模式2及應(yīng)用§6.3定時(shí)器的4種模式及應(yīng)用(82例6-2:利用定時(shí)器T1的模式2對(duì)外部信號(hào)計(jì)數(shù)。要求設(shè)計(jì)滿100次,將P1.0端取反?!?.3定時(shí)器的4種模式及應(yīng)用解:(1)選擇模式外部信號(hào)由T1(P3.5)引腳輸入,每發(fā)生一次負(fù)跳變計(jì)數(shù)器加1,每輸入100個(gè)脈沖,計(jì)數(shù)器發(fā)生溢出中斷,中斷服務(wù)程序?qū)1.0取反一次。例6-2:利用定時(shí)器T1的模式2對(duì)外部信號(hào)計(jì)數(shù)。§6.383§6.3定時(shí)器的4種模式及應(yīng)用(1)選擇模式T1計(jì)數(shù)工作方式模式2的模式字為(TMOD)=60H。

T0不用時(shí),TMOD的低4位可任取,但不能進(jìn)入模式3,一般取0。(2)計(jì)算T1的計(jì)數(shù)初值X=28

-100=156D=9CH

因此:TL1的初值為9CH,重裝初值寄存器TH1=9CH?!?.3定時(shí)器的4種模式及應(yīng)用(1)選擇模式(2)計(jì)算T84(3)程序清單MAIN:MOVTMOD,#60H;設(shè)置T1為模式2,外部計(jì)數(shù)方式

MOVTL1,#9CH;T1計(jì)數(shù)器初值

MOVTH1,#9CHMOVIE,#88H;定時(shí)器開中斷

SETBTR1;啟動(dòng)T1計(jì)數(shù)HERE:SJMPHERE;等待中斷

ORG001BH;中斷服務(wù)程序入口

CPLP1.0RETI§6.3定時(shí)器的4種模式及應(yīng)用(3)程序清單§6.3定時(shí)器的4種模式及應(yīng)用85例6-3:已知89C51單片機(jī)的fOSC=6MHz,請(qǐng)利用T0和P1.0輸出矩形波。矩形波高電平寬為50μs,低電平為300μs。解:(1)輸出及模式的確定§6.3定時(shí)器的4種模式及應(yīng)用50μs300μsP1.0T0采用定時(shí)工作方式模式2,模式字為(TMOD)=02H例6-3:已知89C51單片機(jī)的fOSC=6MHz,86(2)設(shè)置定時(shí)器初值X§6.3定時(shí)器的4種模式及應(yīng)用T0采用模式2作50μs定時(shí)的初值:(28-X)×12/(6×106)=50×10-6sX=256-50×10-6×6×106/12=231=E7H作300μs定時(shí)的初值:(28-X)×12/(6×106)=300×10-6sX=256-300×10-6×6×106/12=106=6AH(2)設(shè)置定時(shí)器初值X§6.3定時(shí)器的4種模式及應(yīng)用T087(3)主程序清單

MOVTMOD,#0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論