TMOD

TMOD

定時器/計數器模式控制暫存器TMOD是一個逐位定義的8位暫存器,但只能使用位元組定址,其位元組地址為89H。由於定時器/計數器的功能是由軟體編程確定的,所以一般在使用定時/計數器前都要對其進行初始化,使其按設定的功能工作。當實現了啟動要求後,定時器即按規定的工作方式和初值開始計數或定時)。下面介紹一下確定定時器/計數器初值的具體方法。

簡介

定時器/計數器模式控制暫存器TMOD是一個逐位定義的8位暫存器,但只能使用位元組定址,其位元組地址為89H。

其格式為:

TMOD結構圖TMOD結構圖

工作原理

其中低四位(即D0 ~ D3)定義定時器/計數器T0,高四位(即D4 ~ D7)定義定時器/計數器T1。

定時器/計數器原理圖定時器/計數器原理圖

Ⅰ,GATE——門控制。

●GATE=1時,“與門”的輸出信號K由INTx輸入電平和TRx位的狀態一起決定(即此時K=TRx·INTx),若且唯若TRx=1,INTx=1(高電平)時,計數啟動;否則,計數停止。

當INT0引腳為高電平時且TR0置位,TR0=1;啟動定時器T0;

當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 0 方式0 13位定時器/計數器
0 1 方式1 16位定時器/計數器
1 0 方式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-定時值)*機器周期

例子:

TMOD=0x01; //0000 0001

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

程式是採用定時器0工作方式1,TH0=(65536-45872)/256;TL0=(65536-45872)%256;這是定時的時間,定時時間一到就進入中斷程式執行。

相關詞條

相關搜尋

熱門詞條

聯絡我們