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

下載本文檔

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

文檔簡(jiǎn)介

1、第第6 6章章 AT89S51 AT89S51單片機(jī)的單片機(jī)的 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用 主講人:賀偉主講人:賀偉業(yè)精于勤荒于嬉,行成于思?xì)в陔S業(yè)精于勤荒于嬉,行成于思?xì)в陔S內(nèi)容概要內(nèi)容概要工業(yè)檢測(cè)與控制,許多場(chǎng)合都要用到計(jì)數(shù)或定時(shí)功能。工業(yè)檢測(cè)與控制,許多場(chǎng)合都要用到計(jì)數(shù)或定時(shí)功能。例如,對(duì)外部脈沖進(jìn)行計(jì)數(shù),產(chǎn)生精確的定時(shí)時(shí)間等。例如,對(duì)外部脈沖進(jìn)行計(jì)數(shù),產(chǎn)生精確的定時(shí)時(shí)間等。AT89S51片內(nèi)有兩個(gè)可編程的定時(shí)器片內(nèi)有兩個(gè)可編程的定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T1、T0,可,可滿足需要。滿足需要。本章介紹定時(shí)器本章介紹定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)與功能,計(jì)數(shù)器的結(jié)構(gòu)與功

2、能,2種工作模式和種工作模式和4種工作方式,以及相關(guān)的種工作方式,以及相關(guān)的2個(gè)特殊功能寄存器個(gè)特殊功能寄存器TMOD和和TCON各位的定義及其編程,最后介紹定時(shí)器各位的定義及其編程,最后介紹定時(shí)器/計(jì)數(shù)器的編計(jì)數(shù)器的編程及應(yīng)用實(shí)例。程及應(yīng)用實(shí)例。實(shí)現(xiàn)定時(shí)一般有三種方法:實(shí)現(xiàn)定時(shí)一般有三種方法: 1 1、利用軟件實(shí)現(xiàn)延時(shí)程序)、利用軟件實(shí)現(xiàn)延時(shí)程序); ; 優(yōu)點(diǎn):簡(jiǎn)單,控制方便;缺點(diǎn):優(yōu)點(diǎn):簡(jiǎn)單,控制方便;缺點(diǎn):CPUCPU效率低。效率低。 2 2、硬件實(shí)現(xiàn),專門設(shè)計(jì)一個(gè)單穩(wěn)態(tài)定時(shí)器:、硬件實(shí)現(xiàn),專門設(shè)計(jì)一個(gè)單穩(wěn)態(tài)定時(shí)器: 優(yōu)點(diǎn):優(yōu)點(diǎn):CPUCPU效率高;缺點(diǎn):修改參數(shù)麻煩。效率高;缺點(diǎn):修改

3、參數(shù)麻煩。 3 3、利用計(jì)數(shù)器實(shí)現(xiàn)、利用計(jì)數(shù)器實(shí)現(xiàn)單片機(jī)一般利用第三種方法實(shí)現(xiàn)單片機(jī)一般利用第三種方法實(shí)現(xiàn)計(jì)數(shù)器計(jì)數(shù)器溢出溢出輸入脈沖輸入脈沖1us8位位256us預(yù)置數(shù)預(yù)置數(shù)AT89S51內(nèi)部設(shè)有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,可用軟件控制。定時(shí)器:對(duì)機(jī)器周期計(jì)數(shù), 每過一個(gè)機(jī)器周期,計(jì)數(shù)器內(nèi)容加1 ;計(jì)數(shù)器:對(duì)外來脈沖進(jìn)行計(jì)數(shù),T0、T1引腳上從高電平到低電平跳變時(shí),計(jì)數(shù)器內(nèi)容加1。外來脈沖外來脈沖T0機(jī)器周期機(jī)器周期片內(nèi)計(jì)數(shù)器片內(nèi)計(jì)數(shù)器單片機(jī)單片機(jī)6.1 定時(shí)器定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)定時(shí)器定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)如圖計(jì)數(shù)器結(jié)構(gòu)如圖6-1所示,定時(shí)器所示,定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0由特由特殊

