計算機第6章定時器及應用_第1頁
計算機第6章定時器及應用_第2頁
計算機第6章定時器及應用_第3頁
計算機第6章定時器及應用_第4頁
計算機第6章定時器及應用_第5頁
已閱讀5頁,還剩111頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第六章定時器及應用

§6.1定時器概述

§6.2定時器的控制

§6.3定時器的四種模式及應用

§6.4思考題與習題

,BackJIQ

§6.1定時器概述

§6.1.18051定時器結(jié)構(gòu)

§6.1.28051定時器功能

Back■一|上

§6.1.18051定時器結(jié)構(gòu)

?8051定時器的結(jié)構(gòu)如圖6-1所示。

?有兩個16位的定時器/計數(shù)器,即定時器0

(T0)和定時器1(Tl)o它們實際上都

是16位加1計數(shù)器。

?T0由兩個8位特殊功能寄存器THO和TLO構(gòu)

成;T1由TH1和TL1構(gòu)成。

Back■一|上

圖6-189c51定時器結(jié)構(gòu)

§6.1.28051定時器功能

?每個定時器都可由軟件設置為定時工作方式或

計數(shù)工作方式及其他靈活多樣的可控功能方式。

這些功能由特殊功能寄存器TM0D和TC0N所控制。:

?定時器工作不占用CPU時間,除非定時器/計數(shù)

器溢出,才能中斷CPU的當前操作。:

?每個定時器/計數(shù)器還有四種工作模式。其中模

式0-2對T0和T1是一樣的,模式3對兩者不同。

定時工作方式

定時器計數(shù)8051片內(nèi)振蕩器輸出經(jīng)12分

頻后的脈沖,即每個機器周期使定時器(TO

或T1)的數(shù)值加1直至計滿溢出。

當8051采用12MHz晶振時,一個機器周

期為Ips,計數(shù)頻率為1MHz。

計數(shù)工作方式

?通過引腳TO(P3.4)和T1(P3,5)對外部脈沖信

號計數(shù)。當輸入脈沖信號產(chǎn)生由1至。的下降沿時

定時器的值加1。

?CPU檢測一個1至0的跳變需要兩個機器周期,故

最高計數(shù)頻率為振蕩頻率的1/24。

?為了確保某個電平在變化之前被采樣一次,要求電

平保持時間至少是一個完整的機器周期。

?對輸入脈沖信號的基本要求如圖6?2所示。

Back>■5

圖6-2對輸入脈沖寬度的要求

§6.2定時器的控制

?§6.2.1工作模式寄存器TMOD

?§6.2.2控制器寄存器TCON

.酒飛:^酒,'酒飛一|上

§6.2.1工作模式寄存器TMOD

?TMOD用于控制TO和T1的工作模式。

?TMOD不能位尋址,只能用字節(jié)設置定時器的工作模

式,低半字節(jié)設置TO,高半字節(jié)設置T1。

?8051系統(tǒng)復位時,TMOD的所有位被清0。

?TMOD各位的定義格式如圖6-3所示。

■TMOD各位的功能:W匚二>

?TMOD各位定義及具體的意義歸納如圖6-4所示。.

圖6-3工作模式寄存器TMOD的位定義

用于T1----------用于TO

TMODD7D6D5D4D3D2DIDO

(89H)GATEC/TMlMOGATEC/TMlMO

<1一受ZTT控制

選通控制

10—不受NTT控制00—模式0

01—模式1

匚工作模式10—模式2

11■—模式3

1一計數(shù)

功能選擇V

0一定時

1一計數(shù)

功能選擇

0—定時

00—模式0

模式'1一受而^控制

工作模式01—1選通控制<

10—模式2、0—不受NTU控制

11一停止

圖6?4TMOD各位定義及具體的意義

TMOD各位的功能

①Ml和M0—操作模式控制位。

兩位可形成四種編碼,對應于四種模式。

見表6-1。

表6-1Ml,MO控制的四種工作模式

M1M0l:作模式功能描述

00模式013位計數(shù)器

01模式116位計數(shù)器

10模式2自動再裝入8位計數(shù)器

定時器0:分成二個8位計數(shù)器

1j模式3

定時器1:停止計數(shù)

馴”Blip

TMOD各位的功能

②c/亍一計數(shù)器/定時器方式選擇位。

C/T=O,設置為定時方式。定時器計數(shù)

8051片內(nèi)脈沖,即對機器周期計

