Ⅰ 單片機定時器初值計算
呵呵 幫你分析一下啊
定時時間2ms=(2的16次方-時間常數X)12/f 即晶振為12M f=12*1000000
2ms=(2的16次方-時間常數X)12/(12*1000000)
2*0.001=(2的16次方-時間常數X)12/(12*1000000)
2*0.001=(2的16次方-時間常數X)/(1000000)
2000=65536-時間常數X
時間常數X=65536-2000
TH0=(65536-2000)/256; 就是轉換成十六進制 再除以256 取整數 即高8位送時間常數寄存器的高8位計數器
TL0=(65536-2000)%256; 就是轉換成十六進制 再除以256 取余數 即低8位送時間常數寄存器的低8位計數器
哈哈 滿意就選滿意回答吧
Ⅱ 51單片機定時器初值怎樣計算
首先要知道一個計時脈沖的周期,計時脈沖頻率是晶振頻率的1/12,晶振12M時,計時脈沖頻率是1MHz,周期是1us,因此定時1mS就是1000個脈沖,由於51定時器是加法計數,計數到最大值65536溢出,定時結束,產生中斷,因此初值應該寫為65536-1000,計數器分高8位和低8位,高8位的1代表256,低8位是不足256的那一部分,因此高8位初值為TH=(65536-1000)/256,低8位TL=(65536-1000)%256。
Ⅲ 51單片機定時器初值公式
1.簡單說起,256表示一個8位分界點,對它求模得高位位元組存在TH0中,求余得低位位元組放在TL0中,拿十進制打比:15/10得十位1,15%10得個位數5
2.12Mhz時,單周期指令時間為12/fsoc=1us
方式1為16位定時/計數器
故定時1ms為:TH0=(2^16-1000)/2^8,
TL0=(2^16-1000)%256
當為11.0592MHz時,單周期指令時間為12/fsoc=12/11.0592us
由於採用方式0,為13為定時器,TH0高8位和TL0的低5位
故定時1ms為:
TH0=(2^13-1000/(12/11.0592))/2^5,
TL0=(2^16-1000/(12/11.0592))%2^5
這么晚了 寫寫不容易,多給些分以此鼓勵俺
O(∩_∩)O~
Ⅳ 單片機 定時器初值計算
單片機的程序運行都是以系統時鍾周期為基礎,而系統時鍾周期又和單片機晶振相關聯,一般51單片機的系統時鍾周期均為晶振的12分頻。
單片機的定時器每計時一次為一個系統時鍾周期(如果晶振頻率為12MHz,一個系統時鍾周期為12/(12M)=1/1000000秒)
單片機定時器定時是順計時,計數到65536的時候才會產生中斷,要定時2ms就得計時2000次,因此就用65536-2000
其實你上面寫的兩句程序就是取整,高八位給TH0,取余,低八位給TL0
這個沒有辦法編程的時候直接變,因為如果單片機的晶振頻率一變定時器定的時間就會發生變化,而且定時器有八位的和十六位的計算方式都不同,不過你可以去下載51單片機定時器自動計算的小軟體,很好用。
Ⅳ 單片機定時器初值設定公式
假設定時時間是X毫秒,那麼初值為:
TH1=(65536-X*1000*晶振頻率/12/1000000)/256;
TL1=(65536-X*1000*晶振頻率/12/1000000)%256;
Ⅵ 單片機定時器初值計算問題,
一、計算:
1.晶振12M
12MHz除12為1MHz,也就是說一秒=1000000次機器周期。10ms=10000次 機器周期。 65536-10000=55536(d8f0) TH0=0xd8,TL0=0xf0
2.晶振11.0592M
11.0592MHz除12為921600Hz,就是一秒921600次機器周期,10ms=9216次機器周期。
Ⅶ 單片機中斷定時器,初值的計算方法
定時中斷初值計算方法是:
1、確定定時時間化為微妙t。
2、晶振頻率以M為單位f。
3、計算初值:s=65536-t*f/12
比如11.0592M晶振,定時10毫秒。
t=10*1000=10000us
f=11.0592
s=65536-10000*11.0592/12=65536-9216
4、給定時寄存器賦值。
THn=s/256
Tln=s%256
Ⅷ 單片機定時器初值計算方法有哪些
呵呵 正確為你解答:
1 可以按定時時間的計算公式, 計算出定時器的時間常數X:
定時時間T=(2的N次方-X)12/單片機晶振頻率
2 N為定時器的工作方式:
方式0時,N=13
方式1時,N=16
方式2時,N=8
3 根據定時時間和工作方式,計算出時間常數X
把X轉換成二進制數,高8位送給TH1,低8位送給TL1,就可以啟動定時器開始定時了。
例如: 工作在方式1,定時時間為1000微秒 晶振頻率=12MHZ
則 定時時間T=(2的16次方-X)12/12MHZ=1000 解出 X=64536=FC18H
呵呵 如滿意 請選擇滿意回答
Ⅸ 51單片機各種位數定時器初值計算方法
對12MHz ,1個機器周期 1us ,12/fosc = 1us
。
方式0是13位定時器,最大時間間隔 = 2^13 = 8.192ms
方式1是16位定時器,最大時間間隔 = 2^16 = 65.536ms
方式2是8位定時器,最大時間間隔 = 2^8 = 0.256ms =256 us
方式3 僅適用於T0,此時T0分成兩個8位計數器,T1停止計數
當選用定時器的方式1時,設機器周期為Tcy,定時器產生一次中斷的時間為t,那麼需要計數的個數N=t/Tcy,裝入THX和TLX中的數分別為:
THX = (2^16 - N)/256 TLX = (2^16 -N )%256(此處的X為定時器0或定時器1)
公式為:(2^y - X)*Tcy = t
Tosc= 1/ fosc
一個機器周期 = 12個時鍾周期 = 12/fosc
溢出速率 = 1 / 溢出時間
故:初值X = 2^y – t/Tcy
THX = 高八位
TLX = 低八位
註:
X:定時器初值
N:計數值
y:定時器工作方式
fosc:晶振頻率
Tcy:機器周期,Tosc:時鍾周期
Tcy = 1/Tosc
Ⅹ 89C51單片機定時器初值怎麼計算
在定時器模式下,計數器的計數脈沖來自於晶振脈沖的12分頻信號,即對機器周期進行計數。若選擇12M晶振,則定時器的計數頻率為1MHZ。假設定時時間為T,機器周期為T1,即12/晶振頻率。X為定時器初值。則 X=2^n-T/T1。方式0,n=13,方式1時,n=16,方式2和方式3,n=8