4、功能寄存器殊功能寄存器TH0、TL0構(gòu)成,定時(shí)器構(gòu)成,定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T1由特殊由特殊功能寄存器功能寄存器TH1、TL1構(gòu)成。構(gòu)成。 圖6-1 AT89S51單片機(jī)的定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)框圖具有定時(shí)器和計(jì)數(shù)器2種工作模式,4種工作方式方式0、方式1、方式2和方式3)。屬于增計(jì)數(shù)器。TMOD用于選擇定時(shí)器/計(jì)數(shù)器T0、T1的工作模式和工作方式。TCON用于控制T0、T1的啟動(dòng)和停止計(jì)數(shù),同時(shí)包含了T0、T1的狀態(tài)。T0、T1不論是工作在定時(shí)器模式還是計(jì)數(shù)器模式,都是對(duì)脈沖信號(hào)進(jìn)行計(jì)數(shù),只是計(jì)數(shù)信號(hào)的來源不同。計(jì)數(shù)器模式是對(duì)加在T0P3.4和T1P3.5兩個(gè)引腳上的外部脈沖進(jìn)行計(jì)數(shù)見圖6-1)。

5、定時(shí)器工作模式是對(duì)單片機(jī)的時(shí)鐘振蕩器信號(hào)經(jīng)片內(nèi)12分頻后的內(nèi)部脈沖信號(hào)計(jì)數(shù)。由于時(shí)鐘頻率是定值,所以可根據(jù)計(jì)數(shù)值可計(jì)算出定時(shí)時(shí)間。計(jì)數(shù)器的起始計(jì)數(shù)都是從計(jì)數(shù)器初值開始的。單片機(jī)復(fù)位時(shí)計(jì)數(shù)器的初值為0,也可用指令給計(jì)數(shù)器裝入一個(gè)新的初值。AT89S51的定時(shí)器/計(jì)數(shù)器屬于增1計(jì)數(shù)器。二、定時(shí)器/計(jì)數(shù)器的工作原理 16 16位的定時(shí)器位的定時(shí)器/ /計(jì)數(shù)器實(shí)質(zhì)上是一個(gè)加計(jì)數(shù)器實(shí)質(zhì)上是一個(gè)加1 1計(jì)數(shù)器,計(jì)數(shù)器,可實(shí)現(xiàn)定時(shí)和計(jì)數(shù)兩種功能,其功能由軟件控制和可實(shí)現(xiàn)定時(shí)和計(jì)數(shù)兩種功能,其功能由軟件控制和切換。定時(shí)器屬硬件定時(shí)和計(jì)數(shù),是單片機(jī)中效率切換。定時(shí)器屬硬件定時(shí)和計(jì)數(shù),是單片機(jī)中效率高而且工作靈活

6、的部件。高而且工作靈活的部件。 在定時(shí)器在定時(shí)器/ /計(jì)數(shù)器開始工作之前,計(jì)數(shù)器開始工作之前,CPUCPU必須將一必須將一些命令些命令( (稱為控制字稱為控制字) )寫入定時(shí)器寫入定時(shí)器/ /計(jì)數(shù)器。將控制計(jì)數(shù)器。將控制字寫入定時(shí)器字寫入定時(shí)器/ /計(jì)數(shù)器的過程叫定時(shí)器計(jì)數(shù)器的過程叫定時(shí)器/ /計(jì)數(shù)器的初計(jì)數(shù)器的初始化。始化。 在初始化程序中,要將工作方式控制字寫入定在初始化程序中,要將工作方式控制字寫入定時(shí)器方式寄存器時(shí)器方式寄存器(TMOD)(TMOD),工作狀態(tài)控制字,工作狀態(tài)控制字( (或相關(guān)或相關(guān)位位) )寫入定時(shí)器控制寄存器寫入定時(shí)器控制寄存器(TCON)(TCON),賦定時(shí),賦定

7、時(shí)/ /計(jì)數(shù)初計(jì)數(shù)初值給值給TH0(TH1)TH0(TH1)和和TL0(TL1)TL0(TL1)。 1、定時(shí)器、定時(shí)器/計(jì)數(shù)器的定時(shí)功能計(jì)數(shù)器的定時(shí)功能: 計(jì)數(shù)器的加計(jì)數(shù)器的加1信號(hào)由振蕩器的信號(hào)由振蕩器的12分頻信號(hào)分頻信號(hào)產(chǎn)生,即每過一個(gè)機(jī)器周期,計(jì)數(shù)器加產(chǎn)生,即每過一個(gè)機(jī)器周期,計(jì)數(shù)器加1,直至計(jì)滿溢出。直至計(jì)滿溢出。 定時(shí)器的定時(shí)時(shí)間與系統(tǒng)的時(shí)鐘頻率有關(guān)。定時(shí)器的定時(shí)時(shí)間與系統(tǒng)的時(shí)鐘頻率有關(guān)。因一個(gè)機(jī)器周期等于因一個(gè)機(jī)器周期等于12個(gè)時(shí)鐘周期,所以個(gè)時(shí)鐘周期,所以計(jì)數(shù)頻率應(yīng)為系統(tǒng)時(shí)鐘頻率的十二分之一。計(jì)數(shù)頻率應(yīng)為系統(tǒng)時(shí)鐘頻率的十二分之一。如果晶振頻率為如果晶振頻率為12MHz,則機(jī)器周