數(shù)。

C/T=l,設置為計數(shù)方式。計數(shù)器的輸入

來自TO(P3.4)或T1(P3.5)端

的外部脈沖。

一|上

TMOD各位的功能

③GATE—門控位。

GATE=O,只要用軟件使TRO(或TR1)置1就可以

啟動定時器,而不?管樂TO(WNTD的

電平是高還是低。

GATE=1,只有TTO(或INTI)引腳為高電平且由

軟件使TRO(或TR1)置1時,才能啟動

定時器工作。

Back

§6.2.2控制器寄存器TCON

?TCON除可字節(jié)尋址外,各位還可位尋址。

?8051系統(tǒng)復位時,TCON的所有位被清0。

?TCON各位的定義格式如圖6-5所示。

■TCON各位的功能:

?TCON各位定義及具體的意義歸納如圖6-6所示。

號一|上

圖6-5控制寄存器TCON的位定義

8FH8EH8DH8CH8BH8AH89H88H

TCON

TF1TRITFOTROIE1IT1IE0ITO

(88H)

Back

8FH8EH8DH8CH8BH8AH89H88H

TCON

(88H)TF1TR1TFOTR0用于外部中斷

’1一啟動

TO運行控制(軟件)

、0—停止

T—溢出

TO溢出標志(硬件)

、0一未溢出

’1一啟動

T1運行控制(軟件)

、0—停止

’1—溢出

T1溢出標志(硬件)

,0一未溢出

圖6?6TCON各位定義及具體的意義

TCON各位的功能

①TF1(TCON.7)—T1溢出標志位。

當T1溢出時,由硬件自動使中斷觸發(fā)器TF1置1,并

?CPU申請中斷。

當CPU響應中斷進入中斷服務程序后,TF1由被硬件

自動清0。TF1也可以用軟件清0。

②TFO(TCON.5)—T0溢出標志位。

其功能和操作情況同TF1。

TCON各位的功能

③TRI(TCON.6)—T1運行控制位。

可通過軟件置1(或清0(TR1=0)來啟動

或關閉“。

在程序中用指令“SETBTR1”使TR1位置1,定

時器T1便開始計數(shù)。

④TRO(TCON.4)—TO運行控制位。

其功能和操作情況同TR1。

一|上

TCON各位的功能

⑤IE1,IT1,IE0,ITO(TCON.3-TC0N.0)—

外部中斷INTI,INTO請求及請求方式控制

位。前一章已經(jīng)講過。

Back■一|上

§6.3定時器的四種模式及應用

?§6.3.1模式0及其應用

?§6.3.2模式1及其應用

?§6.3.3模式2及其應用

?§6.3.4模式3及其應用

?§6.3.5綜合應用舉例

一|上

§6.3.1模式0及其應用

一、模式o的邏輯電路結(jié)構(gòu)

二、模式o工作特點

三、模式0的應用舉例

Back■一|上

?、模式0的邏輯電路結(jié)構(gòu)

TO在模式0的邏輯電路結(jié)構(gòu)如圖所示。

(T1相同)

TO(或T1)模式0結(jié)構(gòu)一13位計數(shù)器

二、模式。工作特點

?在這種模式下,16位寄存器(THO和TLO)只

用了13位。其中TLO的高3位未用,其余5位

為整個13位的低5為,THO占高8位。當TLO的

低5位溢出時,向THO進位;THO溢出時,向

中斷標志TFO進位(硬件置位TFO),并申請

中斷。

?定時時間為:

t=(2】3—TO初值)義振蕩周期X12

三、模式。的應用舉例(例6-1)

?例6-1:設定時器TO選擇工作模式0,

定時時間為1ms,fosc=6MHz0試確

定TO初值,計算最大定時時間T。

三、模式0的應用舉例(例6-1)

解:當TO處于工作模式0時,力口1計數(shù)器為13位。

(1)試確定TO初值

設TO的初值位X。

則:(213-X)X1/6X1O-6X12=1X1O3S

X=7692D=1111000001100B

TO的彳氐5位:01100B=0CH即(TLO)=OCH

TO的高8位:11110OOOB=FOHBP(THO)=FOH

(2)計算最大定時時間T

TO的最大定時時間對應于13位計數(shù)器TO的各位全為1,

即(TL0)=1FH,(THO)=FFH.

貝I:T=213X1Z6X106X12=16.384ms

^iBackJ,畫IQ

三、模式。的應用舉例(例6-2)

例6-2:設TO工作在模式0,定時時間

為1ms,fosc=6MHz0編程實現(xiàn)其定

時功能。定時時間到,P1.0取反。

三、模式0的應用舉例(例6-2)

解:

(1)計算TO初值X

計算步驟見例6」。/

結(jié)果:(THO)=OFOH,(TLO)=OCHo

三、模式。的應用舉例(例6-2)

(2)程序清單:

初始化引導程序

ORG0000H

RESET:AJMPMAIN;跳過中斷服務程序區(qū)

ORGOOOBH;中斷服務程序入口

AJMPITOP

HI,

三、模式。的應用舉例(例6-2)

,主程序:

ORG0100H

MAIN:MOVSP,#60H;設堆棧指針

ACALLPTOMD

HERE:AJMPHERE;等待時間到,轉(zhuǎn)入中斷服務程序

PTOMD:MOVTMOD,#OOH;選擇工作模式

MOVTL0,#0CH;送初值

MOVTH0,#0F0H

SETBTRO;啟動定時

SETBETO;TO開中斷

SETBEA;CPU開中斷

RET

一|上

三、模式0的應用舉例(例6-2)

中斷服務程序

ORG0120H

ITOP:MOVTL0,#0CH;重新裝如初值

MOVTH0,#0F0H

CPLP1.0;P1.0取反

RETI

三、模式。的應用舉例(例6-3)

例6-3:利用TO的工作模式0產(chǎn)生1ms

定時,在P1.0引腳輸出周期為2ms

的方波。設單片機晶振頻率

臺匕

fosc=12MHz0編程實現(xiàn)其功月匕O

三、模式。的應用舉例(例6-3)

解:

要在P1.0引腳輸出周期為2ms的方波,只要使P1.0每隔

1ms取反一次即可。

(1)選擇工作模式

TO的模式字為TMOD=OOH,即

M1M0=00,C/T=0,GATE=0,其余位為0。

可,

三、模式。的應用舉例(例6-3)

(2)計算1ms定時時TO的初值

⑵3—X)X1/12X10-6X12=1X10-3s

X=7193D=1110000011000B

TO的低5位:11000B=18H即(TL0)=18H

TO的高8位:11100000B=E0HBP(TH0)=E0H

模式0的應用舉例(例6-3)

(3)采用查詢方式的程序

程序清單:

MOVTMOD,#OOH;設置TO為模式0

MOVTL0,#18H;送初值

MOVTH0,#0E0H

SETBTRO;啟動定時

LOOP:JBCTFO,NEXT;查詢定時時間到否

SJMPLOOP

NEXT:MOVTL0,#18H;重裝計數(shù)初值

MOVTH0,#0E0H

CPLP1.0;取反

SJMPLOOP;重復循環(huán)

HI,

三、模式0的應用舉例(例6-3)

(4)采用定時器溢出中斷方式的程序

程序清單:

主程序

ORG0000H

RESET:AJMPMAIN;跳過中斷服務程序區(qū)

ORG0030H

MAIN:MOVTMOD,#OOH;設置TO為模式0

MOVTL0,#18H;送初值

MOVTH0,#0E0H

SETBEA;CPU開中斷

SETBETO;TO中斷允許

SETBTRO;啟動定時

HERE:SJMPHERE;等待中斷,虛擬主程序

一|上

三、模式0的應用舉例(例6-3)

中斷服務程序

ORGOOOBH

AJMPCTCO

ORG0120H

CTCO:MOVTL0,#18H;重新裝如初值

MOVTH0,#0E0H

CPLP1.0;P1.0取反

RETI

g(BIS

§6.3.2模式1及其應用

一、模式1的邏輯電路結(jié)構(gòu)

二、模式1工作特點

三、模式1的應用舉例

Back■一|上

▲、模式1的邏輯電路結(jié)構(gòu)

TO在模式1的邏輯電路結(jié)構(gòu)如圖在7所示。

(T1相同)

圖6-7TO(或T1)模式1結(jié)構(gòu)一16位計數(shù)器

^^BackjQQ

二、模式1工作特點

?該模式對應的是一個16位的定時器/計數(shù)器。

?用于定時工作方式時,定時時間為:

t=(2]6—TO初值)X振蕩周期X12

?用于計數(shù)工作方式時,計數(shù)長度最大為:

216=65536(個外部脈沖)

三、模式1的應用舉例(例6-4)

?例6-4:用定時器T1產(chǎn)生一個50Hz

的方波,由P1.1輸出。,使用程

序查詢方式,fosc=6MHz0

I_

V

三、模式1的應用舉例(例6-4)

解:

丁方波周期丁二1/50=0?02s=20ms

???用T1定時10ms

計數(shù)初值X為:

X=216-12X10X1000/12

=65536-10000=55536=D8F0H

BagKi.,

三、模式1的應用舉例(例6-4)

源程序清單:

MOVTMOD,#10H;設置T1為模式1

SETBTR1;啟動定時

LOOP:MOVTL1,#0D8H;送初值

MOVTH1,#0F0H

JNBTF1,$;查詢定時時間到否

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

CPLP1.1;取反

SJMPLOOP;重復循環(huán)

BaW.0

§6.3.3模式2及其應用

一、模式2的邏輯電路結(jié)構(gòu)

二、模式2工作特點

三、模式2的應用舉例

Back■一|上

一、模式2的邏輯電路結(jié)構(gòu)

?TO在模式2的邏輯電路結(jié)構(gòu)如圖6-8所示。(T1相同)

?TLO計數(shù)溢出時,不僅使溢出中斷標志位TFO置1,而且還自

動把TH0中的內(nèi)容重新裝載到TLO中。

?TLO用作8位計數(shù)器,THO用以保存初值。

圖6?8TO(或T1)模式2結(jié)構(gòu)一8位計數(shù)器

二、模式2工作特點

?該模式把TLO(TL1)配置成一個可以自動重裝載的8

位定時器/計數(shù)器C

?在程序初始化時,TLO和THO由軟件賦予相同的初值。

?用于定時工作方式時,定時時間為:

t=(28-TH0初值)x振蕩周期又12

?用于計數(shù)工作方式時,計數(shù)長度最大為:28=256

(個外部脈沖)

?該模式可省去軟件中重裝常數(shù)的語句,并可產(chǎn)生相

當精確的定時時間,適合于作串行口波特率發(fā)生器。

BaW.0

三、模式2的應用舉例(例6-5)

?例6-5:當P3.4引腳上的電平發(fā)生

負跳變時,從P1.0輸出一個

500ILLS的同步脈沖。請編程序?qū)崿F(xiàn)

