定時計數(shù)器及其應(yīng)用_第1頁
定時計數(shù)器及其應(yīng)用_第2頁
定時計數(shù)器及其應(yīng)用_第3頁
定時計數(shù)器及其應(yīng)用_第4頁
定時計數(shù)器及其應(yīng)用_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

定時計數(shù)器及其應(yīng)用第1頁,課件共64頁,創(chuàng)作于2023年2月第八章定時計數(shù)器及其應(yīng)用8.0引言8.1T0/T1的基本結(jié)構(gòu)和工作方式8.2定時器的應(yīng)用第2頁,課件共64頁,創(chuàng)作于2023年2月一、定時器計數(shù)器的功能:1.定時器的功能:定時發(fā)出脈沖信號,向CPU申請中斷,其定時間隔的長短及起始控制的時間均可由程序控制。例如某機械零件的熱處理工藝曲線為:溫度開始定時保溫5分鐘淬火清洗開始定時回火3小時空冷

實際控制可以由單片機定時發(fā)出信號控制自動完成整個工藝過程。8.0引言第3頁,課件共64頁,創(chuàng)作于2023年2月2.計數(shù)功能:對外界發(fā)生的事件計數(shù)(輸入脈沖),當達到程序規(guī)定的計數(shù)值時,輸出一脈沖信號,申請中斷。例如一啤酒生產(chǎn)線,如下圖所示

計數(shù)24瓶光電信號24瓶裝完申請中斷轉(zhuǎn)入中斷服務(wù)程序裝箱輸送帶第4頁,課件共64頁,創(chuàng)作于2023年2月★定時器(Timer)與計數(shù)器(Counter)的區(qū)別★定時計數(shù)器在單片機應(yīng)用系統(tǒng)中的地位和作用時間基準、延時、電子音樂、電機速度控制工業(yè)測量(電機速度、產(chǎn)量、信號頻率、脈沖寬度)★51系列單片機片上定時計數(shù)器的基本特性:

可編程(3個方面):

1)位數(shù)

2)啟動方式

3)定時/計數(shù)方式★其它計數(shù)器:

74LS161、163、160、162(不可編程)第5頁,課件共64頁,創(chuàng)作于2023年2月問題/知識點1.T0/T1有哪幾種工作模式?

2.方式1、2各有什么突出特點?

3.T0/T1的計數(shù)信號來源于何處?

4.對外部信號計數(shù)時的最高允許頻率為多少?

5.如何啟動T0/T1定時或計數(shù)?

6.TF0、TF1在什么情況下會自動置1?何時

會自動清零?

7.相關(guān)的SFR有哪幾個?第6頁,課件共64頁,創(chuàng)作于2023年2月8.1MCS-51的定時器兩個可編程的定時器/計數(shù)器T1、T0。2種工作模式:(1)計數(shù)器工作模式(2)定時器工作模式4種工作方式(方式0-方式3)第7頁,課件共64頁,創(chuàng)作于2023年2月1、計數(shù)原理對外部事件進行計數(shù)。1)預(yù)先裝入一個計數(shù)初值。2)每來一個外部脈沖輸入,記數(shù)器+1。3)記數(shù)器計滿回零,產(chǎn)生溢出中斷請求。計數(shù)值當前值初值第8頁,課件共64頁,創(chuàng)作于2023年2月2、定時原理對周期性的定時脈沖進行計數(shù)。1)預(yù)先裝入一個計數(shù)初值。2)周期性+1記數(shù)。3)記數(shù)器計滿回零,產(chǎn)生溢出中斷請求。定時時間記數(shù)器的模初值計數(shù)脈沖的周期MCS-51單片機的定時脈沖頻率為系統(tǒng)晶振頻率的12分頻,即一個機器周期。第9頁,課件共64頁,創(chuàng)作于2023年2月8.1.1定時器/計數(shù)器的控制TMOD:選擇定時器/計數(shù)器T0、T1的工作模式和工

作方式。

TCON:控制T0、T1的啟動和停止計數(shù),同時鎖存T0、

T1的狀態(tài)。系統(tǒng)復(fù)位時,TMOD和TCON的所有位清0用戶可用軟件對TMOD和TCON進行寫入和更改。第10頁,課件共64頁,創(chuàng)作于2023年2月8.1.1.1定時器/計數(shù)器控制寄存器TCON

低4位與外部中斷有關(guān),已介紹。高4位的功能如下:

(1)TF1、TF0——計數(shù)溢出標志位

(2)TR1、TR0——計數(shù)運行控制位

1:啟動定時器/計數(shù)器工作