8、期為,則機(jī)器周期為1s。通過改變定時(shí)器的定時(shí)初值,并適當(dāng)。通過改變定時(shí)器的定時(shí)初值,并適當(dāng)選擇定時(shí)器的長(zhǎng)度選擇定時(shí)器的長(zhǎng)度(8位、位、13位或位或16位位),可,可以調(diào)整定時(shí)時(shí)間。以調(diào)整定時(shí)時(shí)間。 2、定時(shí)器、定時(shí)器/計(jì)數(shù)器的計(jì)數(shù)功能計(jì)數(shù)器的計(jì)數(shù)功能: 通過外部計(jì)數(shù)輸入引腳通過外部計(jì)數(shù)輸入引腳T0(P3.4)和和T1(P3.5)對(duì)外部信號(hào)計(jì)數(shù),外部脈沖的下降沿將觸對(duì)外部信號(hào)計(jì)數(shù),外部脈沖的下降沿將觸發(fā)計(jì)數(shù)。計(jì)數(shù)器在每個(gè)機(jī)器周期的發(fā)計(jì)數(shù)。計(jì)數(shù)器在每個(gè)機(jī)器周期的S5P2期期間采樣引腳輸入電平,若一個(gè)機(jī)器周期間采樣引腳輸入電平,若一個(gè)機(jī)器周期S5P2期間采樣值為期間采樣值為1,下一個(gè)機(jī)器周期,下一個(gè)

9、機(jī)器周期S5P2期間采樣值為期間采樣值為0,則計(jì)數(shù)器加,則計(jì)數(shù)器加1,再下一個(gè),再下一個(gè)機(jī)器周期機(jī)器周期S3P1期間,新的計(jì)數(shù)值裝入計(jì)數(shù)期間,新的計(jì)數(shù)值裝入計(jì)數(shù)器。器。 因檢測(cè)一個(gè)由因檢測(cè)一個(gè)由1 1至至0 0的跳變需要兩個(gè)機(jī)器周期,的跳變需要兩個(gè)機(jī)器周期,故外部信號(hào)的最高計(jì)數(shù)頻率為時(shí)鐘頻率的二十四分故外部信號(hào)的最高計(jì)數(shù)頻率為時(shí)鐘頻率的二十四分之一。如果晶振頻率為之一。如果晶振頻率為12MHz12MHz,則最高計(jì)數(shù)頻率為,則最高計(jì)數(shù)頻率為0.5MHz0.5MHz。雖然對(duì)外部輸入信號(hào)的占空比無特殊要求,。雖然對(duì)外部輸入信號(hào)的占空比無特殊要求,但為了確保給定電平在變化前至少被采樣一次,外但為了確保

10、給定電平在變化前至少被采樣一次,外部計(jì)數(shù)脈沖的高電平與低電平保持時(shí)間均需在一個(gè)部計(jì)數(shù)脈沖的高電平與低電平保持時(shí)間均需在一個(gè)機(jī)器周期以上。機(jī)器周期以上。 如圖如圖6-10所示,圖中所示,圖中Tcy為機(jī)為機(jī)器周期。器周期。 各位的功能說明:各位的功能說明:TF1TCON.7, 8FH位)位)-T1溢出標(biāo)志位。溢出標(biāo)志位。TF0TCON.5, 8DH位)位)-T0溢出標(biāo)志位。溢出標(biāo)志位。TR1TCON.6, 8EH位)位)-T1運(yùn)行控制位。運(yùn)行控制位。 0:關(guān)閉:關(guān)閉T1;1:?jiǎn)?dòng):?jiǎn)?dòng)T1運(yùn)行。運(yùn)行。TR0TCON.4, 8CH位)位)-T0運(yùn)行控制位。運(yùn)行控制位。 0:關(guān)閉:關(guān)閉T0;1:?jiǎn)?dòng):

11、啟動(dòng)T0運(yùn)行。運(yùn)行。1.1.定時(shí)器控制寄存器定時(shí)器控制寄存器 定時(shí)器控制寄存器定時(shí)器控制寄存器TCONTCON的作用是控制定時(shí)器的啟動(dòng)與停止,的作用是控制定時(shí)器的啟動(dòng)與停止,并保存并保存T0T0、T1T1的溢出和中斷標(biāo)志。的溢出和中斷標(biāo)志。TCONTCON的格式的格式: : 可按位尋址可按位尋址6.1.1 6.1.1 工作方式寄存器和控制寄存器工作方式寄存器和控制寄存器 AT89S51單片機(jī)的定時(shí)器為可編程定時(shí)器,在定時(shí)器工作之單片機(jī)的定時(shí)器為可編程定時(shí)器,在定時(shí)器工作之前必須先進(jìn)行初始化,即將控制命令寫入定時(shí)器控制寄存器。前必須先進(jìn)行初始化,即將控制命令寫入定時(shí)器控制寄存器。 定時(shí)器方式寄存

