? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 單片機計數(shù)初值的計算(一)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0108-張蓉蓉
例題:定時器在方式1(16位)工作,軟件啟動,定時操作50ms,計數(shù)初值。
? ? ? 解:? 設(shè)最大計數(shù)值為 M,M=2*16 =65536
? ? ? ? ? 50ms定時操作需要50000個機器周期,所以需要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 個獨立的 8 位計數(shù)器,所以 TH0 、 TL0 的 M 均為 256
? ? ? ? 由于 MCS-51 的兩個定時器均為加 1 計數(shù)器,當初到最大值( 00H 或 0000H )時產(chǎn)生溢出,將 TF 位置 1 ,可發(fā)出溢出中斷,因此計數(shù)器初值 X 的計算式為: X=M- 計數(shù)值。式中的 M 由操作模式確定,不同的操作模式計數(shù)器的長不相同,故M值也不相同。而式中的計數(shù)值與定時器的工作方式有關(guān)。
? ? ? ? ? 1 、定時工作方式時
? ? ? ? 因為計數(shù)脈沖由內(nèi)部供給,是對機器周期進行計數(shù),故計數(shù)脈沖頻率為 f cont =f osc(時鐘頻率) × 1/12 、計數(shù)周期 T=1/f cont =12/f osc ,1個機器周期=1us(不是ms哦),因此計數(shù)器初值 X 的計算式為: X=M- 計數(shù)值
? ? ? 拓展:有時也會計算TH0、TL0的值
? ? ? ? 如例題所示,需設(shè)置定時器初值15536=65536-50000,即3CB0H(10進制15536轉(zhuǎn)換成16進制數(shù)3CB0),所以TH0=0x3c,TL0=0xb0,高位就是TH0的值,低位為TL0的值。
? ? 所以,TH0=(M-所需計數(shù)次數(shù))/256=初值/256;
? ? ? ? ? ? ? TL0=(M-所需技術(shù)次數(shù))%256=初值%256