該功能。查詢方*,fosc=6MHz0

三、模式2的應用舉例(例6-5)

解:(1)模式選擇

選TO為模式2,外部事件計數(shù)方式。

當P3.4引腳上的電平發(fā)生負跳變時,TO計數(shù)器加1,溢出標

志TFO置1;然后改變TO為500us定時工作方式,并使P1.0

輸出由1變?yōu)?。T0定時到產(chǎn)生溢出,使PL0輸出恢復高電

平,T0又恢復外部事件計數(shù)方式。

如圖6-9所示。

P3.4-------------------------------------------------------------------------------------------------

P1.0-----------------------------------------------------

-----500—----?500pis——

夕卜部計數(shù)方式定時方式外部計數(shù)方式定時方式

圖6?9功能描述B1E

三、模式2的應用舉例(例6-5)

(2)計算初值

?TO工作在外部事件計數(shù)方式,當計數(shù)到28時,再

力口1計數(shù)器就會溢出。設計數(shù)初值為X,當再出現(xiàn)

一次外部事件時,計數(shù)器溢出。

貝上X+1=28

X=28-1=11111111B=OFFH

?TO工作在定時工作方式,設晶振頻率為6MHz,

500ps相當于250個機器周期。因此,初值X為

(28-X)X2ps=500ps

