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