12、器定時(shí)器方式寄存器TMOD的作用是設(shè)置的作用是設(shè)置T0、T1的工作方式的工作方式。 TMOD的格式:的格式:2.2.定時(shí)器工作方式寄存器定時(shí)器工作方式寄存器TMODTMOD各位的功能說明:各位的功能說明:(1) GATE(1) GATE:門控位。:門控位。 GATE=0 GATE=0:軟件啟動(dòng)定時(shí)器,即用指令使:軟件啟動(dòng)定時(shí)器,即用指令使TCONTCON中的中的TR1(TR0) TR1(TR0) 置置1 1即可啟動(dòng)定時(shí)器即可啟動(dòng)定時(shí)器1(1(定時(shí)器定時(shí)器0)0)。 GATE=1 GATE=1:軟件和硬件共同啟動(dòng)定時(shí)器,即用指令使:軟件和硬件共同啟動(dòng)定時(shí)器,即用指令使TCONTCON中的中的TR

13、1(TR0)TR1(TR0)置置1 1時(shí),只有外部中斷時(shí),只有外部中斷INT0(INT1)INT0(INT1)引腳輸入高電平時(shí)才引腳輸入高電平時(shí)才能啟動(dòng)定時(shí)器能啟動(dòng)定時(shí)器1(1(定時(shí)器定時(shí)器0)0)。(2)C/T(2)C/T:功能選擇位。:功能選擇位。 C/T=0 C/T=0時(shí),以定時(shí)器方式工作。時(shí),以定時(shí)器方式工作。 C/T=1 C/T=1時(shí),以計(jì)數(shù)器方式工作。時(shí),以計(jì)數(shù)器方式工作。M1 M0工作方式工作方式功能描述功能描述0 0方式方式013位計(jì)數(shù)器位計(jì)數(shù)器0 1方式方式116位計(jì)數(shù)器位計(jì)數(shù)器1 0方式方式2自動(dòng)重裝初值自動(dòng)重裝初值8位計(jì)數(shù)器位計(jì)數(shù)器1 1方式方式3定時(shí)器定時(shí)器0:分為兩個(gè)

14、獨(dú)立的:分為兩個(gè)獨(dú)立的8位計(jì)數(shù)器位計(jì)數(shù)器定時(shí)器定時(shí)器1:無中斷的計(jì)數(shù)器:無中斷的計(jì)數(shù)器定時(shí)器工作方式選擇位定義定時(shí)器工作方式選擇位定義(3) M1、M0:方式選擇位。定時(shí):方式選擇位。定時(shí)/計(jì)數(shù)器有四計(jì)數(shù)器有四種工作方式,由種工作方式,由M1M0進(jìn)行設(shè)置。進(jìn)行設(shè)置。二、二、 定時(shí)器工作方式:定時(shí)器工作方式:由方式選擇位由方式選擇位M1M1、M0M0設(shè)定。設(shè)定。計(jì)數(shù)外部脈沖個(gè)數(shù):計(jì)數(shù)外部脈沖個(gè)數(shù):1 18192(213)8192(213)定時(shí)時(shí)間定時(shí)時(shí)間( (若若T=1T=1s)s):1 1s s8.19ms8.19msfoscfoscT=12/foscT=12/fosc1616位定時(shí)位定時(shí)/

15、/計(jì)數(shù)器。計(jì)數(shù)器。 THx8THx8位和位和TLx8TLx8位組成位組成1616位加位加1 1計(jì)數(shù)器。計(jì)數(shù)器。計(jì)數(shù)外部脈沖個(gè)數(shù):計(jì)數(shù)外部脈沖個(gè)數(shù):1 165536(216)65536(216)定時(shí)時(shí)間定時(shí)時(shí)間( (若若T=1T=1s)s):1 1s s(65536(65536T=65.54ms)T=65.54ms)T=12/foscT=12/fosc 自動(dòng)恢復(fù)初值自動(dòng)恢復(fù)初值8 8位定時(shí)位定時(shí)/ /計(jì)數(shù)器。計(jì)數(shù)器。TLxTLx為為8 8位加位加1 1計(jì)數(shù)器,計(jì)數(shù)器, THx THx為為8 8位初值暫存器。位初值暫存器。用于需要重復(fù)定時(shí)和計(jì)數(shù)的場(chǎng)合。用于需要重復(fù)定時(shí)和計(jì)數(shù)的場(chǎng)合。最大計(jì)數(shù)值:最大