0:停止定時器/計數(shù)器工作第11頁,課件共64頁,創(chuàng)作于2023年2月標志位計滿溢出時,單片機內(nèi)部硬件對TF0(TF1)置“1”。中斷方式:作為中斷標志位。在響應(yīng)中斷轉(zhuǎn)向中斷服務(wù)程序后,由硬件自動對TF清“0”。查詢方式:作為定時器狀態(tài)位以供查詢。查詢有效后以軟件及時將該位清“0”。第12頁,課件共64頁,創(chuàng)作于2023年2月例:用位操作來使用定時器SETBTR1SETBTR0CLRTR1CLRTR0JBCTF1,L1;查詢TF1,為1則轉(zhuǎn)向L1且TF1清零。第13頁,課件共64頁,創(chuàng)作于2023年2月8.1.1.2工作方式控制寄存器TMODTMOD的字節(jié)地址為89H,不能按位尋址,只能用字節(jié)傳送指令來設(shè)置。8位分為兩組,高4位控制T1,低4位控制T0。第14頁,課件共64頁,創(chuàng)作于2023年2月(1)GATE——門控位

0:以TRx(x=0,1)來啟動定時器/計數(shù)器運行。

1:用外中斷引腳(/INT0或/INT1)上的高電平和

TRx來啟動定時器/計數(shù)器運行。

(2)C/T*——計數(shù)器模式和定時器模式選擇位

1:計數(shù)方式,計數(shù)脈沖從外部引腳引入。

T0-P3.4T1-P3.5

0:定時器方式,計數(shù)脈沖為內(nèi)部脈沖。

脈沖周期=機器周期第15頁,課件共64頁,創(chuàng)作于2023年2月(3)M1、M0——工作方式選擇位

M1M0工作方式

00 方式0,13位定時器/計數(shù)器。

01 方式1,16位定時器/計數(shù)器。

10 方式2,8位常數(shù)自動重新裝載

11 方式3,僅適用于T0,T0分成兩個8 位計數(shù)器,T1停止計數(shù)。第16頁,課件共64頁,創(chuàng)作于2023年2月8.1.2定時器/計數(shù)器的4種工作方式

8.1.2.1定時工作方式0M1、M0為00,定時器/計數(shù)器的框圖:

TL計滿溢出向TH進位。13位計滿溢出時TF1置位。第17頁,課件共64頁,創(chuàng)作于2023年2月方式0——13位的計數(shù)器C/T*位決定工作模式:

0:開關(guān)打在上面,為定時器工作模式;

1:開關(guān)打在下面,為計數(shù)器工作模式,計數(shù)脈沖為P3.4、P3.5引腳上的外部輸入脈沖,當引腳上發(fā)生負跳變時,計數(shù)器加1。GATE位:決定定時器/計數(shù)器的運行是取決于TRx一個條件還是TRx和INTx*引腳兩個條件。GATE=1TR1=1時由/INT1信號控制計數(shù)脈沖的接通或斷開。常用于測量外部輸入信號的脈沖寬度。第18頁,課件共64頁,創(chuàng)作于2023年2月8.1.2.2方式1

M1、M0=01,16位的計數(shù)器。TL計滿溢出向TH進位。16位計滿溢出時TF1置位。第19頁,課件共64頁,創(chuàng)作于2023年2月

在方式0和方式1中,計數(shù)計滿溢出后,使其值為0。在循環(huán)定時或計數(shù)應(yīng)用中,必須反復(fù)預(yù)置計數(shù)初值,不僅會影響定時精度,而且給程序設(shè)計帶來不便。第20頁,課件共64頁,創(chuàng)作于2023年2月THx作為常數(shù)緩沖器,當TLx計數(shù)溢出時,在置“1”溢出標志TFx的同時,還自動的將THx中的初值送至TLx,使TLx從初值開始重新計數(shù)。M1、M0=10,等效框圖如下:8.1.2.3方式2

計數(shù)滿后自動裝入計數(shù)初值。第21頁,課件共64頁,創(chuàng)作于2023年2月

省去用戶軟件中重裝初值的程序,精確的定時。

定時器作串口波特率發(fā)生器時,常選用定時方式2。定時器/計數(shù)器的方式2工作過程如圖(X=0,1)。

初始化時,將初值分別付給THx和TLx。第22頁,課件共64頁,創(chuàng)作于2023年2月(2)T1工作在方式1

(3)T1工作在方式2

0~7第23頁,課件共64頁,創(chuàng)作于2023年2月第24頁,課件共64頁,創(chuàng)作于2023年2月

回顧1.T0/T1有哪幾種工作模式?

2.方式1、2各有什么突出特點?

