單片機(jī) 第五章 單片機(jī)的定時(shí)器計(jì)數(shù)器_第1頁
單片機(jī) 第五章 單片機(jī)的定時(shí)器計(jì)數(shù)器_第2頁
單片機(jī) 第五章 單片機(jī)的定時(shí)器計(jì)數(shù)器_第3頁
單片機(jī) 第五章 單片機(jī)的定時(shí)器計(jì)數(shù)器_第4頁
單片機(jī) 第五章 單片機(jī)的定時(shí)器計(jì)數(shù)器_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

單片機(jī)第五章單片機(jī)的定時(shí)器計(jì)數(shù)器第一頁,共三十二頁,2022年,8月28日第一節(jié)定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)和功能一、結(jié)構(gòu)和功能二、方式寄存器TMOD和控制寄存器TCON第二頁,共三十二頁,2022年,8月28日一、結(jié)構(gòu)和功能

8051單片機(jī)內(nèi)有兩個(gè)可編程16位定時(shí)器/計(jì)數(shù)器,常稱為定時(shí)器0和定時(shí)器1,簡稱為T0和T1,每個(gè)定時(shí)計(jì)數(shù)器都由兩個(gè)8位專用寄存器組成,T0由TH0,TL0組成,T1由TH1,TL1組成,同時(shí)還有TCON,TMOD兩個(gè)專用寄存器對(duì)其進(jìn)行控制。常用于定時(shí)控制、延時(shí)、外部計(jì)數(shù)和檢測(cè)等。1.結(jié)構(gòu):外部控制門第三頁,共三十二頁,2022年,8月28日2.功能:a.定時(shí):

對(duì)機(jī)器周期進(jìn)行計(jì)數(shù),即計(jì)數(shù)脈沖來自單片機(jī)的內(nèi)部。即每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖使得計(jì)數(shù)器加1,直至計(jì)滿溢出。一個(gè)機(jī)器周期=12*振蕩周期

12MHZ晶體,計(jì)數(shù)周期(機(jī)器周期)=1us。即每1us計(jì)數(shù)器加l。從開始計(jì)數(shù)到溢出這段時(shí)間就是“定時(shí)”時(shí)間。因此,若機(jī)器周期一定,計(jì)數(shù)初值越大,則定時(shí)越短第四頁,共三十二頁,2022年,8月28日b.計(jì)數(shù):

對(duì)外來脈沖進(jìn)行計(jì)數(shù)。

T0(P3.4)和T1(P3.5)兩個(gè)引腳,作為計(jì)數(shù)輸入端。 外部輸入的脈沖在出現(xiàn)從1到0的負(fù)跳變時(shí)有效,計(jì)數(shù)器進(jìn)行加1。 計(jì)數(shù)方式下,單片機(jī)在每個(gè)機(jī)器周期的S5P2拍節(jié)時(shí)對(duì)外部計(jì)數(shù)脈沖進(jìn)行采樣。如果前一個(gè)機(jī)器周期采樣為高電平,后一個(gè)機(jī)器周期采樣為低電平,即為一個(gè)有效的計(jì)數(shù)脈沖。在下一機(jī)器周期的S3Pl進(jìn)行計(jì)數(shù)。 即采樣計(jì)數(shù)脈沖需要2個(gè)機(jī)器周期,即24個(gè)振蕩周期。因此,計(jì)數(shù)脈沖的頻率最高為振蕩脈沖頻率的 1/24第五頁,共三十二頁,2022年,8月28日

TCON8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT01.控制寄存器TCONTF1(TCON.7,8FH位)----定時(shí)器T1中斷請(qǐng)求溢出標(biāo)志位。TF0(TCON.5,8DH位)----定時(shí)器T0中斷請(qǐng)求溢出標(biāo)志位。

TR1(TCON.6,8EH位)----T1運(yùn)行控制位。

0:關(guān)閉T1;1:啟動(dòng)T1運(yùn)行。只由軟件置位或清零。TR0(TCON.4,8CH位)----T0運(yùn)行控制位。