X=6=06H

三、模式2的應用舉例(例6-5)

(3)程序清單

START:MOVTMOD,#06H;設置TO為模式2,外部計數(shù)方式

MOVTL0,#0FFH;TO計數(shù)器初值

MOVTH0,#0FFH

SETBTRO;啟動TO計數(shù).

LOOP1:JBCTFO,PTFO1;查詢TO溢出標志,

;TFO=1時轉(zhuǎn),且清TFO=O

SJMPLOOP1

三、模式2的應用舉例(例6-5)

PTFO1:CLRTRO;停止計數(shù)

MOVTMOD,#02H;設置TO為模式2,定時方式

MOVTL0,#06H;送初值,定時500Hs

MOVTH0,#06H

CLRP1.0;P1.0清0

SETBTRO;啟動定時500Ps

LOOP2:JBCTF0,PTFO2;查詢TO溢出標志,

;TF0=1時轉(zhuǎn),且清TFO=O

;(第一個500Hs到否?)

SJMPLOOP2;等待中斷,虛擬主程序

PTFO2:SETBP1.0;P1.0B1

CLRTRO;停止計數(shù)

SJMPSTART

三、模式2的應用舉例(例6-6)

?例6-6:利用定時器T1的模式2對外

部信號計數(shù)。要求沒計滿100次,