3.T0/T1的計數(shù)信號來源于何處?

4.對外部信號計數(shù)時的最高允許頻率為多少?

5.如何啟動T0/T1定時或計數(shù)?

6.TF0、TF1在什么情況下會自動置1?何時

會自動清零?

7.相關(guān)的SFR有哪幾個?第25頁,課件共64頁,創(chuàng)作于2023年2月4種工作方式中,方式0與方式1基本相同,由于方式0是為兼容MCS-48而設(shè),初值計算復(fù)雜,在實際應(yīng)用中,一般不用方式0,而采用方式1。8.1.3定時器/計數(shù)器的編程和應(yīng)用第26頁,課件共64頁,創(chuàng)作于2023年2月8.1.3.1計算初值的計算1、定時方式下的計數(shù)初值定時時間

或者第27頁,課件共64頁,創(chuàng)作于2023年2月計數(shù)初值:方式0:n=13方式1:n=16方式2:n=8第28頁,課件共64頁,創(chuàng)作于2023年2月計數(shù)方式下的計數(shù)初值在計數(shù)方式下,可分為兩種情況:1、已知計數(shù)脈沖的個數(shù)C2、未知計數(shù)脈沖的個數(shù)C第29頁,課件共64頁,創(chuàng)作于2023年2月定時/計數(shù)器初始化基本步驟

1)根據(jù)定時時間或計數(shù)要求,確定計數(shù)初值

2)確定工作方式,寫控制字到TMOD3)預(yù)置定時或者計數(shù)的初值x4)根據(jù)需求開放定時器/計數(shù)器的中斷

5)啟動定時器/計數(shù)器

8.1.3.2初始化編程第30頁,課件共64頁,創(chuàng)作于2023年2月

8.1.3.3應(yīng)用舉例1、方式1應(yīng)用

例:假設(shè)系統(tǒng)時鐘頻率采用6MHz,要在P1.0上輸出一個周期為2ms的方波,如圖所示。

第31頁,課件共64頁,創(chuàng)作于2023年2月

方波的周期用T0來確定,讓T0每隔1ms計數(shù)溢出1次(每1ms產(chǎn)生一次中斷),CPU響應(yīng)中斷后,在中斷服務(wù)程序中對P1.0取反。

(1)計算初值X

設(shè)初值為X,則有: (216-X)×2×10-6=1×10-3216-X=500X=65036X化為16進制,即X=FE0CH=1111111000001100B。所以,T0的初值為:TH0=0FEHTL0=0CH

(2)初始化程序設(shè)計

第32頁,課件共64頁,創(chuàng)作于2023年2月中斷服務(wù)程序主程序第33頁,課件共64頁,創(chuàng)作于2023年2月

對寄存器IP、IE、TCON、TMOD的相應(yīng)位進行正確設(shè)置,將計數(shù)初值送入定時器中。(3)程序設(shè)計

中斷服務(wù)程序除產(chǎn)生方波外,還要注意將計數(shù)初值重新裝入定時器中,為下一次中斷作準備。參考程序:

ORG0000HRESET:AJMPMAIN;轉(zhuǎn)主程序

ORG000BH;T0的中斷入口

AJMPIT0P ;轉(zhuǎn)T0中斷處理程序IT0P

ORG0100HMAIN:MOVSP,#60H;設(shè)堆棧指針

MOVTMOD,#01H ;設(shè)置T0為方式1

第34頁,課件共64頁,創(chuàng)作于2023年2月

ACALLPT0M0 ;調(diào)用子程序PT0M0HERE:AJMPHERE ;自身跳轉(zhuǎn)PT0M0:MOVTL0,#0CH ;

MOVTH0,#0FEHSETBTR0 ;啟動T0SETBET0 ;允許T0中斷

SETBEA;CPU開中斷

RETITOP:MOVTL0,#0CH;T0中斷服務(wù)子程序,T0置初值

MOVTH0,#0FEHCPLP1.0;P1.0的狀態(tài)取反

RETI第35頁,課件共64頁,創(chuàng)作于2023年2月

查詢方式的參考程序:

MOVTMOD,#01H;設(shè)置T0為方式1

SETBTR0;接通T0LOOP:MOVTH0,#0FEH;T0置初值

MOVTL0,#0CHLOOP1:JNBTF0,LOOP1;查詢TF0標志 CLRTF0;T0溢出,清TF0 CPLP1.0;P1.0的狀態(tài)求反

