導航:首頁 > 操作系統 > 單片機定時器初值計算

單片機定時器初值計算

發布時間:2022-04-23 00:06:15

單片機定時器初值計算

呵呵 幫你分析一下啊
定時時間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

閱讀全文

與單片機定時器初值計算相關的資料

熱點內容
excel表格單列數據加密 瀏覽:646
給同事的解壓話語 瀏覽:990
linux關閉網卡命令行 瀏覽:452
史上最漂亮程序員 瀏覽:768
java實現excel的導入 瀏覽:758
光遇賬號如何轉移安卓 瀏覽:266
5分之13除以26的演算法 瀏覽:342
蘭州安寧區買解壓包子 瀏覽:641
php接收圖片代碼 瀏覽:668
hci命令 瀏覽:662
福建伺服器大區雲空間 瀏覽:840
筆桿子程序員 瀏覽:745
手機軟體易驗證加密 瀏覽:589
文檔加密只讀模式也不能看到 瀏覽:431
把jpg轉換成pdf的軟體 瀏覽:874
linuxeth0mac 瀏覽:192
windows編程知乎 瀏覽:442
壓縮工期超過40 瀏覽:249
Android怎麼優化內存 瀏覽:106
linuxetcsysconfig 瀏覽:396