當前位置:
首頁 > 最新 > 微創課堂◇定時器與計數器

微創課堂◇定時器與計數器

定時與計數是單片機的專長之一,它可以對用戶設定的時間進行計時,還可以計算外部信號的周期或個數。這一節來了解一下與定時器和計數器相關的寄存器設置及其應用。

1.

什麼是定時/計數

定時的粗淺含義就是設定好時間。例如用高壓鍋煮飯,從通氣孔噴汽開始,T分鐘後飯煮好並關火。假設有一個秒鐘,指針每走一圈為60秒,即1分鐘。於是從通氣孔噴汽開始到飯煮好需要T分鐘,指針走過T圈。只要盯著這個鐘,默數指針走過的圈數,當數到T後就立即關火。

單片機可以執行的任務就是這個數T個數的任務,設計程序就可以以這樣的方式進行:當單片機從0數到T後停止,然後將火關閉。也就是說,單片機的定時功能為T個單位時間,到時間後就中斷計數的操作。

計數可以簡單的理解為」計算個數「。那麼計算什麼個數呢?例如,從單片機的一個IO口(P3.4)輸入一個方波信號。單片機就通過檢測上升沿的個數來計算輸入方波的個數。如果每個上升沿的是時間間隔為1分鐘,即方波的周期為60s,那單片機計數方波的個數就成了定時:當單片機數到T時,時間就過去的T分鐘,於是單片機停止計數(也就是計時的任務)。

可見,對於單片機來說定時和計數的工作性質時一致的,即「計算個數「——定時計算的是單位時間的個數;計數計算的是外部方波信號的個數。也就是藉助外部標準時間這一把」尺子「來進行測量時間的長度。

AT89S51單片機的內部集成了定時/計數的功能模塊,定時和計數功能模塊常常放在一起,因為這兩個功能模塊在單片機中使用同一個電路來實現的,只是定時/計數功能模塊「計數個數「的對象不一樣——一個是單位時間脈衝的個數,一個是外部事件的個數。

單位時間脈衝的周期即是機器周期,如晶振的頻率是12MHz,則1個機器周期=1us,於是單位時間脈衝的周期為1us。也就是說,在晶振頻率=12MHz的情況下,上圖中計數電路每過1us計數值增加1。或者說每一秒鐘計數電路所記錄的單位時間脈衝的個數是1s/1us=106個。

2.

Timer寄存器的使用

AT89S51單片機中有兩個定時/計數器——Timer0和Timer1。這兩個定時/計數器的功能基本相同。要想使用定時/計數器,需要對與之相關的寄存器——Timer寄存器、TCON、TMOD,以及相關寄存器的設置進行了解。

1、 Timer寄存器

Timer0和Timer1各有1個長度為2個位元組的Timer寄存器,每個Timer寄存器由低位位元組(TL0、TL1)和高位位元組(TH0、TH1)兩個特殊功能寄存器組成,它們位於特殊功能寄存器區的8AH~8DH上,TL0和TH0構成Timer0寄存器,TL1和TH1構成Timer1寄存器。

TL0、TH0、TL1、TH1這4個寄存器可以像累加器ACC寄存器一樣進行數據的裝載和讀取。Timer寄存器用來裝載計數初始值,當Timer啟動後,就會從Timer寄存器中的初始值開始,每過一個單位時間增加1,一直計數到最大值後溢出,即為一次Timer定時或計數的過程。

2、 定時/計數器模式控制寄存器TMOD

TMOD是timer mode的縮寫,意思是定時/計數器模式,它在特殊功能寄存器區的89H上

Timer 0和Timer 1都通過TMOD來設置工作模式。TMOD寄存器由高4位和低4位組成,分別控制Timer 1和Timer 0。

3、 定時/計數器控制寄存器TCON

TCON是timer control的縮寫,即定時/計數器控制的意思。它在特殊功能計數器區的88H上。

TCON的功能有:現實Timer溢出與否、啟動/關閉Timer、外部中斷方式控制、外部中斷標誌位。TCON的8位中與Timer有直接關係的只有高4位,因此這裡可以只關心高4位的內容。

本期的微創課堂到這就要結束啦,是不是意猶未盡呢,那就期待我們下一期的精彩內容吧!

南航自動化科協

講師:施佳楠


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 南航自動化科協 的精彩文章:

TAG:南航自動化科協 |