SJMPLOOP第36頁,課件共64頁,創(chuàng)作于2023年2月第37頁,課件共64頁,創(chuàng)作于2023年2月例假設(shè)系統(tǒng)時鐘為6MHz,編寫定時器T0產(chǎn)生1秒定時的程序。(1)T0工作方式的確定定時時間較長,采用哪一種工作方式?由各種工作方式的特性,可計算出:

方式0最長可定時16.384ms;

方式1最長可定時131.072ms;

方式2最長可定時512s。選方式1,每隔100ms中斷一次,中斷10次為1s第38頁,課件共64頁,創(chuàng)作于2023年2月(2)計算計數(shù)初值因為:(216-X)×2×10-6=10-1

所以:X=15536=3CB0H

因此:TH0=3CH,TL0=0B0H(3)10次計數(shù)的實現(xiàn)采用循環(huán)程序法。(4)程序設(shè)計參考程序:

第39頁,課件共64頁,創(chuàng)作于2023年2月

ORG0000HRESET:LJMPMAIN ;上電,轉(zhuǎn)主程序入口MAIN

ORG000BH

;T0的中斷入口

LJMPIT0P ;轉(zhuǎn)T0中斷處理程序IT0P

ORG1000H

MAIN:MOVSP,#60H ;設(shè)堆棧指針

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

MOVTMOD,#01H;設(shè)T0工作在方式1

MOVTL0,#0B0H;給T0設(shè)初值

MOVTH0,#3CH

第40頁,課件共64頁,創(chuàng)作于2023年2月

SETBTR0 ;啟動T0SETBET0;允許T0中斷

SETBEA;CPU開放中斷

HERE:SJMPHERE;等待中斷

ITOP:MOVTL0,#0B0H;T0中斷子程序,重裝初值

MOVTH0,#3CH;

DJNZB,LOOPCLRTR0;1s定時時間到,停止T0工作

LOOP:RETI第41頁,課件共64頁,創(chuàng)作于2023年2月2、方式2的應(yīng)用

省去程序中重裝初值的指令,并可產(chǎn)生相當精確的定時時間。

例當T0(P3.4)引腳上發(fā)生負跳變時,從P1.0引腳上輸出一個周期為1ms的方波,如圖所示。(系統(tǒng)時鐘為6MHz)

第42頁,課件共64頁,創(chuàng)作于2023年2月(1)工作方式選擇

T0為方式1計數(shù),初值0FFFFH,即外部計數(shù)輸入端T0(P3.4)發(fā)生一次負跳變時,T0加1且溢出,溢出標志TF0置“1”,發(fā)中斷請求。在進入T0中斷程序后,把F0標志置“1”,說明T0腳已接收了負跳變信號。

T1定義為方式2定時。在T0腳發(fā)生一次負跳變后,第43頁,課件共64頁,創(chuàng)作于2023年2月

啟動T1每500s產(chǎn)生一次中斷,在中斷服務(wù)程序中對P1.0求反,使P1.0產(chǎn)生周期1ms的方波。(2)計算T1初值設(shè)T1的初值為X:則(28-X)×2×10-6=5×10-4X=28-250=6=06H(3)程序設(shè)計

ORG0000HRESET:LJMPMAIN;復(fù)位入口轉(zhuǎn)主程序

ORG000BH JMPIT0P ;轉(zhuǎn)T0中斷服務(wù)程序第44頁,課件共64頁,創(chuàng)作于2023年2月

ORG001BHLJMPIT1P ;轉(zhuǎn)T1中斷服務(wù)程序

ORG0100HMAIN:MOVSP,#60HACALLPT0M2 ;調(diào)用對T0,T1初始化子程序LOOP:MOVC,F0 ;T0產(chǎn)生過中斷了嗎,產(chǎn)生過 ;中斷,則F0=1JNCLOOP ; ;T0沒有產(chǎn)生過中斷,則跳到 ;LOOP,等待T0中斷

SETBTR1 ;啟動T1SETBET1 ;允許T1中斷HERE:AJMPHERE第45頁,課件共64頁,創(chuàng)作于2023年2月

PT0M2:MOVTMOD,#25H ;初始化,T1為方式2定 ;時,T0為方式1計數(shù)

MOVTL0,#0FFH ;T0置初值

MOVTH0,#0FFHSETBTR0 ;啟動T0SETBET0 ;允許T0中斷

MOVTL1,#06H ;T1置初值

MOVTH1,#06HCLRF0 ;把T0已發(fā)生中斷標志F0清0SETBEA RET第46頁,課件共64頁,創(chuàng)作于2023年2月IT0P:CLRTR0;T0中斷服務(wù)程序,停止T0計數(shù)

SETBF0;建立產(chǎn)生中斷標志

RETIIT1P:CPLP1.0;T1中斷服務(wù),P1.0位取反

