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