0:關(guān)閉T0;1:啟動(dòng)T0運(yùn)行。只由軟件置位或清零。 8051設(shè)有定時(shí)/計(jì)數(shù)器應(yīng)用相關(guān)的控制器,即兩個(gè)8位專用寄存器TMOD和TCON。定/計(jì)工作前,必須經(jīng)過由CPU將一些命令寫入定/計(jì)的初始化過程。

二、方式寄存器TMOD和控制寄存器TCON第六頁,共三十二頁,2022年,8月28日2.方式寄存器TMOD

(不能進(jìn)行位尋址,沒有位地址)

GATED7D6D5D4D3D2D1D0C/TM1M0C/TM1M0GATETMOD

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ù)C/T----定時(shí)器/計(jì)數(shù)器方式選擇位。

0:定時(shí)器;1:計(jì)數(shù)器。GATE----外部門控位。

0:不用外部門,只將TR0/TR1置1來啟動(dòng)定時(shí)器;

1:使用外部門,外部請(qǐng)求信號(hào)INT0/INT1(高電平)和TR0/TR1(置1)共同來啟動(dòng)定時(shí)器。定時(shí)計(jì)數(shù)器1定時(shí)計(jì)數(shù)器0第七頁,共三十二頁,2022年,8月28日 第八頁,共三十二頁,2022年,8月28日1、方式0(T1,T0)當(dāng)M1M0兩位為00時(shí),定時(shí)/計(jì)數(shù)器被選為工作方式0,13位計(jì)數(shù)器,其邏輯結(jié)構(gòu)如圖所示??刂普袷幤鳌?2TL0低5位TF0中斷T0端C/

T=0C/

T=1+INT0端GATETR0TH0

高8位第二節(jié)定時(shí)器/計(jì)數(shù)器的工作方式第九頁,共三十二頁,2022年,8月28日在方式0下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:

1~8192(213)定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為:

(213一計(jì)數(shù)初值)×晶振周期×12

或(213一計(jì)數(shù)初值)×機(jī)器周期若晶振頻率為6MHz,1個(gè)機(jī)器周期為1/6x10-6x12=2μs則最小定時(shí)時(shí)間為:最大定時(shí)時(shí)間為:[213–0]x2μs=16384μs=16.384ms[213–(213-1)]x2μs=2μs第十頁,共三十二頁,2022年,8月28日2、方式1(T1,T0)當(dāng)M1M0兩位為01時(shí),定時(shí)/計(jì)數(shù)器被選為工作方式1,16位計(jì)數(shù)器,其邏輯結(jié)構(gòu)如圖所示??刂普袷幤鳌?2TL0(8位)TF0中斷T0端C/

T=0C/

T=1+INT0端GATETR0TH0(8位)第十一頁,共三十二頁,2022年,8月28日在方式1下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:

1~65536(216)定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為:

(216一計(jì)數(shù)初值)×晶振周期×12

或(216一計(jì)數(shù)初值)×機(jī)器周期若晶振頻率為6MHz,1個(gè)機(jī)器周期為1/6x10-6x12=2μs則最小定時(shí)時(shí)間為:最大定時(shí)時(shí)間為:[216–(216-1)]x2μs=2μs[216–0]x2μs=131072μs=131.072ms第十二頁,共三十二頁,2022年,8月28日控制振蕩器÷12TL0(8位)TF0中斷T0端C/

T=0C/

T=1+INT0端GATETR0TH0(8位)重新裝入3、方式2(T1,T0)當(dāng)M1M0兩位為10時(shí),定時(shí)/計(jì)數(shù)器被選為工作方式2,自動(dòng)重加載8位計(jì)數(shù)器,其邏輯結(jié)構(gòu)如圖所示。方式0和方式1有個(gè)共同的特點(diǎn),就是計(jì)數(shù)溢出后計(jì)數(shù)器全清0,因此,循環(huán)定時(shí)時(shí)就需要反復(fù)設(shè)定計(jì)數(shù)器初值,比較麻煩,而方式2具有自動(dòng)重加載初值的功能,免去很多反復(fù)設(shè)置初值的工作。第十三頁,共三十二頁,2022年,8月28日在方式2下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:

1~256(28)定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為:

(28一計(jì)數(shù)初值)×晶振周期×12

或(28一計(jì)數(shù)初值)×機(jī)器周期若晶振頻率為6MHz,1個(gè)機(jī)器周期為1/6x10-6x12=2μs則最小定時(shí)時(shí)間為:最大定時(shí)時(shí)間為:[28–(28-1)]x

2μs=2μs[28–0]x

2μs=512μs第十四頁,共三十二頁,2022年,8月28日控制振蕩器÷12TL0(8位)TF0中斷T0端C/

T=0C/

T=1+INT0端GATETR0TH0(8位)1/12fosc1/12foscTF1中斷1/12foscTR14、方式3(T0)當(dāng)M1M0兩位為11時(shí),定時(shí)/計(jì)數(shù)器被選為工作方式3,只用于定時(shí)器0,T0被分成兩個(gè)獨(dú)立的8位計(jì)數(shù)器,其邏輯結(jié)構(gòu)如圖所示。定時(shí)器T0方式3結(jié)構(gòu)第十五頁,共三十二頁,2022年,8月28日控制振蕩器÷12TL1(8位)串行口T1(P3.5)端C/

T=0C/

T=1TH1(8位)重新裝入振蕩器÷12TL1(8/5位)T1(P3.5)端C/

T=0C/

T=1TH1(8位)串行口定時(shí)器T0用作方式3時(shí),T1仍可用于方式0~2結(jié)構(gòu)這時(shí),僅用C/T來切換定時(shí)或計(jì)數(shù)。T1方式0或1T1方式2第十六頁,共三十二頁,2022年,8月28日在方式0下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:

1~8192(213)213-計(jì)數(shù)初值=計(jì)數(shù)的脈沖數(shù)定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為:

(213一計(jì)數(shù)初值)×晶振周期×12=定時(shí)時(shí)間或(213一計(jì)數(shù)初值)×機(jī)器周期=定時(shí)時(shí)間若晶振頻率為6MHz,1個(gè)機(jī)器周期為1/6x10-6x12=2μs則最小定時(shí)時(shí)間為:最大定時(shí)時(shí)間為:[213–(213-1)]x2μs=2μs[213–0]x2μs=16384μs=16.384ms第三節(jié)定時(shí)/計(jì)數(shù)器應(yīng)用我們編程時(shí),通常是求計(jì)數(shù)初值第十七頁,共三十二頁,2022年,8月28日(1)計(jì)算計(jì)數(shù)初值:例1:設(shè)單片機(jī)晶振頻率Fosc=6MHz,使用定時(shí)器1以方式0產(chǎn)生周期為200μs的等寬正方波脈沖,并由P1.0輸出。以查詢方式完成。

欲產(chǎn)生200μs的等寬正方波脈沖,只需在P1.0端以100μs為周期交替輸出高低電平即可實(shí)現(xiàn),為此定時(shí)時(shí)間應(yīng)為100μs。使用6MHz晶振,則一個(gè)機(jī)器周期為2μs。方式0為13位計(jì)數(shù)結(jié)構(gòu)。設(shè)待求的計(jì)數(shù)初值為x,則:

(213—x)×2μs=100μs,求解得:

x=01110B。低5位和高8位分別轉(zhuǎn)換為十六進(jìn)制數(shù),高8位為FEH,低5位為0EH。其中高8位放入THl,即THl=FEH;低5位放入TLl,即TL1=0EH。(2)TMOD寄存器初始化為把定時(shí)器/計(jì)數(shù)器1設(shè)定為方式0,則MlM0=00H;為實(shí)現(xiàn)定時(shí)功能,應(yīng)使C/T=0;為實(shí)現(xiàn)定時(shí)器/計(jì)數(shù)器1的運(yùn)行控制,則GATE=0。定時(shí)器/計(jì)數(shù)器0不用,有關(guān)位設(shè)定為0。因此TMOD寄存器應(yīng)初始化為00H。由定時(shí)器控制寄存器TCON中的TR1位控制定時(shí)的啟動(dòng)和停止:

TR1=1啟動(dòng),TR1=0停止第十八頁,共三十二頁,2022年,8月28日(4)程序設(shè)計(jì)

MOV TMOD,#00H MOV TH1,#0FEH MOV TL1,#0EH SETB TR1LOOP1: JBC TF1,LOOP2 SJMP LOOP1LOOP2: MOV TL1,#0EH MOV TH1,#0FEH

CLR TF1 CPL P1.0 SJMP LOOP1

第十九頁,共三十二頁,2022年,8月28日在方式1下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:

1~65536(216)

216-計(jì)數(shù)初值=計(jì)數(shù)的脈沖數(shù)定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為:

(216一計(jì)數(shù)初值)×晶振周期×12=定時(shí)時(shí)間或(216一計(jì)數(shù)初值)×機(jī)器周期=定時(shí)時(shí)間若晶振頻率為6MHz,1個(gè)機(jī)器周期為1/6x10-6x12=2μs則最小定時(shí)時(shí)間為:最大定時(shí)時(shí)間為:[216–(216-1)]x2μs=2μs[216–0]x2μs=131072μs=131.072ms第二十頁,共三十二頁,2022年,8月28日例2:設(shè)單片機(jī)晶振頻率Fosc=12MHz,使用定時(shí)器0以方式1產(chǎn)生周期為2S的等寬正方波脈沖,并由P1.0輸出。以查詢方式完成。

(1)計(jì)算計(jì)數(shù)初值

設(shè)待求的計(jì)數(shù)初值為x,則:

(216—x)×1μs=50000μs,求解得:

x=15536D=3CB0H。即TH0=3CH;TL0=B0H。(2)TMOD寄存器初始化

TMOD=00000001B第二十一頁,共三十二頁,2022年,8月28日(3)程序設(shè)計(jì)START: MOV R2,#20 MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB TR0LOOP1:JBC TF0,LOOP2 SJMP LOOP1LOOP2:MOV TL0,#0B0H MOV TH0,#3CH DJNZ R2,LOOP1 CPL P1.0 MOV R2,#20 SJMP LOOP1第二十二頁,共三十二頁,2022年,8月28日在方式2下,計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:

1~256(28)

28-計(jì)數(shù)初值=計(jì)數(shù)的脈沖數(shù)定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為:

(28一計(jì)數(shù)初值)×晶振周期×12=定時(shí)時(shí)間或(28一計(jì)數(shù)初值)×機(jī)器周期=定時(shí)時(shí)間若晶振頻率為6MHz,1個(gè)機(jī)器周期為1/6x10-6x12=2μs則最小定時(shí)時(shí)間為:最大定時(shí)時(shí)間為:[28–(28-1)]x

2μs=2μs[28–0]x

2μs=512μs第二十三頁,共三十二頁,2022年,8月28日例3:使用定時(shí)器0以工作方式2產(chǎn)生100μs定時(shí),在P1.0輸出周期為200μs的連續(xù)方波。已知晶振頻率fosc=6MHz。(1)計(jì)算計(jì)數(shù)初值

6MHz晶振下,一個(gè)機(jī)器周期為2μs,以TH0作重裝載的預(yù)置寄存器,TL0作8位計(jì)數(shù)器,假設(shè)計(jì)數(shù)初值為x。則:

(28—x)×2μs=100μs求解得:X=206D=11001110B=CEH把CEH分別裝入TH0和TL0中:TH0=CEH,TL0=CEHTMOD寄存器初始化(2)定時(shí)器/計(jì)數(shù)器0為工作方式2,MlM0=10;為實(shí)現(xiàn)定時(shí)功能C/T=0;依題意GATE=0;定時(shí)器/計(jì)數(shù)器1不用,有關(guān)位設(shè)定為0。綜上情況TMOD寄存器的狀態(tài)應(yīng)為02H。(3)程序設(shè)計(jì)(查詢方式):