將P1.0端取反。

三、模式2的應用舉例(例6-6)

解:

(1)選擇模式

外部信號由T1(P3.5)引腳輸入,每發(fā)生一次負

,跳變計數(shù)器加1,每輸入100個脈沖,計數(shù)器發(fā)生

溢出中斷,中斷服務程序?qū)1.0取反一次。

?T1計數(shù)工作方式模式2的模式字為

(TMOD)=60Ho

TO不用時,TMOD的低4位可任取,但不能進入模

式3,一般取0。

三、模式2的應用舉例(例6-6)

(2)計算T1的計數(shù)初值

X=28—100=156二9cH

因此:TL1的初值為9CH,

重裝初值寄存器THr9CH。

「I上

三、模式2的應用舉例(例6-6)

(3)程序清單

MAIN:MOVTMOD,#60H;設置T1為模式2,外部計數(shù)方式

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

MOVTH1,#9CH

MOVIE,#88H;定時器開中斷

SETBTR1;啟動T1計數(shù)

HERE:SJMPHERE;等待中斷

ORG001BH;中斷服務程序入口

CPLP1.0

RETI

§6.3.4模式3及其應用

一、模式3的邏輯電路結(jié)構(gòu)

二、模式3的應用舉例

Back■一|上

一、模式3的邏輯電路結(jié)構(gòu)

?工作模式3對TO和T1大不相同。

Q1、TO模式3的邏輯電路結(jié)構(gòu)

o2、TO模式3下T1的邏輯電路結(jié)構(gòu)

M2SU同0

1、TO模式3的邏輯電路結(jié)構(gòu)

?TO模式3的邏輯電路結(jié)構(gòu)如圖6-10所示。

?T0設置為模式3,TLO和THO被分成兩個相互獨立的8

位計數(shù)器。

?TLO用原T0的各控制位、引腳和中斷源,即C/T,

GATE,TRO,TFO,TO(P3.4)引腳,INTO(P3.2)

引腳。

?TLO可工作在定時器方式和計數(shù)器方式。其功能和

操作與模式0、模式1相同(只是8位)。

控制

圖6?10TO模式3結(jié)構(gòu)

1、TO模式3的邏輯電路結(jié)構(gòu)

?它占用了定時器T1的控制位TR1和T1的中斷標志TF1,

其啟動和關閉僅受TR1的控制。

?THO只可用作簡單的內(nèi)部定時功能。

QBack」

「I上

2、TO模式3下T1的邏輯電路結(jié)構(gòu)

?定時器T1無工作模式3狀態(tài)。在TO用作模式3時,

T1仍可設置為模式0?2。

?TO模式3下T1的邏輯電路結(jié)構(gòu)如圖6T2

所示。

?由于TR1和TF1被定時器TO占用,計數(shù)器開關K

已被接通,此時,僅用T1控制位,C/T切換其定

時或計數(shù)器工作方式就可使T1運行。當計數(shù)器

溢出時,只能將輸出送入串行口或用于不需要

中斷的場合。一般作波特率發(fā)生器

(a)Tl模式1(或模式0)(b)Tl模式2

圖6?11TO模式3時T1結(jié)構(gòu)

二、模式3的應用舉例(例6-7)

?例6-7:設某用戶系統(tǒng)已使用了兩

個外部中斷源,并置定時器T1工作

在模式2,作串行口波特率發(fā)生器

用。現(xiàn)要求再增加一個外部中斷源

并由Pl.0引腳輸出一個5kHz的方波。

Fosc=12MHz.

二、模式3的應用舉例(例6-7)

解:

(1)工作模式

?可設置TO工作在模式3計數(shù)器方式,把TO的引腳

作附加的外部中斷輸入端,TLO的計數(shù)初值為FFH,

當檢測到TO引腳電平出現(xiàn)由1至0的負跳變時,TLO

產(chǎn)生溢出,申請中斷。

?TO模式3下,TLO作計數(shù)用,而THO用作8位的定

