单片机中的定时器计算
一.單片機的定時原理
通過每一個機器周期,就加一,通過數1的方式進行計時。
二.基本概念
1.晶振:又稱晶體振蕩器,是數字電路“心臟”,是電子元件中不可或缺的頻率元件,對于數字電路系統,晶振的好還直接影響系統的穩定性。
2.時鐘周期:將晶振的頻率的倒數定義為時鐘周期,在一個時鐘周期內,CPU完成一個基礎動作,對于更小的時鐘周期,意味著CPU有更好的性能,更高的工作效率。
3.機器周期:將時鐘周期的6倍或者12倍定義為一個機器周期,具體的設定需要通過人為進行控制
三.每一次“加1”經過的時間是多少
當晶振頻率是11.0592MHz的時候,等于11059.2KHz = 11059200Hz
機器周期 = 12 x 時鐘周期 =12 x (1/時鐘頻率) 秒 = 12 / 11059200 秒 = 12 000 000 / 11059200 微秒 = 1.085 微秒
也就是說對于11.0592Mhz的晶振,其機器周期就是1.085微秒
四.實際案例
案例:通過單片機設定一個10ms的定時器
在51單片機中,定時器相關的寄存器有如下的部分
| 符號 | 含義 |
| TL0(Timer Low0) | 定時器0的低8位寄存器 |
| TH0(Timer HIgh0) | 定時器0的高8位寄存器 |
根據上表,可以知道共16位的寄存器可以數2^16次,就是65536次,而每次計數一下,就會耗費1.085微秒,因此當計數超過65535時,定時器寄存器就會爆表,也就是經過之后就會爆表,通常可以理解為經過71ms之后就會爆表。
對于10ms而要,首先可以計算出10ms定時定時器需要數多少次,設需要數x次,則
設定時器的初始值為y,則
將56320轉化成16進制數,通過計算可以知道16#DC00,因此TH?= DC ;TL = 00
也就是說需要計數9612次,就可以認為經過了10ms,這時,我們可以用71ms減去10ms的次數,就可以知道定時開始計數的初始值,這個值就是y值
五.小結
單片機定時器的原理就是通過計算出所定時間需要計數的次數x,通過65536減去x,算出定時器所需的初始值,然后將初始值轉化成16進制,填入TH與TL寄存器中,然后通過讀取定時器溢出標志位,就可以知道定時器的定時狀態。
總結
以上是生活随笔為你收集整理的单片机中的定时器计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AF Haf tuning <4>
- 下一篇: 这个国家要弃用Windows操作系统?我