MOV TMOD,#02H MOV TH0,#0CEH MOV TL0,#0CEH SETB TR0LOOP: JBC TF0,LOOP1 SJMP LOOPLOOP1: CPL P1.0 SJMP LOOP第二十四頁,共三十二頁,2022年,8月28日例4:用定時(shí)器l以工作方式2計(jì)數(shù),每計(jì)100次進(jìn)行累計(jì)器加1操作.(1)計(jì)算計(jì)數(shù)初值.28—100=156D=9CHTH1=9CH,TL1=9CHTMOD寄存器初始化:MlM0=10,C/T=1,GATE=0因此TMOD=60H(2)程序設(shè)計(jì)序設(shè)計(jì)

CLR A MOV TMOD,#60H MOV TH1,#9CH MOV TL1,#9CH SETB TR1DEL: JBC TF1,LOOP SJMP DELLOOP: INC A SJMP DEL第二十五頁,共三十二頁,2022年,8月28日例5:(應(yīng)用兩個(gè)定時(shí)器)設(shè)重復(fù)周期大于1ms的低頻脈沖信號(hào)從P3.5引腳(T1)輸入。要求P3.5每發(fā)生1次負(fù)跳變時(shí),P1.0輸出1個(gè)500μs同步負(fù)脈沖,同時(shí)P1.1輸出1個(gè)1ms的同步正脈沖,其波形圖如下,設(shè)fosc=6MHz。P3.5P1.0P1.11ms500μs1ms計(jì)算計(jì)數(shù)初值:定時(shí)器T0定時(shí)500us,使用方式2,T1用于計(jì)數(shù)1個(gè)脈沖(每一次負(fù)跳變發(fā)生一次變化)因此同時(shí)使用兩個(gè)定時(shí)計(jì)數(shù)器,T0:(28-x)×2us=500usx=6D=06HTH0=06H,TL0=06HT1:X=28-1X=255D=0FFHTH1=0FFH,TL1=0FFHT0用于定時(shí)C/T=0,方式2M1M0=10,GATE=0T1用于計(jì)數(shù)C/T=1,方式2M1M0=10,GATE=0TMOD寄存器初始化:TMOD=62H第二十六頁,共三十二頁,2022年,8月28日 ORG 0030HSTART1: MOV TMOD,#62H MOV TH0,#06H;T0,定時(shí)500us MOV TL0,#06H MOV TH1,#0FFH;T1,計(jì)數(shù)一個(gè)脈沖

MOV TL1,#0FFH SETB P1.0 CLR P1.1 SETB TR1;啟動(dòng)T1LP1: JBC TF1,NEX1 SJMP LP1

NEX1: CLR P1.0 SETB P1.1 SETB TR0;啟動(dòng)T0LP2: JBC TF0,NEX2;定時(shí)500us SJMP LP2NEX2: SETB P1.0LP3: JBC TF0,NEX3 SJMP LP3NEX3: CLR P1.1;定2次500us共1ms CLR TR0;T0停止工作

AJMP LP1P3.5P1.0P1.11ms500μs1ms第二十七頁,共三十二頁,2022年,8月28日例6:利用定時(shí)器0控制產(chǎn)生周期為2ms和100ms的方波信號(hào),分別由P1.0和P1.1引腳輸出,采用中斷方式。系統(tǒng)時(shí)鐘為12MHz。分析:方波為2ms,定時(shí)時(shí)間為1ms。機(jī)器周期為1μs,采用方式0,則計(jì)數(shù)初值為

X=213TH0=E0H,TL0=18H

方波為100ms,定時(shí)時(shí)間為50ms,可采用50次1ms定時(shí)第二十八頁,共三十二頁,2022年,8月28日ORG0000HLJMPBEGINORG000BHLJMPTOINTORG2000HBEGIN:MOVTMOD,#00HMOV

溫馨提示

  • 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)論