TMOD
TMOD
TMOD是定時器、計數器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER),它是一個逐位定義的8位寄存器,但只能使用位元組定址,其位元組地址為89H。
定時器/計數器模式控制寄存器 TMOD是一個逐位定義的8位寄存器,但只能使用位元組定址,其位元組地址為89H。
如圖所示:
TMOD結構圖
其中低四位(即D0 ~ D3)定義定時器/計數器T0,高四位(即D4 ~ D7)定義定時器/計數器T1。
定時器/計數器原理圖
● GATE=1時,“與門”的輸出信號K由INTx輸入電平和TRx位的狀態一起決定(即此時K=TRx·INTx),當且僅當TRx=1,INTx=1(高電平)時,計數啟動;否則,計數停止。
當INT1引腳為高電平時且TR1置位, TR1=1;啟動定時器T1。
● GATE=0時,“或門”輸出恆為1,“與門”的輸出信號K由TRx決定(即此時K=TRx),定時器不受INTx輸入電平的影響,由TRx直接控制定時器的啟動和停止。
當 TR0=1,啟動定時器T0。
當 TR1=1,啟動定時器T1。
Ⅱ,C/T——功能選擇位
C/T=0時為 定時功能: 加1計數器對脈衝f進行計數,每來一個脈衝,計數器加1,直到計時器TFx滿溢出;
C/T=1時為 計數功能: 加1計數器對來自輸入引腳T0(P3.4)和T1(P3.5)的外信號脈衝進行計數,每來一個脈衝,計數器加1,直到計時器TFx滿溢出;
Ⅲ,M0、M1——方式選擇功能
MCS-51的定時器T0有4種工作方式:方式0,方式1,方式2,方式3。
MCS-51的定時器T1有3種工作方式:方式0,方式1,方式2。
M1 | M0 | 工作方式 | 功能說明 |
方式0 | 13位定時器/計數器 | ||
1 | 方式1 | 16位定時器/計數器 | |
1 | 方式2 | 自動重載8位定時器/計數器 | |
1 | 1 | 方式3 | T0分為2個8位獨立計數器,T1無方式3 |
由於定時器/計數器的功能是由軟體編程確定的,所以一般在使用定時/計數器前都要對其進行初始化,使其按設定的功能工作。初始化的步驟一般如下:
1、確定工作方式(即對TMOD賦值);
2、預置定時或計數的初值(可直接將初值寫入TH0、TL0或TH1、TL1);
3、根據需要開放定時器/計數器的中斷(直接對IE位賦值);
4、啟動定時器/計數器(若已規定用軟體啟動,則可把TR0或TR1置“1”;若已規定由外中斷引腳電平啟動,則需給外引腳加啟動電平。當實現了啟動要求后,定時器即按規定的工作方式和初值開始計數或定時)。
下面介紹一下確定定時器/計數器初值的具體方法。
因為在不同工作方式下計數器位數不同,因而最大計數值也不同。
現假設最大計數值為M,那麼各方式下的
最大值M值如下:
方式0:M=2 ^13=8 192
方式1:M=2^16=65 536
方式2:M=2^8=256
方式3:定時器0分成兩個8位計數器,所以兩個M均為256。
因為定時器/計數器是作“加1”計數,並在計數滿溢出時產生中斷,因此初值X可以這樣計算:
在計數方式下:X=M-計數值
在定時方式下:X=M-定時值/機器周期