从头开始学51单片机之6:定时器/计数器
6.1 定時器/計數(shù)器的結(jié)構(gòu)及工作原理
1. 51單片機定時器/計數(shù)器功能
- 用單片機實現(xiàn)定時的途徑
| 1 | 軟件定時 | 利用循環(huán)程序、靠執(zhí)行指令消耗時間,實現(xiàn)時間延遲 無需硬件電路,方便、經(jīng)濟 占用CPU時間,適合實現(xiàn)較短時間定時 |
| 2 | 硬件定時 | 利用硬件電路實現(xiàn)定時 不占用CPU時間,可實現(xiàn)較長時間定時 調(diào)整定時時間需改變元件參數(shù),缺乏靈活性 |
| 2 | 可編程定時器定時 | 通過對系統(tǒng)時鐘脈沖計數(shù)實現(xiàn)定時 計數(shù)值可通過程序靈活設(shè)定 |
- 定時器/計數(shù)器功能
- 定時器:利用MCU自身的工作時鐘
- 計數(shù)器:利用外部輸入的時鐘信號
2. 定時器/計數(shù)器結(jié)構(gòu)
- 51單片機共有2個可編程定時器/計數(shù)器——T0和T1
- T0和T1均為16位加法計數(shù)結(jié)構(gòu)
- 每個定時器/計數(shù)器均由THx、TLx兩個8位計數(shù)單元組成
- T0和T1具有定時和計數(shù)兩種工作方式
- 當(dāng)作為計數(shù)器方式時,T0對來自P3.4(T1對來自P3.5)引腳脈沖信號進行計數(shù)(下降沿有效)
- 當(dāng)作為定時器方式時,T0、T1對經(jīng)過12分頻的時鐘周期(即機器周期T)進行計數(shù)
3. 定時器/計數(shù)器的控制字
- 定時器/計數(shù)器共有2個控制寄存器TCON和TMOD
- TMOD用于選擇定時方式,可實現(xiàn)4種工作模式
- TCON用于控制定時器啟停,反映計數(shù)單元溢出狀態(tài)
- 復(fù)位后TCON和TMOD所有位清零
| 位 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| TCON (88H) | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
| TR0 | T0啟動控制位: 1:啟動T0計數(shù),計數(shù)單元在脈沖作用下進行加1計數(shù) 0:停止T0計數(shù),計數(shù)單元保持原數(shù)據(jù) | |||||||
| TR1 | T1啟動控制位: 1:啟動T1計數(shù),計數(shù)單元在脈沖作用下進行加1計數(shù) 0:停止T1計數(shù),計數(shù)單元保持原數(shù)據(jù) | |||||||
| 位 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||||||||||||||||||||
| TMOD (89H) | GATE | M1 | M0 | GATE | M1 | M0 | ||||||||||||||||||||||
| T1 | T0 | |||||||||||||||||||||||||||
| GATE | 門控位 0:不門控,定時器/計數(shù)器工作僅受啟動位TR0(或TR1)控制 1:門控功能,T0(或T1)計數(shù)不僅受TR0(或TR1)控制,同時還受外部中斷輸入引腳控制,當(dāng)其為高電平時,計數(shù)單元才能計數(shù),否則停止計數(shù) | |||||||||||||||||||||||||||
| 定時器/計數(shù)器方式選擇位 0:定時器方式,對12分頻進行計數(shù) 1:計數(shù)器方式,對外部輸入信號進行計數(shù) | ||||||||||||||||||||||||||||
| M1&M0 | 工作模式選擇
| |||||||||||||||||||||||||||
6.2 定時器/計數(shù)器的工作模式
1. 模式0
- 13位定時器/計數(shù)器結(jié)構(gòu),由THx的8位和TLx的低5位構(gòu)成,TLx的高3位不用,當(dāng)13位計數(shù)值溢出時(),置位TFx標(biāo)志位
?2. 模式1
- 16位定時器/計數(shù)器結(jié)構(gòu),由THx和TLx兩個8位寄存器組成,當(dāng)16位計數(shù)值溢出時(),置位TFx標(biāo)志位,工作過程同模式0
?3. 模式2
- 一個可自動重新裝入計數(shù)值的8位定時器,TLx作為8位計數(shù)器,THx作為常數(shù)寄存器。當(dāng)TLx溢出時,一方面置位TFx標(biāo)志位,同時將THx中的數(shù)值重新裝入TLx寄存器,使計數(shù)器重新開始計數(shù)
- 特點:初始值由硬件自動裝入,無需軟件干預(yù),可以獲得較高精度的定時
?4. 模式3
- 該模式僅適用于T0,T1不工作
- T0分成兩個獨立的8位計數(shù)器結(jié)構(gòu),分別通過TH0和TL0進行計數(shù)。此時TL0工作過程與模式0相當(dāng);TH0只能作為一個8位定時器使用,其運行控制和溢出標(biāo)志借用T1的TR1和TF1
?6.3 計數(shù)器模式下對輸入信號的要求
- 當(dāng)輸入信號產(chǎn)生由1至0的跳變(即負跳變)時,計數(shù)器的值增1
- 確認一次負跳變需要2個機器周期,即24個振蕩周期,因此外部輸入的計數(shù)脈沖的最高頻率位系統(tǒng)振蕩頻率的1/24
- 例如:若選用6MHz頻率的晶振,允許輸入脈沖頻率最高為250kHz;若選用12MHz頻率的晶振,則可輸入最高頻率為500kHz的外部脈沖
- 占空比:為確保某一給定電平在變化前能被采樣一次,這一電平至少要保持一個機器周期
總結(jié)
以上是生活随笔為你收集整理的从头开始学51单片机之6:定时器/计数器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 维基百科六度分隔理论
- 下一篇: 魔兽按键精灵 V2.0(修正1)