1樓:匿名使用者
從本質上看,你根本不瞭解定時器的工作,你就只看**,又豈能看懂。
51微控制器的定時器0是16位,當然,這個模式是可以改變的。我就假設工作在16位模式下,因為大部分時候,也工作在這個模式下。
16位的定時器,但只能用微控制器是8位的,所以,就拆分成了兩個位元組,高八位和低八位。
th0表示定時器0的高八位,thl0表示低八位。 組合起來就是16位。
th0和tl0的值滿了(即,兩個定時器暫存器的值二進位制**都為 1111 1111)時,再計一個數,即再來一個脈衝,加一個數,就形成了溢位,溢位時,產生定時中斷。所以初始化的時間應該是
th0(65536-要定時的時間)/256 取高八位
th0(65536-要定時的時間)%256 取低八位
至於為什麼是256,因為是八位。就相當於你要取數字532 的百位時,你為什麼要除以100,而不是除以其他數字。
10進位制轉16進位制,我不明白你要表述的是什麼意思,所以無法回答
2樓:匿名使用者
th0 tl0對定時器來說就是一個無符號int型數(2位元組),當定時器啟動後,每12時鐘週期加一,當等於65535時,產生定時中斷。
int型數除256就是將其右移8位,取高八位,等同於>>8。
而餘256就是取低8位,等同於 &0x00ff。
那個100就是定時時間,具體求時間就是時脈頻率取倒數得到時鐘週期,再乘以12,再乘以100。
3樓:匿名使用者
白的方法,很想知道這個。逃避很容
51微控制器定時器初值公式
4樓:
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~
5樓:一萬光年
方式0最好別去用了,很麻煩的
6樓:匿名使用者
還是看下書,問下老師的好
關於51微控制器定時器的問題。
7樓:匿名使用者
工作方式1是16位的自動重灌定時計數器,能裝的最大數為65536(0-65535);那麼初值為65536-50000=15536(0x3cb0),就是你說的50ms溢位一次;12m的晶振,一個時鐘週期剛好1us,50000us=50ms;
如果你需要1秒的定時,可以在定時器計數器中斷裡設一個計數變數x,進一次中斷x+1;然後在程式裡檢查x的值,當x加夠20次,把x清零,計時時間就是1秒了。
8樓:匿名使用者
看來,你對定時器真是不理解呀。
1.關於定時器最長的定時時間,假如晶振頻率是12mhz,機器週期是1us,最長定時的時間是65.536ms。
所以,你想定時1秒是不可能的。通常是定時50ms,以中斷方式,這樣,每中斷一次50ms,則中斷20次就是1秒。
2.你這個程式就是定時50ms的,變成50000us。晶振頻率是12m,初始值計算,x=65535-50000=15536=3cb0h,所以,高8位,th0=0x3c;
低8位,tl0=0xb0;
微控制器定時器定初始值的C程式設計與彙編程式設計,如下,我感覺這個初值設定不對應啊
胖大海君 為你正確解答 經過計算 th0 65536 1100 256 251 fbhtl0 65536 1100 256 b4h 即 定時時間常數 x 65536 1100 fbb4h和組合語言中的初始值有較大的誤差 th0 0xf5 tl0 0x33 組合語言應改為 th0 0fbh tl0 0...
關於51微控制器定時器的問題,關於51微控制器使用兩個定時器進行控制的問題
工作方式1是16位的自動重灌定時計數器,能裝的最大數為65536 0 65535 那麼初值為65536 50000 15536 0x3cb0 就是你說的50ms溢位一次 12m的晶振,一個時鐘週期剛好1us,50000us 50ms 如果你需要1秒的定時,可以在定時器計數器中斷裡設一個計數變數x,進...
51微控制器定時器0工作於方式3此時定時器1工作於方式
做而論道 定時器0工作於方式3 時,佔用了定時器1的tr1和tf0。此時,定時器1只能工作於 串列埠波特率發生器 的模式。把定時器1,按照 波特率發生器 的模式設定,寫入初始值即可正常工作。看看書去吧,有這方面的說明的。 我來回答 定時0工作於方式3分成兩個定時器th0,tl0,佔用了t1的tr1和...