16、計(jì)數(shù)值:256 (28)256 (28)最大定時(shí)時(shí)間最大定時(shí)時(shí)間( (若若T=1T=1s)s): 256256s sT=12/foscT=12/fosc計(jì)數(shù)滿后自動(dòng)裝入計(jì)數(shù)初值。計(jì)數(shù)滿后自動(dòng)裝入計(jì)數(shù)初值。省去用戶軟件中重裝初值的程序,精確的定時(shí)。省去用戶軟件中重裝初值的程序,精確的定時(shí)。 T0T0分成分成2 2個(gè)個(gè)8 8位定時(shí)器:位定時(shí)器:TL0TL0定時(shí)定時(shí)/ /計(jì)數(shù)器和計(jì)數(shù)器和TH0TH0定時(shí)器;定時(shí)器; TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATEGATE; TH0TH0占用占用T1T1控制位:控制位:TR1TR1、TF1TF1; T1T1不能使用方式

17、不能使用方式3 3工作,常作串口的波特率發(fā)生器使用。工作,常作串口的波特率發(fā)生器使用。foscfosc振蕩器振蕩器T1工作在方式工作在方式1T1工作在方式工作在方式2T1工作在方式工作在方式0T0處于方式處于方式3時(shí),時(shí), T1可定為方式可定為方式0、方式、方式1和方式和方式2,用來作,用來作為串行口的波特率發(fā)生器,或不需要中斷的場(chǎng)合。為串行口的波特率發(fā)生器,或不需要中斷的場(chǎng)合。 4 4種工作方式中,方式種工作方式中,方式0 0與方式與方式1 1基本相同,由于基本相同,由于方式方式0 0是為兼容是為兼容MCS-48MCS-48而設(shè),初值計(jì)算復(fù)雜,在實(shí)際而設(shè),初值計(jì)算復(fù)雜,在實(shí)際應(yīng)用中,一般不用

18、方式應(yīng)用中,一般不用方式0 0,而采用方式,而采用方式1 1。 方式方式2 2省去程序中重裝初值的指令,并可產(chǎn)生相當(dāng)省去程序中重裝初值的指令,并可產(chǎn)生相當(dāng)精確的定時(shí)時(shí)間。精確的定時(shí)時(shí)間。 當(dāng)當(dāng)T1T1作串行口波特率發(fā)生器時(shí),作串行口波特率發(fā)生器時(shí),T0T0才設(shè)置為方式才設(shè)置為方式3 3。 6.4 6.4 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的編程和應(yīng)用計(jì)數(shù)器的編程和應(yīng)用 AT89S51 AT89S51的定時(shí)計(jì)數(shù)器是可編程的,因而,在進(jìn)的定時(shí)計(jì)數(shù)器是可編程的,因而,在進(jìn)行定時(shí)或計(jì)數(shù)之前也要用對(duì)其進(jìn)行初始化。初始化一行定時(shí)或計(jì)數(shù)之前也要用對(duì)其進(jìn)行初始化。初始化一般應(yīng)包括以下幾個(gè)步驟:般應(yīng)包括以下幾個(gè)步驟:1

19、1、對(duì)、對(duì)TMODTMOD寄存器賦值,以確定定時(shí)器的工作方式。寄存器賦值,以確定定時(shí)器的工作方式。2 2置定時(shí)計(jì)數(shù)器初值,直接將初值寫入寄存器的置定時(shí)計(jì)數(shù)器初值,直接將初值寫入寄存器的TH0TH0,TL0TL0或或TH1TH1,TL1TL1。3 3根據(jù)需要,對(duì)寄存器根據(jù)需要,對(duì)寄存器IEIE置初值,開放定時(shí)器中斷。置初值,開放定時(shí)器中斷。4 4對(duì)對(duì)TCONTCON寄存器中的寄存器中的TR1TR1或或TR0TR0置位,啟動(dòng)定時(shí)計(jì)數(shù)置位,啟動(dòng)定時(shí)計(jì)數(shù)器。啟動(dòng)以后,計(jì)數(shù)器即按規(guī)定的工作方式和初值進(jìn)器。啟動(dòng)以后,計(jì)數(shù)器即按規(guī)定的工作方式和初值進(jìn)行計(jì)數(shù)或開始定時(shí)。行計(jì)數(shù)或開始定時(shí)。定時(shí)定時(shí)/ /計(jì)數(shù)器初

