51單片機定時器工作方式
一般情況處,只有在T1以工作方式2運行(當波特率發(fā)生器用)時,才讓T0工作于方式3的。
定時器/計數(shù)器的定時/計數(shù)范圍
工作方式0:13位定時/計數(shù)方式,因此,最多可以計到2的13次方,也就是8192次。
工作方式1:16位定時/計數(shù)方式,因此,最多可以計到2的16次方,也就是65536次。
工作方式2和工作方式3,都是8位的定時/計數(shù)方式,因此,最多可以計到2的8次方,也說是256次。
預(yù)置值計算:用最大計數(shù)量減去需要的計數(shù)次數(shù)即可。
例:流水線上一個包裝是60盒,要求每到12盒就產(chǎn)生一個動作,用單片機的工作方式0來控制,應(yīng)當預(yù)置多大的值呢?對了,就是8192-60=8132。當然設(shè)為計數(shù)時,需將C/T=1。
以上是計數(shù),明白了這個道理,定時也是一樣。
初學者應(yīng)多看相關(guān)書籍中的定時/中斷部分,對個標志位的處理與應(yīng)用要能理解,對你的應(yīng)用開發(fā)有很大幫助的!!!,特別是在按鍵的消抖、延時等方面。下面給出一個實驗,網(wǎng)友只要燒寫進89C51,放到實驗板即可看到效果,然后在想????
定時器方式0的應(yīng)用:
應(yīng)用定時器T1產(chǎn)生1MS的定時,并使P1。0輸出周期的2MS方波,設(shè)晶震6MHZ。
首先要計算T0的初始值,以定時器方式工作時,每一機器周期計數(shù)器加1,6MHZ晶震時的機器周期T=12/F=12/6*10的6次方,設(shè)初值為X,則:
2的13次方-X/2*10的負3次方 =10的負3次方 X=7692
以13位二進制數(shù)表示為:X=1111000001100B(從前算8位為F0H;)
計算得:TH0初值為0F0H,TL0初值為0CH;
因復(fù)位以后,TMOD、TCON初值為0,因此以定時器方式0工作時,初始化程序不必對TMOD重置0,我們查詢TF0的狀態(tài)來控制P1。0輸出。在P1。0端得到周期為2MS的方波。
程序清單:
START:MOV TL0,#0CH;初值寫入T0
MOV TH0,#0F0H;
SETB TR0;啟動T0計數(shù)
LOOP:JBC TF0,PTF0
AJMP LOOP
PTF0:MOV TL0,#0CH;計數(shù)初值重裝
MOV TH0,#0F0H;
CPL P1。0;P1。0求反
AJMPN LOOP
您可以改變定時初值來改變方波的寬度。
51單片機相關(guān)文章:51單片機教程
塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理
評論