記錄一下51定時器的學習。
1 定時器相關寄存器TCON——定時器控制寄存器的位分配
clipboard.png (10.48 KB, 下載次數(shù): 32)
下載附件
2022-4-24 10:43 上傳
TCON——定時器控制寄存器的位描述
clipboard.png (48.2 KB, 下載次數(shù): 42)
下載附件
2022-4-24 10:43 上傳
TMOD——定時器模式寄存器的位分配(地址 0x89、不可位尋址)
clipboard.png (9.46 KB, 下載次數(shù): 31)
下載附件
2022-4-24 10:44 上傳
TMOD——定時器模式寄存器的位描述
clipboard.png (47.25 KB, 下載次數(shù): 43)
下載附件
2022-4-24 10:45 上傳
TMOD——定時器模式寄存器 M1/M0 工作模式
clipboard.png (26.07 KB, 下載次數(shù): 35)
下載附件
2022-4-24 10:46 上傳
2 定時器配置步驟:
- 第一步:設置特殊功能寄存器 TMOD,配置好工作模式。
- 第二步:設置計數(shù)寄存器 TH0 和 TL0 的初值。
- 第三步:設置 TCON,通過 TR0 置 1 來讓定時器開始計數(shù)。
- 第四步:判斷 TCON 寄存器的 TF0 位,監(jiān)測定時器溢出情況。
舉個例子:初值如何設置假設晶振是 11.0592M,時鐘周期就是 1/11059200,機器周期是 12/11059200,假如要定時 20ms,就是 0.02 秒,要經過 x 個機器周期得到 0.02 秒,我們來算一下 x*12/11059200=0.02,得到 x = 18432。16 位定時器的溢出值是 65536(因 65535 再加 1 才是溢出) ,于是我們就可以這樣操作,先給 TH0 和 TL0一個初始值,讓它們經過 18432 個機器周期后剛好達到 65536,也就是溢出,溢出后可以通過檢測 TF0 的值得知,就剛好是 0.02 秒。那么初值 y = 65536 - 18432 = 47104,轉成 16 進制就是 0xB800,也就是 TH0 = 0xB8,TL0 = 0x00。
|