20、值的計(jì)算計(jì)數(shù)器初值的計(jì)算 2計(jì)數(shù)器初值的計(jì)算 在計(jì)數(shù)器模式下,此時(shí)計(jì)數(shù)器就計(jì)數(shù)引腳上到來的脈沖個(gè)數(shù),每檢測(cè)到一個(gè)脈沖下降沿,就加1一次。其計(jì)數(shù)脈沖個(gè)數(shù)S為:S=M-X 式中,M為計(jì)數(shù)器模值,該值和計(jì)數(shù)器工作方式有關(guān),在方式0時(shí)M為213;在方式1時(shí)M為216;在方式2和方式3時(shí)M為28。 X是計(jì)數(shù)器的計(jì)數(shù)初值。 1 1定時(shí)器初值的計(jì)算定時(shí)器初值的計(jì)算 在定時(shí)器模式下,計(jì)數(shù)器由在定時(shí)器模式下,計(jì)數(shù)器由單片機(jī)主脈沖經(jīng)單片機(jī)主脈沖經(jīng)1212分頻后計(jì)數(shù),分頻后計(jì)數(shù),即就是對(duì)機(jī)器周期進(jìn)行計(jì)數(shù)。即就是對(duì)機(jī)器周期進(jìn)行計(jì)數(shù)。則定時(shí)器定時(shí)時(shí)間則定時(shí)器定時(shí)時(shí)間t t的公式:的公式: t= t=(M-XM-X) T

21、 T定時(shí)初值:定時(shí)初值:X=M-t/ TX=M-t/ T式中,式中,M M為模值,和定時(shí)器的工為模值,和定時(shí)器的工作方式有關(guān)作方式有關(guān), ,在方式在方式0 0時(shí)時(shí)M M為為213213;在方式在方式1 1時(shí)時(shí)M M為為216216;在方式;在方式2 2和和方式方式3 3時(shí)時(shí)M M為為28 28 。 T T是機(jī)器周期;是機(jī)器周期;X X是定時(shí)器的定時(shí)初值。是定時(shí)器的定時(shí)初值。 例例2:例:例:T0T0運(yùn)行于定時(shí)器狀態(tài),時(shí)鐘振蕩周期為運(yùn)行于定時(shí)器狀態(tài),時(shí)鐘振蕩周期為12MHZ12MHZ,要求定時(shí),要求定時(shí)100100s s。求不同工作方式時(shí)的定時(shí)初值。求不同工作方式時(shí)的定時(shí)初值X X并計(jì)算在不同工

22、并計(jì)算在不同工 作方式下最大的定時(shí)時(shí)間作方式下最大的定時(shí)時(shí)間tmaxtmax。解:解:fosc=12MHz T=1fosc=12MHz T=1s s 由公式由公式 X=M-t/T X=M-t/T 得得 : 方式方式0(130(13位方式位方式) ): X=213-100 X=213-100s/1s/1s=1F9Cs=1F9C當(dāng)當(dāng)T0T0的初值的初值=0=0時(shí)為最大定時(shí)時(shí)間時(shí)為最大定時(shí)時(shí)間: tmax=( 213 -0: tmax=( 213 -0)* *1 1 s=8.192mss=8.192ms方式方式1(161(16位方式位方式) ): X=216-100 X=216-100s/1s/1s

23、=FF9CH s=FF9CH tmax=( 216 -0 tmax=( 216 -0)* *1 1 s=65.536ms s=65.536ms 方式方式2 2、3(83(8位方式位方式) ):X=28-100X=28-100s/1s/1s=9CHs=9CH tmax=( 213 -0 tmax=( 213 -0)* *1 1 s=256 s=256 s s 注意:工作方式注意:工作方式0 0的初值裝入方法:的初值裝入方法:1F9CH=0001 1111 1001 1100 B1F9CH=0001 1111 1001 1100 B 可見,可見,TH0=FCHTH0=FCH,TL0=1CHTL0=

24、1CHTL0TL0的低的低5 5位位TH0TH0的的8 8位位MOVMOVTH0TH0,#0FCH#0FCHMOVMOVTL0TL0,#1CH#1CHT=12/foscT=12/fosc定時(shí)器初始化編程:定時(shí)器初始化編程: 使用定時(shí)器工作之前,先寫入控制寄存器,確定使用定時(shí)器工作之前,先寫入控制寄存器,確定好定時(shí)器工作方式。好定時(shí)器工作方式。 初始化編程格式:初始化編程格式:MOV TMOD,# 方式字方式字 ;選擇方式;選擇方式MOV THx,#XH ;裝入;裝入Tx時(shí)間常數(shù)時(shí)間常數(shù)MOV TLx,#XL(SETB EA) ;開;開Tx中斷中斷(SETB ETx ) SETB TRx ;啟動(dòng)

25、;啟動(dòng)Tx定時(shí)器定時(shí)器需考慮:需考慮:1. 按實(shí)際需要選擇定時(shí)按實(shí)際需要選擇定時(shí)/計(jì)數(shù)功能;計(jì)數(shù)功能; 2. 按時(shí)間或計(jì)數(shù)長(zhǎng)度選擇工作方式;按時(shí)間或計(jì)數(shù)長(zhǎng)度選擇工作方式; 3. 計(jì)算時(shí)間常數(shù):計(jì)算時(shí)間常數(shù):計(jì)算時(shí)間常數(shù)計(jì)算時(shí)間常數(shù)X(X(計(jì)算初值計(jì)算初值) ):計(jì)數(shù)功能:計(jì)數(shù)功能:X= 2n -X= 2n -計(jì)數(shù)值計(jì)數(shù)值 (n n:8/13/168/13/16) 定時(shí)功能:定時(shí)功能:X= 2n - t/TX= 2n - t/T (t t:定時(shí)時(shí)間;:定時(shí)時(shí)間; T T:機(jī)器周期):機(jī)器周期)方法方法1:用延時(shí)程序?qū)崿F(xiàn):用延時(shí)程序?qū)崿F(xiàn)1mS的延時(shí)。的延時(shí)。 UP:SETB P1.0 LCALL

