1樓:津人依夢
晶振頻率為6mhz時,定時/計數器在工作方式0、方式1、方式2下,其最大的定時時間分別為:
16.384 ms;131.072 ms;0.512 ms;
根據計算公式,x=m-計數初值=m-(fosc*t)/12,其中x是計數初值,要得到最大定時時間x=0;m最大計數值,工作方式0時m=2^13=8192,工作方式1時m=2^16=65535,工作方式2時m=2^8=256。fosc晶振頻率。
所以最大定時時間為:m-(fosc*t)/12=0,即t=12*m/(6*10^3)=2*10^(-3)*m
工作方式0 t=2*10^(-3)*8192=16.384 ms;
工作方式1 t=2*10^(-3)*65536=131.072 ms;
工作方式2 t=2*10^(-3)*256=0.512 ms;
定時/計數器在使用之前均需要進行初始化,寫入計數初值。
擴充套件資料
定時器工作流程:
定時器工作的流程可以按照這個順序(以51為例用定時器0方式一產生50毫秒的定時)
1、確定使用哪個定時器,使用哪種方式,這一步通過tmod設定,tmod的低四位是設定定時器0的,高四位是用來設定定時器1的,其中的m0,m1是用來設定定時器工作在哪種方式,gate一般用不要設定,c/t是選擇計數模式還是定時模式的,如:tmod = 0x01,就說明定時器0工作在方式1。
2、接下來就要設定定時的時間,用定時器定時50毫秒,可以用這種方式th0 = (65535 - 50000) / 256,tl0 = (65535 - 50000) % 256;可以這樣理解:因為這是定時器的初值,也就是說計數脈衝就是在這個數的基礎上向上遞增,到達65535後就溢位產生中斷。
3、第三步開啟中斷,使用ie暫存器,首先開啟總中斷ea = 1,這一步是所有中斷所必須的,然後開啟定時器0中斷,et0 =1。
4、這時準備工作結束,啟動定時器,使用tcon暫存器,tr0 = 1,實現了一個50毫秒的定時。
第一節 定時計數器的結構與工作原理
2樓:庹琰
最懶的方法,下一個‘微控制器小精靈‘,定時器、精確延時、串列埠波特率等等通通輕鬆搞定。
3樓:hi漫海
晶振頻率為6mhz,則振盪週期tosc=1/6 us。
工作方式0:此時為13位定時/計數器,則最大計數值為2的13次方(即8192)
工作方式1:為16位定時/計數器,則最大計數值為2的16次方(即65536)
工作方式2:為自動重灌初值的8位定時器/計數器,則最大計數值為2的8次方(即256)
由於定時器/計數器每加1佔用的時間為1個機器週期
因此各自最大定時時間如下:
工作方式0:最大定時時間 tm = 8192*mc
工作方式1:最大定時時間 tm = 65536*mc
工作方式2:最大定時時間 tm = 256*mc
其中mc為內部機器脈衝週期(即機器週期)
晶振為6mhz,如果按常規標準的12分頻的51系列微控制器算的話(mc = 12*tosc = 2微秒)。
則各自最大定時時間如下:
工作方式0:最大定時時間 tm = 8192*mc =16384 us
工作方式1:最大定時時間 tm = 65536*mc =131072 us
工作方式2:最大定時時間 tm = 256*mc = 512 us
其中mc為內部機器脈衝週期(即機器週期)。
4樓:亂七胡說八糟亂想
咦!?又來了!?昨天不早回了嗎!?
微控制器晶振頻率6MHz,使用定時器1以方式0和1,產生週期為1ms的等寬正方波脈衝,並由P1 0輸出
給你一個模板吧,這裡選擇定時器1的方式1 採用彙編 中斷方式編寫 t 周 12 6 2us,n 65536 1 2 ms 2us 65286 org 0000h ljmp start org 001bh ljmp tt1 start mov tmod 10hmov dptr 65286 mov th...
晶振的頻率不能太高的原因是什麼
大家bai說的都很對,說說我個人的看法 du小陳說 現zhi在產品工藝比較dao成熟就算是貼片的版諧振器 的觀權點我不太贊同。難道ja系列 49系列 um系列就成熟了麼?事實上單純的提高晶振質標的話,採用圓片比矩形片更容易實現。所以高階振盪器多采用圓片。晶振頻率不能做太高的原因不僅和厚度公式有關,主...
設微控制器晶振頻率為12MHZ,定時器計數器T0工作方式1,試計算其定時20ms的初值TH0和TL
th0 0xb1 tl0 0xe0 兩個初始值在此 當定時計數器工作在方式0模式時,th0和tl0的初值如何確定?初值baix可以這樣計算 x m 計數值。du 微控制器在不同 zhi的工作 dao方式下,計數器的位回數不同,因而最答大計數值也不同.現在設最大計數值為m,那麼在各方式下的m值如下 1...