|
本帖最后由 zhangli0126 于 2021-6-3 14:33 編輯
MCS-51系列單片機(jī)有兩個(gè)定時(shí)器/計(jì)數(shù)器: T0和T1,可以用來(lái)對(duì)外部信號(hào)計(jì)數(shù)或者對(duì)外部設(shè)備進(jìn)行定時(shí)控制。通常計(jì)數(shù)功能由外部中斷引腳輸入信號(hào)而發(fā)生計(jì)數(shù),定時(shí)功能是由內(nèi)部寄存器發(fā)生的工作事件。
基礎(chǔ)知識(shí):
1.計(jì)數(shù):對(duì)某一事件的統(tǒng)計(jì),以1為單位進(jìn)行累加。
2.計(jì)數(shù)器的容量:計(jì)數(shù)器的計(jì)數(shù)是有容量的限制,T0和T1都是由2個(gè)8位寄存器組成(TH0和TL0)。MCS-51單片機(jī)有四種工作模式,不同的工作模式,計(jì)數(shù)的容量不同:模式0——13位;模式1——16位;模式2——8位;模式3——8位。當(dāng)計(jì)數(shù)器計(jì)數(shù)溢出時(shí),則會(huì)發(fā)出請(qǐng)求CPU,CPU中斷處理。
3.定時(shí):定時(shí)器/計(jì)數(shù)器處于定時(shí)模式時(shí),需要與外部斷開連接,即由內(nèi)部時(shí)鐘產(chǎn)生計(jì)時(shí)信號(hào)。每個(gè)脈沖產(chǎn)生多長(zhǎng)時(shí)間的定時(shí)時(shí)間,與單片機(jī)本身的震蕩頻率相關(guān)。比如振蕩器產(chǎn)生12MHZ的時(shí)鐘脈沖信號(hào),經(jīng)過(guò)12分頻后產(chǎn)生1MHz的脈沖信號(hào),得到每個(gè)脈沖信號(hào)定時(shí)時(shí)間是1微秒。定時(shí)器工作在模式0時(shí),可以定時(shí)65536微秒。
定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)及工作原理
1.定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)
T0由TH0和TL0組成;T1由TH1和TL1組成。二者均為16位計(jì)數(shù)器,以1為單位累加。
除此之外還有TCON以及TMO寄存器,分別控制定時(shí)器/計(jì)數(shù)器的啟動(dòng)、停止和工作方式。
定時(shí)器/計(jì)數(shù)器通過(guò)內(nèi)部總線將控制信號(hào)發(fā)送給CPU。
2.定時(shí)器/計(jì)數(shù)器的工作原理
計(jì)數(shù)模式:與外部引腳INT0或者INT1連接,當(dāng)引腳的信號(hào)由1跳變到0時(shí),計(jì)數(shù)器加1,直至溢出。
定時(shí)模式:晶振產(chǎn)生的信號(hào)經(jīng)過(guò)12分頻后,作為定時(shí)器的定時(shí)脈沖信號(hào),直至溢出。
定時(shí)器/計(jì)數(shù)器的控制
定時(shí)器/計(jì)數(shù)器只有在TMOD和TCON設(shè)置好的前提下,才能快樂的定時(shí)或者計(jì)數(shù)。
定時(shí)器/計(jì)數(shù)器的方式控制寄存器(TMOD):主要功能控制T0和T1的工作方式。對(duì)于工作方式的控制:控制M1、M0進(jìn)行組合的四種工作方式;C/T:控制定時(shí)器/計(jì)數(shù)器的工作模式在定時(shí)還是計(jì)數(shù)。定時(shí)器/計(jì)數(shù)器控制寄存器(TCON):接收各種中斷源送來(lái)的請(qǐng)求信號(hào),同時(shí)對(duì)定時(shí)器/計(jì)數(shù)器進(jìn)行啟動(dòng)和停止控制。
TR0和TR1時(shí)啟動(dòng)相應(yīng)的定時(shí)器;TF0和TF1是溢出標(biāo)志。
定時(shí)器/計(jì)數(shù)器的工作方式:
1.工作方式0(M1M0=00)
以定時(shí)器/計(jì)數(shù)器T1為例。由TL1的低5位+TH1的高8位組成,當(dāng)7溢出時(shí),TCON寄存器的TF1=1,表示溢出。
如何啟動(dòng)定時(shí)器模式?TMOD的C/T=0
如何啟動(dòng)計(jì)數(shù)器模式?TMOD的C/T=1,當(dāng)外部中斷引腳(INT0、INT1)發(fā)生負(fù)跳變時(shí),計(jì)數(shù)器加1.
如何啟動(dòng)定時(shí)器或者計(jì)數(shù)器?GATE=0,只需要啟動(dòng)TR0或者TR1即可;若是GATE=1,需要INT0或者INT1為高電平(高電平無(wú)效)+TR0=1或者TR1=1才可以啟動(dòng)。
2.工作方式1(M1M0=01)
16位定時(shí)器/計(jì)數(shù)器,計(jì)數(shù)溢出時(shí),TF0=1或者TF1=1.工作原理與啟動(dòng)方式與工作方式0相同。
3.工作方式2(M1M0=10)
8位定時(shí)器/計(jì)數(shù)器,解決了重新裝在初值的問(wèn)題。以定時(shí)器0為例,TL0與TH0均為8位寄存器,計(jì)數(shù)開始時(shí),TL0進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)溢出時(shí)(最大值256),TCON的標(biāo)志位TF0=1,同時(shí)將TH0保存的數(shù)值傳遞給TL0.
|
評(píng)分
-
查看全部評(píng)分
|