26、D2MS CLR P1.0 LCALL D2MS SJMP UP方法方法2:用:用T0定時(shí)定時(shí)1mS,查詢,查詢TF0 確定工作方式確定工作方式 方式方式0 計(jì)算初值計(jì)算初值 E018H 編程編程 MOV TMOD,#00H SETB TR0LOOP: MOV TH0,#0E0H MOV TL0,#18H JNB TF0,$ CPL P1.0 CLR TF0 SJMP LOOP方法方法3:用:用T0定時(shí)定時(shí)1mS,中斷。,中斷。 ORG 0000H LJMP MAIN ORG 000BH LJMP AT0 MAIN: MOV TMOD,#00H MOV TH0,#0E0H MOV TL0,#1

27、8H SETB EA SETB ET0 SETB TR0 SJMP $ AT0: MOV TMOD,#00H MOV TH0,#0E0H CPL P1.0 RETIfosc=12MHzfosc=12MHz(1 1T0T0工作方式的確定工作方式的確定 定時(shí)時(shí)間較長(zhǎng),采用哪一種工作方式?定時(shí)時(shí)間較長(zhǎng),采用哪一種工作方式? 由各種工作方式的特性,可計(jì)算出:由各種工作方式的特性,可計(jì)算出: 方式方式0 0最長(zhǎng)可定時(shí)最長(zhǎng)可定時(shí)16.384ms;16.384ms;方式方式1 1最長(zhǎng)可定時(shí)最長(zhǎng)可定時(shí)131.072ms;131.072ms; 方式方式2 2最長(zhǎng)可定時(shí)最長(zhǎng)可定時(shí)512512s s。 欲定時(shí)欲定時(shí)

