版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章單片機(jī)的定時器/計數(shù)器5.1定時器/計數(shù)器的基本概念5.2定時器/計數(shù)器的結(jié)構(gòu)及工作原理5.3定時器/計數(shù)器的控制
任務(wù)5-1用T0查詢方式控制P1口8位LED閃爍
任務(wù)5-2用T0查詢方式計數(shù),結(jié)果送P1口顯示本章小結(jié)習(xí)題
定時和計數(shù)是控制系統(tǒng)中的兩個重要功能,是時序電路的基礎(chǔ)。對于時序控制系統(tǒng),經(jīng)常需要定時輸出某些控制信號,或者對某些待測量進(jìn)行定時掃描和監(jiān)測,這便需要實現(xiàn)定時和計數(shù)的功能。
51系列單片機(jī)的硬件上集成了可編程的定時器/計數(shù)器。對于MCS-51子系列單片機(jī),其有兩個定時器/計數(shù)器,即定時器/計數(shù)器0和1,簡稱T0和T1,有4種工作方式可供選擇。對于MCS-52子系列單片機(jī)(如AT89S52),其有3個定時器/計數(shù)器,T0和T1是通用定時器/計數(shù)器,定時器/計數(shù)器2(簡稱T2)集定時、計數(shù)和捕獲三種功能于一體,功能更強(qiáng)。
5.1定時器/計數(shù)器的基本概念
1.計數(shù)計數(shù)一般是指對事件的統(tǒng)計,通常以“1”為單位進(jìn)行累加。生活中常見的計數(shù)應(yīng)用有家用電度表、汽車和摩托車上的里程表等。
2.計數(shù)器的容量
MCS-51單片機(jī)的兩個計數(shù)器分別稱為T0和T1,這兩個計數(shù)器都是由兩個8位的RAM單元組成的,即每個計數(shù)器都是16位的計數(shù)器,最大的計數(shù)容量是216=65536(0~65535),因為在計算機(jī)中往往把0作為起始點,比如P0、P1.0、T0等。
3.定時器
單片機(jī)中的計數(shù)器除了可以計數(shù)用,還可以用做定時器,定時器的用途當(dāng)然很大,如鬧鐘的定時,手機(jī)的定時、開關(guān)機(jī),等等,那么計數(shù)器是如何作為定時器來用的呢?一個鬧鐘,如果我們將它定時在1小時后響鈴,就相當(dāng)于秒針走了3600次,在這里時間就轉(zhuǎn)化成為了秒針走的次數(shù)??梢?計數(shù)的次數(shù)和時間之間的確有關(guān),那么單片機(jī)的定時器/計數(shù)器是怎么回事呢?
定時原理示意圖如圖5-1所示。從圖中我們可以得出這樣的結(jié)論:只要計數(shù)脈沖的間隔相等,那么計數(shù)值就代表了時間的流逝。其實單片機(jī)中的定時器和計數(shù)器是一個東西,只不過計數(shù)器記錄的是外界發(fā)生的事情,而定時器則是由單片機(jī)提供一個非常穩(wěn)定的計數(shù)源,然后把計數(shù)源的計數(shù)次數(shù)轉(zhuǎn)化為定時器的時間,圖中的C/T開關(guān)就是起這個作用的。那么提供給定時器的計數(shù)源又是從哪里來的呢?它是由單片機(jī)的晶振經(jīng)過12分頻后獲得的一個脈沖源。我們知道晶振的頻率是很準(zhǔn)確的,所以這個計數(shù)脈沖的時間間隔當(dāng)然也很準(zhǔn)確。圖5-1定時原理示意圖
假定單片機(jī)的時鐘振蕩器可以產(chǎn)生12MHz的時鐘脈沖信號,經(jīng)12分頻后得到1MHz的脈沖信號,1MHz的信號每個脈沖的持續(xù)時間(1個周期)為1μs。如果定時器0對1MHz的信號進(jìn)行計數(shù),計到65536,將需要65536μs,即65.536ms,此時,定時器計數(shù)達(dá)到最大值,計數(shù)溢出使TFn位置1。如果將定時器的初值設(shè)置為65536-1000=64536,那么單片機(jī)將在計數(shù)1000個1μs脈沖,即1ms時產(chǎn)生溢出。
5.2定時器/計數(shù)器的結(jié)構(gòu)及工作原理
5.2.1定時器/計數(shù)器的結(jié)構(gòu)MCS-51單片機(jī)中的定時器或計數(shù)器是對同一種結(jié)構(gòu)進(jìn)行不同的設(shè)置而形成的,基本結(jié)構(gòu)如圖5-2所示。T0和T1分別是由TH0、TL0和TH1、TL1兩個8位計數(shù)器構(gòu)成的16位計數(shù)器,兩者均為加1計數(shù)器,用于對定時或計數(shù)脈沖進(jìn)行加法計數(shù)。每個定時器/計數(shù)器都可以實現(xiàn)定時和計數(shù)功能。圖5-2MCS-51定時器/計數(shù)器的基本結(jié)構(gòu)
從圖5-2中可以看出,單片機(jī)內(nèi)部與定時器/計數(shù)器有關(guān)的部件如下:
?兩個定時器/計數(shù)器(T0和T1):均為16位計數(shù)器。
?寄存器TCON:控制兩個定時器/計數(shù)器的啟動和停止。
?寄存器TMOD:用來設(shè)置定時器/計數(shù)器的工作方式。
兩個定時器/計數(shù)器在內(nèi)部通過總線與CPU連接,從而可以受CPU的控制并傳送給CPU信號,進(jìn)而申請CPU去執(zhí)行規(guī)定的任務(wù)。
當(dāng)計數(shù)脈沖來自內(nèi)部時鐘脈沖時,定時器/計數(shù)器作定時器使用。
當(dāng)計數(shù)脈沖來自于外部引腳T0/T1上的輸入脈沖時,定時器/計數(shù)脈沖作計數(shù)器使用。如果在第一個機(jī)器周期檢測到T0/T1引腳的脈沖信號為1,第二個機(jī)器周期檢測到T0/T1引腳的脈沖信號為0,即出現(xiàn)從高電平到低電平的跳變時,計數(shù)器加1。由于檢測到一次負(fù)跳變需要兩個機(jī)器周期,所以最高的外部計數(shù)脈沖的頻率不能超過時鐘頻率的1/24,并且要求外部計數(shù)脈沖的高電平和低電平的持續(xù)時間不能小于一個機(jī)器周期。
方式控制寄存器TMOD用于設(shè)置定時器/計數(shù)器的工作方式,控制寄存器TCON用于控制定時器/計數(shù)器的啟動和停止。
5.2.2定時器/計數(shù)器的工作原理
定時器/計數(shù)器作計數(shù)器使用時,通過單片機(jī)外部引腳T0或T1對外部脈沖信號計數(shù),當(dāng)加在T0或T1引腳上的外部脈沖信號出現(xiàn)一個由“1”到“0”的負(fù)跳變時,計數(shù)器加
1,直至計數(shù)器產(chǎn)生溢出。
定時器/計數(shù)器(T0或T1)作定時器使用時,對外接晶振產(chǎn)生的振蕩信號經(jīng)12分頻后,提供給定時器,作為計數(shù)的脈沖輸入,定時器以12分頻后的脈沖周期為基本計數(shù)單位,對輸入的脈沖進(jìn)行計數(shù),直至產(chǎn)生溢出。
5.3定時器/計數(shù)器的控制
由于定時器/計數(shù)器必須在寄存器TCON和TMOD的控制下才能準(zhǔn)確工作,因此必須掌握寄存器TCON和TMOD的控制方法。所謂的“控制”,也就是對兩個寄存器TCON和TMOD的位進(jìn)行設(shè)置。
5.3.1定時器/計數(shù)器的方式控制寄存器TMOD
寄存器TMOD是單片機(jī)的一個特殊功能寄存器,功能是控制定時器/計數(shù)器,即T0、T1的工作方式。它的字節(jié)地址為89H,不可以對它進(jìn)行位操作,只能進(jìn)行字節(jié)操作,即以給寄存器整體賦值的方法設(shè)置初始值,如TMOD=0x01。在上電和復(fù)位時,寄存器TMOD的初始值為00H。表5-1列出了寄存器TMOD的格式。
TMOD寄存器中的高4位用來控制T1,低4位用來控制T0。下面以低4位控制T0為例來說明各位的具體控制功能。
(1)GATE:門控制位,用來控制定時器/計數(shù)器的啟動模式。GATE=0時,只要使TCON中的TR0或TR1置1”(高電平),就可以啟動定時器/計數(shù)器工作;GATE=1時,除了需將TR0或TR1置“1”外,還需要外部中斷引腳INT0(與TR0對應(yīng))或INT1(與TR1對應(yīng))也為高電平,才能啟動定時器/計數(shù)器工作。
(2)C/T:定時器/計數(shù)器模式選擇位。C/T為0時,定時器/計數(shù)器設(shè)置為定時工作模式;C/T為1時,定時器/計數(shù)器設(shè)置為計數(shù)工作模式。
(3)M1、M0位:定時器/計數(shù)器工作方式設(shè)置位。定時器/計數(shù)器有4種工作方式,由M1、M2進(jìn)行設(shè)置,M1、M0與4種工作方式的對應(yīng)關(guān)系如表5-2所示。
5.3.2定時器/計數(shù)器的控制寄存器TCON
TCON是一個特殊功能寄存器,它的功能是在定時器溢出時設(shè)定標(biāo)志位,并控制定時器的運行、停止和中斷請求。TCON的字節(jié)地址是88H,它有8位,每位均可進(jìn)行位尋址
(如可使用“TR0=1;”將該位置“1”),各位的地址和位符號見表5-3。
TCON的高4位用于控制定時器/計數(shù)器的啟動和中斷申請,低4位與外部中斷有關(guān),其含義在后面介紹。下面僅介紹其高4位的功能:
(1)TF1和TF0:分別是T1和T0的溢出標(biāo)志位。當(dāng)定時器/計數(shù)器工作產(chǎn)生溢出時,硬件自動將TF1或TF0位置“1”,并申請中斷。當(dāng)進(jìn)入中斷服務(wù)程序時,硬件又將自
動清零TF1或TF0。
(2)TR1或TR0:分別是T1和T0的啟動/停止位。在編寫程序時,若將TR1或TR0設(shè)置為“1”,那么相應(yīng)的定時器/計數(shù)器就開始工作:若設(shè)置為“0”,相應(yīng)的定時器/計數(shù)器
就停止工作。
5.3.3定時器/計數(shù)器的4種工作方式
T0、T1的定時/計數(shù)功能由TMOD的C/T位選擇,而工作方式則由TMOD的M1、M0位共同控制。在M1、M0位的控制下,定時器/計數(shù)器可以在4種不同的方式下工作。
T0和T1有4種工作方式,即方式0、方式1、方式2和方式3。T0和T1在方式0、方式1、方式2下工作時,用法完全一致,僅在方式3下工作時有所區(qū)別。各種方式的選擇是通過對TMOD的M1、M2位進(jìn)行編碼來實現(xiàn)的。
1.方式0
當(dāng)M1M0=00時,定時器/計數(shù)器被選定為工作方式0,其邏輯結(jié)構(gòu)(以T1為例)如圖5-3所示。圖5-3T1在方式0下的邏輯結(jié)構(gòu)
方式0實質(zhì)上是對T0或T1的兩個8位計數(shù)器TH1、TL1(TH0、TL0)進(jìn)行計數(shù)操作。其中高位計數(shù)器TH1的8位全部使用,而低位計數(shù)器TL1只用其低5位,從而構(gòu)成
了一個13位的定時器/計數(shù)器。計數(shù)時TL1低5位計數(shù)滿后向TH1進(jìn)位,TH1計數(shù)滿后向TCON中的中斷標(biāo)志位TF1進(jìn)位,由硬件置位TF1,申請中斷。
TMOD中的標(biāo)志位C/T控制的電子開關(guān)決定了定時器/計數(shù)器的工作模式。
當(dāng)C/T為0時,T1為定時器工作模式,此時計數(shù)器的計數(shù)脈沖是單片機(jī)內(nèi)部振蕩器12分頻后的信號,T1對機(jī)器周期計數(shù)。其定時時間由下式進(jìn)行計算:
定時時間=(213-X)×振蕩周期×12
式中,X為T1的初值。
當(dāng)C/T為1時,T1為計數(shù)器工作模式。此時計數(shù)器的計數(shù)脈沖為P3.5引腳上的外部輸入脈沖,當(dāng)P3.5引腳上的輸入脈沖發(fā)生負(fù)跳變時,計數(shù)器加1。
T1或T0能否啟動工作,取決于TR1、TR0、GATE和引腳INT1、INT0的狀態(tài)。
當(dāng)GATE為0時,只要TR1、TR0為1就可以啟動T1、T0工作。
當(dāng)GATE為1時,只有當(dāng)INT1或INT0引腳為高電平,且TR1或TR0置1時,才能啟動T1或T0工作。
2.方式1
在工作方式1中,T1和T0的組成結(jié)構(gòu)與功能完全相同,這里以T1為例進(jìn)行講解。
當(dāng)M1M0=01時,定時器/計數(shù)器被選定為工作方式1,邏輯結(jié)構(gòu)如圖5-4所示。在這種工作方式下,其為16位定時器/計數(shù)器,由TL1的8位和TH1的8位構(gòu)成。當(dāng)計數(shù)溢出
時,置位TCON中的溢出標(biāo)志位TF1,表示有中斷請求,同時16位定時器/計數(shù)器復(fù)位為0。圖5-4T1在方式1下的邏輯結(jié)構(gòu)
3.方式2
在工作方式2中,T1和T0的組成結(jié)構(gòu)與功能也完全相同,這里同樣以T1為例進(jìn)行講解。
當(dāng)M1M0=10時,定時器/計數(shù)器被選定為工作方式2,邏輯結(jié)構(gòu)如圖5-5所示。T1由TL1構(gòu)成的8位計數(shù)器和作為計數(shù)器初值的常數(shù)緩沖器的TH1構(gòu)成。當(dāng)TL1計數(shù)溢出時,置溢出標(biāo)志位TFI為1的同時,還自動將TH1的初值送入TL1,使TL1從初值重新開始計數(shù)。這樣既提高了定時精度,同時應(yīng)用時只需在開始時賦初值1次,簡化了程序的編寫。圖5-5T1在方式2下的邏輯結(jié)構(gòu)
4.方式3
工作方式3的作用比較特殊,只適用于T0。如果把T1置為工作方式3,它會自動處于停止?fàn)顟B(tài)。當(dāng)T0工作在方式3時,被拆成兩個獨立的8位計數(shù)器TL0和TH0,其邏輯結(jié)構(gòu)如圖5-6所示。圖5-6T0在方式3下的邏輯結(jié)構(gòu)
T0工作在方式3時,TL0構(gòu)成8位計數(shù)器,可工作于定時器/計數(shù)器模式,并使用T0的控制位與TF0的中斷源。TH0則只能工作于定時器模式,使用T1中的TR1和TF1的
中斷源。
一般情況下,使用方式0~2即可滿足需要。但在特殊場合,必須要求T0工作于方式3,而T1工作于方式2(需要T1作為串行口波特率發(fā)生器,將在后文介紹)。所以,方式3適合
于單片機(jī)需要1個獨立的定時器/計數(shù)器、1個定時器和1個串行口波特率發(fā)生器的情況。
5.3.4定時器/計數(shù)器中定時/計數(shù)初值的計算
在MCS51內(nèi)核單片機(jī)中,T1和T0都是增量計數(shù)器,因此不能直接將要計數(shù)的值作為初值放入寄存器中,而是將計數(shù)的最大值減去實際要計數(shù)的值的差存入寄存器中。
若作定時器使用,設(shè)定時間為Δt,時鐘頻率為fosc,定時器/計數(shù)器內(nèi)部的計數(shù)器位數(shù)為n,則
若作計數(shù)器使用,設(shè)計數(shù)值為C,定時器/計數(shù)器內(nèi)部的計數(shù)器位數(shù)為n,則
計數(shù)初值=2n-C
當(dāng)定時器/計數(shù)器工作在除方式2以外的其他方式下,且采用中斷編程方式時,在中斷服務(wù)程序中必須重置內(nèi)部計數(shù)器初值,以保證定時/計數(shù)值不變。
任務(wù)5-1用T0查詢方式控制P1口8位LED閃爍
任務(wù)目的要求T0工作在方式1,LED的閃爍周期為100ms,即亮50ms,熄滅50ms。電路原理圖如圖5-7所示。任務(wù)準(zhǔn)備設(shè)備及軟件:萬用表、計算機(jī)、KeilμVision4軟件、Proteus軟件。圖5-7T0查詢方式控制8位LED閃爍的電路原理圖
任務(wù)實施
1.實現(xiàn)方法
1)T0工作方式的設(shè)置
用如下指令對T0的工作方式進(jìn)行設(shè)置:
2)T0初值的設(shè)定
因為單片機(jī)的晶振頻率為12MHz,經(jīng)12分頻后送到T0的脈沖頻率為1MHz,周期T=1μs。即每個脈沖計時1μs。計時50ms(即50000μs),則需要計的脈沖數(shù)為50000/1=
50000(次)。定時器的初值應(yīng)設(shè)置為65536-50000=15536。這個數(shù)需要用T0的高8位寄存器(TH0)和低8位寄存器(
TL0)分別存儲,設(shè)置方法如下:
3)查詢方式的實現(xiàn)
T0開始工作后,可通過編程讓單片機(jī)不斷查詢溢出標(biāo)志位TF0是否為“1”,若為“1”,則表示計時時間到;否則等待。
2.程序設(shè)計
先建立一個文件夾,然后建立“TIMER”工程項目,最后建立源程序文件“TIMER.C”。
輸入如下源程序:
3.用Proteus軟件仿真
經(jīng)Keil軟件編譯通過后,可利用Proteus軟件進(jìn)行仿真。在ProteusISIS編輯環(huán)境中繪制仿真電路圖,將編譯好的“TIMER.hex”文件載入AT89C51。啟動仿真,即可看到P1口外接的8位LED開始閃爍。
任務(wù)5-2用T0查詢方式計數(shù),結(jié)果送P1口顯示
任務(wù)目的要求使用T0的查詢方法統(tǒng)計按鍵次數(shù),并將結(jié)果送P1口8位LED顯示。要求計數(shù)從0開始,計滿100后清0。電路原理圖如圖5-8所示。任務(wù)準(zhǔn)備設(shè)備及軟件:萬用表、計算機(jī)、KeilμVision4軟件、Proteus軟件。
任務(wù)實施
1.實現(xiàn)方法
用如下指令對T0的工作方式進(jìn)行設(shè)置:
TMOD=0x06;//TMOD=00000110B,使用T0的方式2
因為T0在方式2工作時,TH0和TL0僅需賦值一次初值。在TL0計滿后,即置位TF0,同時TH0中的初值自動再裝入TL0,然后重新開始計數(shù)。所以T0工作在方式2且
計數(shù)最大值為100時的初值設(shè)置如下:
TH0=256100;//T0的高8位賦初值
TL0=256100;//T0的高8位賦初值
2.程序設(shè)計
先建立一個文件夾,然后建立“COUNTER”工程項目,最后建立源程序文件“COUNTER.C”。
3.用Proteus軟件仿真
經(jīng)Keil軟件編譯通過后,可利用Proteus軟件進(jìn)行仿真。在ProteusISIS編輯環(huán)境中繪制仿真電路圖,將編譯好的“
COUNTER.hex”文件載入AT89C51。啟動仿真,即可看到
P1口外接的8位LED顯示按鍵按下的次數(shù)。
本章小結(jié)
在單片機(jī)項目開發(fā)中經(jīng)常用到定時器/計數(shù)器,因此,掌握定時器/計數(shù)器的使用方法非常必要。本章介紹了定時器/計數(shù)器的簡單應(yīng)用技術(shù)。在實際項目開發(fā)中通常需要根據(jù)具體的項目要求靈活使用定時器/計數(shù)器,更詳細(xì)的資料可查閱芯片的數(shù)據(jù)手冊。
習(xí)題
一、填空題1.單片機(jī)AT89C51片內(nèi)有兩個()位的定時器/計數(shù)器,即T0和T1。2.T0或T1用做作定時器時,對外接晶振產(chǎn)生的振蕩信號經(jīng)()分頻后,提供給計數(shù)器,作為計數(shù)的脈沖輸入。3.單片機(jī)AT89C51外接12MHz晶振,定時器的最大溢出時間是
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2021輔警招考公安基礎(chǔ)知識練習(xí)題及解析
- 2021-2022年青驕第二課堂禁毒知識競賽題庫測試題目7份有答案
- 《特色田園鄉(xiāng)村建設(shè)指南》
- 《營業(yè)推廣案例》課件
- 2024年灣溝林業(yè)局職工醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年07月浙江民生銀行紹興二級分行社會招考(710)筆試歷年參考題庫附帶答案詳解
- 2024年海口市職業(yè)病防治所高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 第十四課 聲情并茂-音頻編輯 說課稿 -2023-2024學(xué)年大連版(2015)初中信息技術(shù)七年級上冊001
- 2024年海林市中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年07月江西九江銀行撫州分行社會招考(710)筆試歷年參考題庫附帶答案詳解
- 直播電商年終總結(jié)
- 滬科版九年級物理下冊教案全冊
- 二年級數(shù)學(xué)(上)計算題專項練習(xí)
- PAS 2050:2011-商品和服務(wù)在生命周期內(nèi)的溫室氣體排放評價規(guī)范(英文)
- 歷史期中復(fù)習(xí)課件八年級上冊復(fù)習(xí)課件(統(tǒng)編版)
- 幕墻作業(yè)安全技術(shù)交底
- 保護(hù)性約束完整版本
- 埃森哲流程制造-智能工廠規(guī)劃設(shè)計相關(guān)兩份資料
- 國家開放大學(xué)電大《供應(yīng)鏈管理》期末題庫及答案
- 10萬噸綠色航空煤油項目可行性研究報告寫作模板-備案審批
- 物業(yè)服務(wù)水電維修方案
評論
0/150
提交評論