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