28、1 1秒,這個(gè)值已經(jīng)超過了定時(shí)器的最大定時(shí)時(shí)間。為此,我們只有秒,這個(gè)值已經(jīng)超過了定時(shí)器的最大定時(shí)時(shí)間。為此,我們只有采用定時(shí)器定時(shí)和軟件計(jì)數(shù)相結(jié)合的方法才能解決問題。采用定時(shí)器定時(shí)和軟件計(jì)數(shù)相結(jié)合的方法才能解決問題。 選方式選方式1 1,每隔,每隔100ms100ms中斷一次,中斷中斷一次,中斷1010次為次為1s1s。 (2 2計(jì)算計(jì)數(shù)初值計(jì)算計(jì)數(shù)初值 因?yàn)椋阂驗(yàn)椋?216-X)(216-X)2 210-6 = 10-1 10-6 = 10-1 所以:所以:X=15536=3CB0HX=15536=3CB0H 因而:因而:TH0=3CHTH0=3CH,TL0=B0H TL0=B0H (3

29、31010次計(jì)數(shù)的實(shí)現(xiàn)次計(jì)數(shù)的實(shí)現(xiàn) 采用循環(huán)程序法。采用循環(huán)程序法。(4 4程序設(shè)計(jì)程序設(shè)計(jì) 參考程序參考程序 : : ORG 0000H ORG 0000HRESETRESET:LJMP MAIN LJMP MAIN ;上電,轉(zhuǎn)主程序入口;上電,轉(zhuǎn)主程序入口MAINMAIN ORG 000BH ORG 000BH ;T0T0的中斷入口的中斷入口 LJMP IT0P LJMP IT0P ;轉(zhuǎn);轉(zhuǎn)T0T0中斷處理程序中斷處理程序IT0PIT0P ORG 1000H ORG 1000H MAIN MAIN:MOV SP,#60HMOV SP,#60H ;設(shè)堆棧指針;設(shè)堆棧指針 MOV B,#0AH

30、 MOV B,#0AH ;設(shè)循環(huán)次數(shù);設(shè)循環(huán)次數(shù)1010次次 MOV TMOD,#01H MOV TMOD,#01H ;設(shè);設(shè)T0T0工作在方式工作在方式1 1 MOV TL0,#0B0H MOV TL0,#0B0H ;給;給T0T0設(shè)初值設(shè)初值 MOV TH0,#3CH MOV TH0,#3CH SETB TR0 SETB TR0 ;啟動(dòng);啟動(dòng)T0T0 SETB ET0 SETB ET0 ;允許;允許T0T0中斷中斷 SETB EA SETB EA ;CPUCPU開放中斷開放中斷 HERE HERE:SJMP HERE SJMP HERE ;等待中斷;等待中斷 ITOP ITOP:MOV T

31、L0,#0B0H MOV TL0,#0B0H ;T0T0中斷子程序,重裝初值中斷子程序,重裝初值 MOV TH0,#3CH MOV TH0,#3CH ; DJNZ B DJNZ B,LOOPLOOP CLR TR0 CLR TR0 ;1s1s定時(shí)時(shí)間到,停止定時(shí)時(shí)間到,停止T0T0工作工作 LOOP LOOP:RETI RETI 6.4.4 6.4.4 門控制位門控制位GATEGATE的應(yīng)用的應(yīng)用測(cè)量脈沖寬度測(cè)量脈沖寬度GATE1GATE1可使定時(shí)器可使定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T1T1的啟動(dòng)計(jì)數(shù)受的啟動(dòng)計(jì)數(shù)受INT1INT1* *的控的控制,可測(cè)量引腳制,可測(cè)量引腳INT1INT1* *(P3

32、.3P3.3上正脈沖的寬度上正脈沖的寬度機(jī)器周期數(shù))。機(jī)器周期數(shù))。參考程序:參考程序: ORG 0000H ORG 0000HRESET: AJMP MAIN RESET: AJMP MAIN ;復(fù)位入口轉(zhuǎn)主程序;復(fù)位入口轉(zhuǎn)主程序 ORG 0100H ORG 0100H MAIN: MOV SP,#60H MAIN: MOV SP,#60H MOV TMOD,#90H MOV TMOD,#90H ;T1T1為方式為方式1 1定時(shí)控制字定時(shí)控制字 MOV TL1,#00H MOV TL1,#00H MOV TH1,#00H MOV TH1,#00HLOOP0: JB P3.3,LOOP0 LO

33、OP0: JB P3.3,LOOP0 ;INT1INT1* *高高, ,則循環(huán)則循環(huán) SETB TR1 SETB TR1 ;如;如INT1INT1* *為低,啟動(dòng)為低,啟動(dòng)T1T1LOOP1: JNB P3.3,LOOP1 LOOP1: JNB P3.3,LOOP1 ;INT1INT1* *低,則循環(huán)低,則循環(huán)LOOP2: JB P3.3,LOOP2 LOOP2: JB P3.3,LOOP2 ;INT1INT1* *高高, ,則循環(huán)則循環(huán) CLR TR1 CLR TR1 ;停止;停止T1T1計(jì)數(shù)計(jì)數(shù) MOV A,TL1 MOV A,TL1 ;T1T1計(jì)數(shù)值送計(jì)數(shù)值送A A 將將A A中的中的T1T1計(jì)數(shù)值計(jì)數(shù)值 送顯示緩沖區(qū)送顯示緩沖區(qū) 轉(zhuǎn)換成顯示的代碼轉(zhuǎn)換成顯示的代碼 LOOP3: LCALL DIR LOOP3: LCALL DIR ;調(diào)用顯示子程序;調(diào)用顯示子程序DIR,DIR,顯示顯示T1T1計(jì)數(shù)值計(jì)數(shù)值 AJMP LOOP3 AJMP LOOP3 ; 執(zhí)行程序,使執(zhí)行程序,使INT1INT1

溫馨提示

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