時器,定時控制PL0引腳輸出5kHz的方波信號。

一|上

二、模式3的應用舉例(例6-7)

(2)計算初值

?TLO的計數(shù)初值為FFH。

?THO的計數(shù)初值X為:

P1.0方波周期T=l/(5kHz)=0.2ms=200|js

用THO作定時100us時,

X=256-100X12/12=156

w

二、模式3的應用舉例(例6-7)

(3)程序清單

MOVTMOD,#27H;TO為模式3,計數(shù)方式

;T1為模式2,定時方式

MOVTLO,#OFFH;TLO計數(shù)初值

MOVTH0,#156;TH0計數(shù)初值

MOVTL1,#data;data是根據(jù)波特率

;要求設置的常數(shù)(初值)

MOVTH1,#data

MOVTCON,#55H;外中斷0,外中斷1邊沿觸發(fā),

;啟動TO,T1

MOVIE,#9FH;開放全部中斷

二、模式3的應用舉例(例6-7)

TLO溢出中斷服務程序(由OOOBH轉(zhuǎn)來)

TLOINT:MOVTLO,#OFFH;TLO重賦初值

(中斷處理)

RETI

TH0溢出

TH0溢出中斷服務程序(由001BH轉(zhuǎn)來)

THOINT:MOVTH0,#156;TH0重賦初值

CPLP1.0;P1.0取反輸出

RETI

串行口及外部中斷0,外部中斷1的服務程序略。

§6.3.5綜合應用舉例(例6-8)

?例6-8:設時鐘頻率為6MHz。編寫

利用TO產(chǎn)生1s定時的程序。

§6.3.5綜合應用舉例(例6-8)

解:

(1)定時器TO工作模式的確定

;模式0最長可定時16.384ms;

模式1最長可定時131.072ms;

1模式2最長可定時512口s;

???定時1s,可選用模式1,每隔100ms中斷一

次,中斷10次為1s。

S^BackJ.,

§6.3.5綜合應用舉例(例6-8)

(2)求計數(shù)器初值X

V(216-X)x12/(6X106)=100X10-3S

???X=15536=3CB0H

因止匕:(TLO)=OBOH

(TH0)=3CH

§6.3.5綜合應用舉例(例6-8)

(3)實現(xiàn)方法

對于中斷10次計數(shù),可使T0工作在計數(shù)方

式,也可用循環(huán)程序的方法實現(xiàn)。本例采

用循環(huán)程序法。

§6.3.5綜合應用舉例(例6-8)

(4)源程序清單

ORG0000H

AJMPMAIN;上電,轉(zhuǎn)向主程序

ORGOOOBH;TO的中斷服務程序入口地址

AJMPSERVE;轉(zhuǎn)向中斷服務程序

ORG2000H;主程序

§6.3.5綜合應用舉例(例6-8)

MAIN:MOVSP,#60H;設堆棧指針

MOVB,#0AH;設循環(huán)次數(shù)

MOVTMOD,#01H;設置TO工作于模式1

MOVTL0,#0B0H;裝計數(shù)值低8位

MOVTH0,#3CH;裝計數(shù)值高8位

SETBTR0;啟動定時

SETBETO;TO開中斷

SETBEA;CPU開中斷

SJMP$;等待中斷

一|上

§6.3.5綜合應用舉例(例6-8)

SERVE:MOVTL0,#0B0H;重新賦初值

MOVTH0,#3CH

DJNZB,LOOP;B?1不為0,繼續(xù)定時

CLRTRO;1s定時到,停止TO工作

LOOP:RETI;中斷返回

END

§6.3.5綜合應用舉例(例6-9)

?例6-9:設計實時時鐘程序。時鐘

就是以秒、分、時為單位進行計

時。用定時器與中斷的聯(lián)合應用。

§6.3.5綜合應用舉例(例6-9)

解:

(1)實現(xiàn)時鐘計時的基本方法

①計算計數(shù)初值。

時鐘計時的最小單位是秒,但使用單片機定時器/

,計數(shù)器進行定時,即使按方式1工作,其最大定時

時間也只能達131ms。因此,可把定時器的定時

時間定為100ms,計數(shù)溢出10次即得到時鐘計時

的最小單位一秒;而10次計數(shù)可用軟件方法實現(xiàn)。

§6.3.5綜合應用舉例(例6-9)

假定使用定時器TO,以工作模式1進行100ms的定

時。如fosc=6MHz,則計數(shù)初值X為:

6

-?(2化一X)X12/(6x10)=100X10-3s

???X=15536=3CB0H

因此:

(TLO)=OBOH

(TH0)=3CH

■B

§6.3.5綜合應用舉例(例6-9)

②采用定時方式進行溢出次數(shù)的累計,計滿

10次即得到秒計時。

§6.3.5綜合應用舉例(例6-9)

③從秒到分和從分到時的計時是通過累計和

數(shù)值比較實現(xiàn)的。

§6.3.5綜合應用舉例(例6-9)

④時鐘顯示即及顯示緩沖區(qū)部分在這里略,

可自行設計。

§6.3.5綜合應用舉例(例6-9)

(2)程序流程及程序清單

①主程序(MAIN)的主要功能

;是進行定時器T1的初始化編程并啟動T1,

然后通過反復調(diào)用顯示子程序,等待100ms定時

中斷的到來。其流程如圖6?13所示。

一|上

§6.3.5綜合應用舉例(例6-9)

(2)程序流程及程序清單

②中斷服務程序(PITO)的主要功能?

,是進行計時操作。程序開始先判斷計數(shù)溢出

時候滿了10次,不滿表明還沒達到最小計時單

位一秒,中斷返回;如滿10次則表示已達到最小

計時單位一秒,,程序繼續(xù)向下運行,進行計時操

作。

要求滿1秒則“秒位”32H單元內(nèi)容加1,滿

60s則“分位”31H單元內(nèi)容加1,滿60min則“時

位”30H單元內(nèi)容加1,滿24h貝)30H,31H,

332H單元內(nèi)容全部清0。中斷服務程序流程如圖

6?14所示。

設T1歹模式1

1;圖6-13時鐘主程序流程

設中貨次數(shù)

、f

清計時單元

開中斷

啟動T1

調(diào)用顯可子程序

.....?等待定;寸中斷

入口II

保護現(xiàn)場

(31H)JW0

賦計數(shù)初值

(30H)加1

N

(30H)=24?

(32H)加1Y

N(30H)清0