RETI

在T1定時中斷服務(wù)程序IT1P中,省去了T1中斷服務(wù)程序中重新裝入初值06H的指令。第47頁,課件共64頁,創(chuàng)作于2023年2月

例利用T1的方式2對外部信號計數(shù),要求每計滿100個數(shù),將P1.0取反。

本例是方式2計數(shù)模式的應(yīng)用。(1)選擇工作方式

外部信號由T1(P3.5)腳輸入,每發(fā)生一次負跳變計數(shù)器加1,每輸入100個脈沖,計數(shù)器產(chǎn)生溢出中斷,在中斷服務(wù)程序中將P1.0取反一次。

T1方式2的控制字為TMOD=60H。不使用T0時,TMOD的低4位可任取,但不能使T0進入方式3,這里取全0。(2)計算T1的初值

X=28-100=156=9CH

因此,TL1的初值為9CH,重裝初值寄存器TH1=9CH第48頁,課件共64頁,創(chuàng)作于2023年2月(3)程序設(shè)計

ORG0000H LJMPMAIN

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

CPLP1.0 ;P1.0位取反

RETI

ORG0100HMAIN: MOVTMOD,#60H;設(shè)T1為方式2計數(shù)

MOVTL0,#9CH;T0置初值

MOVTH0,#9CH SETBTR1;啟動T1SETBET1SETBEAHERE: AJMPHERE第49頁,課件共64頁,創(chuàng)作于2023年2月第50頁,課件共64頁,創(chuàng)作于2023年2月第51頁,課件共64頁,創(chuàng)作于2023年2月第52頁,課件共64頁,創(chuàng)作于2023年2月第53頁,課件共64頁,創(chuàng)作于2023年2月5、門控制位GATE的應(yīng)用—測量脈沖寬度

GATEx可使定時器/計數(shù)器Tx的啟動計數(shù)受/INTx的控制,可測量引腳/INTx(P3.2P3.3)上正脈沖的寬度(機器周期數(shù))。第54頁,課件共64頁,創(chuàng)作于2023年2月待測脈沖信號接與哪個引腳?(/INT0引腳、

T0引腳)設(shè)定T0為定時方式還是計數(shù)方式?幾位?設(shè)初值TH0、TL0為多少?

何時置位TR0?何時讀取結(jié)果TH0、TL0?若TH0、TL0發(fā)生溢出應(yīng)如何處理?如何測量負脈沖寬度?測量精度與什么有關(guān)?第55頁,課件共64頁,創(chuàng)作于2023年2月參考程序:

ORG0000HRESET:AJMPMAIN;復(fù)位入口轉(zhuǎn)主程序

ORG0100HMAIN:MOVSP,#60HMOVTMOD,#90H;T1為方式1定時控制字

MOVTL1,#00HMOVTH1,#00HCLREILOOP0:JBP3.3,LOOP0 ;/INT1高,則循環(huán)

SETBTR1 ;如/INT1為低,啟動T1LOOP1:JNBP3.3,LOOP1 ;等待/INT1變高,開始計數(shù)LOOP2:JBP3.3,LOOP2 ;/INT1高,計數(shù)第56頁,課件共64頁,創(chuàng)作于2023年2月

CLRTR1 ;停止T1計數(shù)

MOVA,TL1 ;T1計數(shù)值送A

將A中的T1計數(shù) 值送顯示緩沖區(qū)

轉(zhuǎn)換成顯示的代碼

LOOP3:LCALLDIR ;調(diào)用顯示子程序DIR ;顯示T1計數(shù)值

AJMPLOOP3 ;執(zhí)行程序,使/INT1引腳上出現(xiàn)的正脈沖寬度以機器周期數(shù)的形式顯示在顯示器上。第57頁,課件共64頁,創(chuàng)作于2023年2月信號頻率的測量基本原理:定時1s,記錄脈沖個數(shù)。1.待測頻率信號接與哪個引腳?(T0引腳、!INT0引腳)2.設(shè)定T0為定時方式還是計數(shù)方式?幾位?3.設(shè)初值TH0、TL0為多少?4.何時置位TR0?何時讀取結(jié)果TH0、TL0?5.若TH0、TL0發(fā)生溢出應(yīng)如何處理?第58頁,課件共64頁,創(chuàng)作于2023年2月8.1.3.4定時器/計數(shù)器在應(yīng)用中應(yīng)注意的兩個問題1、運行中讀定時器/計數(shù)器在讀取運行中的定時器/計數(shù)器時,需注意:若恰好出現(xiàn)TLX溢出向

溫馨提示

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

評論

0/150

提交評論