? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 單片機(jī)計數(shù)初值的計算(一)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0108-張蓉蓉
例題:定時器在方式1(16位)工作舶沛,軟件啟動嘹承,定時操作50ms,計數(shù)初值如庭。
? ? ? 解:? 設(shè)最大計數(shù)值為 M叹卷,M=2*16 =65536
? ? ? ? ? 50ms定時操作需要50000個機(jī)器周期,所以需要50000次計數(shù)操作
? ? ? ? ? ? 時器初值=65536-50000=15536
? ? ? ? 解析:
定時或計數(shù)方式下計數(shù)初值如何確定坪它,定時器選擇不同的工作方式骤竹,不同的操作模式其計數(shù)值均不相同。
若設(shè)最大計數(shù)值為 M 往毡,各操作模式下的 M 值為:
? ? ? 方式 0 (13位): M=2*13 =8192(假裝2*13為2的13次方蒙揣,下同)
? ? ? 方式 1(16位) : M=2*16 =65536
? ? ? 方式 2 (8位): M=2* 8 =256
? ? 方式 3(8位) : M=256 ,定時器 T0 分成 2 個獨(dú)立的 8 位計數(shù)器卖擅,所以 TH0 鸣奔、 TL0 的 M 均為 256
? ? ? ? 由于 MCS-51 的兩個定時器均為加 1 計數(shù)器,當(dāng)初到最大值( 00H 或 0000H )時產(chǎn)生溢出惩阶,將 TF 位置 1 挎狸,可發(fā)出溢出中斷,因此計數(shù)器初值 X 的計算式為: X=M- 計數(shù)值断楷。式中的 M 由操作模式確定锨匆,不同的操作模式計數(shù)器的長不相同,故M值也不相同冬筒。而式中的計數(shù)值與定時器的工作方式有關(guān)恐锣。
? ? ? ? ? 1 、定時工作方式時
? ? ? ? 因?yàn)橛嫈?shù)脈沖由內(nèi)部供給舞痰,是對機(jī)器周期進(jìn)行計數(shù)土榴,故計數(shù)脈沖頻率為 f cont =f osc(時鐘頻率) × 1/12 、計數(shù)周期 T=1/f cont =12/f osc 响牛,1個機(jī)器周期=1us(不是ms哦)玷禽,因此計數(shù)器初值 X 的計算式為: X=M- 計數(shù)值
? ? ? 拓展:有時也會計算TH0、TL0的值
? ? ? ? 如例題所示呀打,需設(shè)置定時器初值15536=65536-50000矢赁,即3CB0H(10進(jìn)制15536轉(zhuǎn)換成16進(jìn)制數(shù)3CB0),所以TH0=0x3c贬丛,TL0=0xb0撩银,高位就是TH0的值,低位為TL0的值豺憔。
? ? 所以额获,TH0=(M-所需計數(shù)次數(shù))/256=初值/256够庙;
? ? ? ? ? ? ? TL0=(M-所需技術(shù)次數(shù))%256=初值%256