(32H尸60?>

恢復現(xiàn)場

(32H)清0

返回

(31同加1

圖中斷服務程序流程圖

N6-14

丁(31H尸60?二>~

^SLJQJE

§6.3.5綜合應用舉例(例6-9)

③源程序如下:

ORG0000H

AJMPMAIN;上電,轉(zhuǎn)向主程序

ORG001BH;T1的中斷服務程序入口地址

AJMPSERVE;轉(zhuǎn)向中斷服務程序

§6.3.5綜合應用舉例(例6-9)

ORG2000H;主程序

MAIN:MOVSP,#60H;設堆棧指針

MOVTMOD,#10H;設置T1工作于模式1

MOV20H,#0AH;設循環(huán)次數(shù)

CLRA

MOV30H,A;時單元清0

MOV31H,A;分單元清0

MOV32H,A;秒單元清0

一|上

§6.3.5綜合應用舉例(例6-9)

SETBET1;T1開中斷

SETBEA;CPU開中斷

MOVTL1,#0B0H;裝計數(shù)值低8位

MOVTH1,#3CH;裝計數(shù)值高8位

SETBTR1;啟動定時

SJMP$;等待中斷(可反復調(diào)用顯示子程序)

§6.3.5綜合應用舉例(例6-9)

SERVE:PUSHPSW;保護現(xiàn)場

PUSHACC

MOVTL1,#0B0H;重新賦初值

MOVTH1,#3CH

DJNZ20H,RETUNT;1s未至U,返回

MOV20H,#0AH;重置中斷次數(shù)

w

§6.3.5綜合應用舉例(例6-9)

MOVA,#01H

ADDA,32H;“秒位”加1

DAA;轉(zhuǎn)換為BCD碼

MOV32H,A

CJNEA,#60H,RETUNT;未滿60s,返回

MOV32H,#00H;計滿60s,“秒位”清0

w

§6.3.5綜合應用舉例(例6-9)

MOVA,#01H

ADDA,31H;“分位”加11

DAA;轉(zhuǎn)換為BCD碼

MOV31H,A

CJNEA,#60H,RETUNT;未滿60min,返回

MOV31H,#00H;計滿60min,“分位”清0

w

§6.3.5綜合應用舉例(例6-9)

MOVA,#01H

ADDA,30H;“時位”力口1

DAA;轉(zhuǎn)換為BCD碼

MOV30H,A

CJNEA,#24H,RETUNT;未滿24h,返回

MOV30H,#00H;計滿24h,“時位”清0

RETUNT:POPACC;恢復現(xiàn)場

POPPSW

RETI;中斷返回

END

《例6?9結(jié)束》

BaW.口

§6.4思考題與習題

1、定時器模式2有什么特點?適用于什么應用場合?

2、單片機用內(nèi)部定時方法產(chǎn)生頻率為lOOKHz等寬距

形波,假定單片機的晶振頻率為12MHz。請編程

實現(xiàn)。「

3、8051定時器有哪幾種工作模式?有何區(qū)別?

§6.4思考題與習題

4、8051單片機內(nèi)部設有幾個定時器/計數(shù)器?它們

是由哪些特殊功能寄存器組成?

5、定時器用作定時器時,其定時時間與哪些因素

有關?作計數(shù)器時,對外界計數(shù)頻率有何限制?

6、簡述定時器四種工作模式的特點,如何選擇和

設定?

Back

§6.4思考題與習題

7、當定時器TO用作模式3時,由于TR1位已被TO占用,

如何控制定時器T1的開啟和關閉?■:

8、以定時器/計數(shù)器1進行外部事件計數(shù)。每計數(shù)

1000個脈沖后,定時器T1轉(zhuǎn)為定時工作方式。定

時10ms后,又轉(zhuǎn)為計數(shù)方式,如此循環(huán)不止。假

定單片機晶振頻率為6MHz,請使用模式1編程實?:

現(xiàn)。

§6.4思考題與習題

9、一個定時器的定時時間有限,如何實現(xiàn)兩個定

時器的串行定時,以滿足較長定時時間的要求?

10、使用一個定時器,如何通過軟、硬件結(jié)合的方

法,實現(xiàn)較長時間的定時?

11、8051定時器作定時和計數(shù)時,其計數(shù)脈沖分別

由誰提供?

§6.4思考題與習題

12、8051定時器的門控制信號GATE設置為1時,定

時器如何啟動?

13、已知8051單片機的fosc=6MHz,請利用TO和

PL0輸出矩形波。矩形波高電平寬50us,低

電平寬300口s.

§6.4思考題與習題

14、已知8051單片機的fosc=12MHz,用T1定時。試

編程由PL0和PL1引腳分別輸出周期為2ms和

500|Js的方波。

15、單片機8031的時鐘頻率為6MHz,若要求定時值分

別為0.1ms,1ms,10ms,定時器0工作在模式0、

模式1和模式2時,其定時器初值各應是多少?

§6.4思考題與習題

16、8051單片機的定時器在何種設置下可提供三個8

位計數(shù)器定時器?這時,定時器1可作為串行口

波特率發(fā)生器。若波特率按

9600b/s,4800b/s,2400b/s,1200b/s,600b/s,10

Ob/s來考慮,則此時可選用的波特率是多少

(允許存在一定誤差)?設fosc=12MHz。

§6.4思考題與習題

17、試編制一段程序,功能為:當P1.2引腳的電平

上跳時,對PL1的輸入脈沖進行計數(shù);當PL2

引腳的電平下跳時,停止計數(shù),并將計數(shù)值寫

入R6,R7o

18、設fosc=6MHz。試編制一段程序,功能為:對

定時器TO初始化,使之工作在模式2,產(chǎn)生

200口s定時,并用查詢TO溢出標志的方法,控

制PL0輸出周期為2nls的方波。

SuccesswithMoneyandJoy

附落人生心語

?成功是一種觀念

?致富是一種義務

?快樂是一種權(quán)利

?每個人都有能力、有義

務、有權(quán)利辦到成功

致富快樂

附贈人生心語

成成功不是打敗別人

功成功不是超越別人

成功不是名、利、權(quán)的獲得

致?lián)碛薪】档纳眢w

豐足的物質(zhì)生活

富平衡的心理狀態(tài)

又才能擁有成功

快SuccesswithMoneyandJoy

戰(zhàn)勝自己

樂貢獻自己

扮演好自己的歷史角色

才能超越自己

融入成功里

附贈人生心語

知人者智,自知者明,勝人者力,自

勝者強。

——老子

附贈人生心語

?成功必須靠百分之九十八的辛勤血

汗,加上百分之二的天才靈感。

?世界上注定只有百分之二十的人會成

功。

附贈人生心語

溫馨提示

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

評論

0/150

提交評論