|
首先是定時器
定時器/計數(shù)器
定時器很重要,單片機的心臟
首先幾個概念
時鐘頻率:fosc(晶振提供,51一般是12Mhz,11.0592Mhz這兩種)
12分頻:fosc/12(這里我設(shè)為fT)
機器周期:T=1/fT
定時器就配置兩種,
第一是工作模式:定時器/計數(shù)器
第二是四種工作方式
然后是兩個寄存器
TMOD&TCON
工作方式寄存器和控制寄存器
工作方式寄存器TMOD
(1)GATE——門控位
GATE=0時,僅由控制位TRX(X=0,1)來啟動定時器/計數(shù)器運行。
GATE=1時,由TRX(X=0,1)和中斷引腳(INT0和INT1)上的高電平共同來啟動定時器/計數(shù)器運行。
(2)M0、M1——工作方式選擇位
M0、M1共有四種編碼,對應(yīng)于4種工作方式。對應(yīng)關(guān)系
M1 M0 工作方式
0 0 方式0,為13位定時器/計數(shù)器
0 1 方式1,為16位定時器/計數(shù)器
1 0 方式2,8位初值自動重新裝入的8位定時器/計數(shù)器
1 1 方式3,僅適用于T0,分為兩個8位計數(shù)器,T1停止計數(shù)
(3)C/T——計數(shù)器模式和定時器模式選擇位
C/T=0,為定時器模式
C/T=1,為計數(shù)器模式,計數(shù)器對外部輸入引腳T0(P3.4腳)或T1(P3.5腳)的外部脈沖(負跳變)計數(shù)。
定時器/計數(shù)器控制寄存器TCON
TCON的字節(jié)地址為88H,可進行位尋址,位地址為88H~8FH。
低四位和中斷有關(guān),高四位
(1)TF0,TF1——T0,T1計數(shù)溢出標(biāo)志位
當(dāng)計數(shù)器計數(shù)溢出時,該位置“1”。使用查詢方式時,此位作為狀態(tài)位供CPU查詢,但應(yīng)當(dāng)注意在查詢該位有效后應(yīng)當(dāng)以軟件方法及時將該位清0.使用中斷方式時,此位作為中斷申請標(biāo)志位,進入中斷服務(wù)程序后由硬件自動清0.
(2)TR0,TR1——計數(shù)運行控制位
TR1位(或TR0位)=1,啟動定時器/計數(shù)器工作的必要條件,還與GATE位有關(guān)。
TR1位(或TR0位)=0,關(guān)閉定時器/計數(shù)器工作。
關(guān)于幾個工作方式的初值計算
第一個工作方式是一個13位的定時器
它的最大值是213=81922
13
=8192
初值計算就是
比如要定時1ms
1ms是時間,對應(yīng)的就是單片機走多少步
首先計算出一步是多少時間,就是機器周期12/fosc
就可以算出一共是fosc/(12*1000)步
用定時器的最大值減去這個步數(shù)就是定時器初值
第二個工作方式同理
第三個是自動重裝載,它高位和低位寄存器的值都是一樣的 |
|