<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機的簡(jiǎn)介——定時(shí)器、計數器

51單片機的簡(jiǎn)介——定時(shí)器、計數器

作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò ) 收藏
8051有兩個(gè)16位的定時(shí)器/計數器T0、T1,8052還有第三個(gè)定時(shí)器/計數器T2,通過(guò)內部編程都可以設定為內部定時(shí)器和外部計數器。
1、方式寄存器TMOD
特殊功能寄存器TMOD是TO、T1的工作方式寄存器,其格式如下:
TMOD低四位為T(mén)0方式字段,高四位為T(mén)1方式字段。復位時(shí)TMOD的所有位置0。
(1)工作方式選擇位M1、M0
定時(shí)器/計數器有四種工作方式,它們由M1、M0的取值決定,對應關(guān)系如下圖:
(2) 方式選擇位C/T
C/T=0為定時(shí)器方式,以fosc(晶振頻率)的12分頻作為計數信號,即每個(gè)機器周期定時(shí)器加1。
C/T=1為計數器方式,以外部引腳(T0為P3.4,T1為P3.5)上輸入的脈沖為輸入信號,當外部信號發(fā)生負跳變時(shí)加1,外部事件計數的最高頻率為fosc的1/24。
(3) 門(mén)控位GATE
當GATE=1時(shí),由外部中斷引腳INT0、INT1和內部TR0、TR1位來(lái)啟動(dòng)定時(shí)器。當INT0為高電平且TR0置位時(shí),啟動(dòng)定時(shí)器T0。定時(shí)器T1的啟動(dòng)同T0。
當GATE=0時(shí),僅由TR0和TR1置位來(lái)啟動(dòng)定時(shí)器T0和T1。
2、控制寄存器TCON
特殊功能寄存器TCON的高4位存放著(zhù)定時(shí)器的運行控制和溢出標志,低4位存放外部中斷的觸發(fā)方式控制位和鎖存外部中斷請求源。TCON的格式如下:
(1)定時(shí)器T0的運行控制位TR0
TR0由軟件置位或者清0。當門(mén)控位GATE=0時(shí),TO計數器僅由TR0控制,TR0=1啟動(dòng)計數,TR0=0時(shí)停止。當門(mén)控位GATE=1時(shí),T0計數器由INT0和TR0共同控制,當INT0=1且TR0=1時(shí)啟動(dòng)T0計數器。
(2)定時(shí)器T0溢出標志位TF0
當T0溢出時(shí)TF0=1,并向CPU申請中斷,CPU響應中斷后由硬件將TF0清0,也可以由軟件查詢(xún)方式將TF0清0。
(3)定時(shí)器T1的運行控制位TR1
功能同TR0。
(4)定時(shí)器T1溢出標志為T(mén)F1
功能同TF1。
(5)外部中斷源1(INT1、P3.3)中斷請求標志IE1
IE1=1時(shí)外部中斷源1正在向CPU請求中斷,當CPU響應該中斷時(shí)由硬件將IE1清0(下降沿觸發(fā)方式)。
(6)外部中斷源1觸發(fā)方式選擇位IT1
IT1=0時(shí)外部中斷源1選擇電平觸發(fā)方式,當輸入低電平時(shí)置位IE1;IT1=1時(shí)外部中斷源1選擇下降沿觸發(fā)方式,當中斷源由高電平變低電平時(shí)置位IE1,向CPU請求中斷。
(7)外部中斷源0(INT0、P3.2)中斷請求標志IE0
功能類(lèi)同IE1。
(8)外部中斷源0觸發(fā)方式選擇位IT0
功能類(lèi)同IT1。
3、定時(shí)器工作方式
如上所述,定時(shí)器有4種工作方式,它們由TMOD寄存器中的M1、M0兩位決定。注意:只有T0才有工作方式3。
(1)工作方式0
當TMOD寄存器中的M1、M0為00時(shí),定時(shí)器工作在方式0。下圖以定時(shí)器T1來(lái)示例說(shuō)明:
計數時(shí),TL1的低5位溢出后向TH1進(jìn)位,TH1溢出后將TF1置位,并向CPU發(fā)出中斷請求。注意:在方式0時(shí),TL1只用到了低5位,高3位內容不定不能使用,控制邏輯計數的允許/禁止并不改變計數值。
(2)工作方式1
當TMOD寄存器中M1、M0的值為01時(shí),定時(shí)器工作于方式1。工作方式1和工作方式0的唯一區別在于,工作方式1可以實(shí)現16位計數,其它都和工作方式0相同。如果以定時(shí)器T1為例來(lái)圖示講解,可如下:
(3)工作方式2
當TMOD寄存器的M1、M0位值為10時(shí),定時(shí)器工作于工作方式2。方式2為自動(dòng)恢復初值的8位計數器,TL1作為8位計數寄存器,TH1作為8位計數常數寄存器,當TL1溢出時(shí),一方面將TF1置位,并向CPU發(fā)出中斷請求,另一方面將預設在TH1中的常數重新裝入TL1,繼續計數。重新裝入不會(huì )影響TH1的內容。其結構簡(jiǎn)圖如下:

在方式2中通過(guò)改變TH1的值可以改變計數次數。
(4)工作方式3
方式3只適用于T0,此時(shí)T1停止計數。
4、定時(shí)器/計數器溢出率的計算
定時(shí)器/計數器在工作之前必須先設定計數初始值Ta。初值計數公式如下:
在給定時(shí)間t后,求初值的公式如下:
5、總結
對定時(shí)器/計數器編程的步驟如下:
a、寫(xiě)TMOD,設定工作方式、定時(shí)/計數方式、啟動(dòng)哪個(gè)定時(shí)器(開(kāi)啟相應的門(mén)控位GATE);
b、將初值寫(xiě)入對于寄存器;
c、定時(shí)器中斷開(kāi)或關(guān);
d、啟動(dòng)定時(shí)器,即向TCON寫(xiě)入數據。


評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>