AT89S52單片機定時器/計數(shù)器的工作方式
本文主要就這四種工作方式展開討論,分別從其邏輯結(jié)構(gòu)的角度來學(xué)習(xí)和了解各個工作方式的特點和應(yīng)用方法。其中特別需要注意的是:
1.定時器初值的計算和設(shè)定方法。
2.幾種工作方式之間的區(qū)別。
一、定時器/計數(shù)器的初始化
使用定時/計數(shù)器前需要對其進行初始化,使其按設(shè)定的功能工作。初始化的一般步驟如下:
(1) 確定工作方式(即對TMOD賦值)。
(2) 預(yù)置定時或計數(shù)的初值(可直接將初值寫入TH0、TL0或TH1、TL1)。
(3) 根據(jù)需要開放定時器/計數(shù)器的中斷。
(4) 啟動定時器/計數(shù)器。
二、4種工作方式1.工作方式0:13位定時器/計數(shù)器
當(dāng)M1M0=00時,定時/計數(shù)器處于工作方式0。其電路邏輯結(jié)構(gòu)見圖1。工作方式0是13位計數(shù)結(jié)構(gòu)的工作方式,其計數(shù)器由TH的全部8位和TL的低5位構(gòu)成,TL的高3位沒有使用。以定時器0為例,當(dāng)C/=0時,多路開關(guān)接通振蕩脈沖的12分頻輸出,13位計數(shù)器以此進行計數(shù),這就是定時工作方式。當(dāng)C/=1時,多路開關(guān)接通計數(shù)引腳(T0),外部計數(shù)脈沖由引腳T0輸入,當(dāng)計數(shù)脈沖發(fā)生負跳變時,計數(shù)器加1,這就是計數(shù)工作方式。
圖1 定時/計數(shù)器0工作方式0邏輯結(jié)構(gòu)
在方式0下,當(dāng)為計數(shù)工作方式時,計數(shù)值的范圍是: 1~8192(213);當(dāng)為定時工作方式時,定時時間的計算公式為:
(213-計數(shù)初值)×機器周期
2.工作方式1:16位的定時/計數(shù)器
當(dāng)M1M0=01時,定時/計數(shù)器處于工作方式1。此時,定時/計數(shù)器為16位計數(shù)結(jié)構(gòu)的工作方式。等效電路如圖2所示,仍以定時器0為例。
圖2 定時器/計數(shù)器0工作方式1邏輯結(jié)構(gòu)
在工作方式1下,計數(shù)器的計數(shù)值范圍是: 1~65536(216)
當(dāng)為定時工作方式1時,定時時間的計算公式為:
(216-計數(shù)初值)×機器周期
3.工作方式2—8位自動重裝的定時/計數(shù)器
當(dāng)M1M0=10時,定時/計數(shù)器處于工作方式2。以定時/計數(shù)器0為例,此時定時器的等效電路如圖3所示,構(gòu)成自動重新裝入計數(shù)初值。
圖3 定時/計數(shù)器工作方式2等效電路
工作方式2中,16位計數(shù)器分為兩部分,TLx為8位加1計數(shù)器,THx為8位初值暫存器,即以TL0為計數(shù)器,以TH0作為預(yù)置寄存器。初始化時把計數(shù)初值分別加載至TL0和TH0中,當(dāng)計數(shù)溢出時,由預(yù)置寄存器TH以硬件方法自動給計數(shù)器TL0重新加載,這種工作方式適合于重復(fù)計數(shù)的應(yīng)用場合。
在工作方式2下,計數(shù)器的計數(shù)值范圍是:1~256(28)
當(dāng)定時器工作在方式2時,定時時間的計算公式為:
(28-計數(shù)初值)×機器周期
4.工作方式3
當(dāng)M1M0=11時,定時/計數(shù)器處于工作方式3,此時定時器的等效電路如圖4所示。在工作方式3模式下,定時/計數(shù)器1的工作方式與之不同。方式3對定時器T0和定時器T1是不相同的。若T1設(shè)置為方式3,則停止工作(其效果與TR1=0相同)。所以方式3只適用于T0。
圖4 定時/計數(shù)器工作方式3等效電路 當(dāng)T0工作在方式3時,TH0和TL0分成2個獨立的8位計數(shù)器。其中,TL0既可用作定時器,又可用作計數(shù)器,并使用原T0的所有控制位及其定時器中斷標(biāo)志和中斷源。TH0只能用作定時器,并使用T1的控制位TR1、中斷標(biāo)志TF1和中斷源。
編輯:admin 最后修改時間:2018-05-08