1樓:匿名使用者
12m的晶振每秒可產生1m個機器週期,50ms就需要50000個機器週期,定時器在方
式1工作,是版16位計數器,最大值權為65536,所以需設定初值15536,即3cb0h,所以th0=0x3c,tl0=0xb0。
11.0592m的晶振每秒可產生0.9216m個機器週期,50ms就需要46080個機器週期,定時器在方式1工作,是16位計數器,最大值為65536,所以需設定初值19456,即4c00h,所以th0=0x4c,tl0=0x00。
2樓:匿名使用者
其實很簡單,來不管你自使用多大的晶振,使用51微控制器bai,一般都是du12分頻出來,也就zhi可以得出一個機器週期dao機器週期=12/n(n指晶振頻率),假設你要定時的時間為m那麼定時的初值為:
m/機器週期=初值;
th0=(65536-初值)%256;
tl0=(65536-初值)/256;
將(65536-初值)所得的值化成16進位制,其高位就是th0的值,低位為tl0的值
例如用12m晶振做1ms定時計算如下:
機器週期=12/12*10^6=1us(微秒)定時初值=(1*10^-3)/(1*10^-6)=1000;
所以:th0=(65536-1000)%256;
tl0=(65536-1000)/256;
將65536-1000=64536化為16進製為:0xfc18th0=0xfc;
tl0=0x18;
3樓:匿名使用者
如果你選的微控制器的晶振一定,比如12mhz來說
吧,機器週期是1us,就是說每1us產生一次計回
4樓:劇量薄訪夢
我來告訴你
來:定時器是當源
總數達到
baiffffh後產生中斷吧!那你要讓它du計數10000,是不是用zhiffff(16進位制)減去10000(十進位制)的數當計數初值啊?th0=-(10000/256);
tl0=-(10000%256)跟ffff(16進位制)減去10000(十進位制)的數是一樣的。從th0=-(10000/256);
tl0=-(10000%256)開始計數,dao計數到10000剛好滿。跟用ffff(16進位制)減去10000(十進位制)的數一樣!!!寫起來更簡單,不用算!!!
看看原碼、補碼就知道。正數的補碼是對應的二進位制數,符號位為零,負數的補碼是它的絕對值對應的二進位制數按位取反再加一,符號位為一。無符號數不考慮符號,那麼這個結果就跟用ffff減去它的絕對值一樣。
微控制器定時器定時的時間怎麼算?
5樓:津人依夢
微控制器的定時時間的計算公式=計數值(定時值)* 機器週期= 計數值(定時值)* 12 / 晶振頻率專。屬
上面的兩個等號是等價的,因為,微控制器的機器週期=12秒/晶振頻率,因此兩個公式通用。
完成一個基本操作所需要的時間稱為機器週期。一般,一個機器週期由 若干個s週期(狀態週期)組成。80c51系列微控制器一個機器週期由6個s週期組成。
一個s週期(狀態週期),由2個時鐘週期組成。
若干個機器週期,組成了指令週期。根據指令不同,所需的機器週期數也不同。
擴充套件資料
幾種典型指令;
1、單位元組週期指令(比如 inc a)
2、雙位元組單週期指令(比如 add a,#data)
3、單位元組雙週期指令 (比如 inc dptr)
4、單位元組雙週期指令 (比如movx a @dptr)
第三章 微控制器的結構及原理 3.5 cpu時序及時鐘電路
6樓:匿名使用者
51微控制器1個機器週期=12個時鐘週期,頻率為12mhz,則一個機器週期為1us,具體到定時器程
回序就是,假如你答想定1ms,那麼微控制器每次加一個一,就要過1us,那麼1ms就要加1000次,所以用65535-1000=64535;再把64535換成16進製為fc17,把fc付給th0,17給tlo,即可定時1ms,因為65535他就溢位進入中斷。
7樓:匿名使用者
51單片來機,根據晶振頻率,計算指令源週期,設定定時器的分頻,然後設定定時器的工作方式tmod,最後設定初值th0 tl0 比如用的x hz的晶振,stc的微控制器有3種模式(x/12)x/6,還有單週期指令,
選擇12分頻的,t=1/(x/12)就是一個指令週期 ,如果定時沒有分頻,(65536-z(初值))*t就是定時的時間
比如是12m的晶振那麼 設定tmod=0x01;16位定時器模式th0=(65536-20000)/256;
tl0=(65536-20000)%256;就是設定了20ms的定時
8樓:做而論道
計算機內部的時間,是按照機器週期的個數來計算的。
和微控制器的晶振頻率有關。
9樓:未王艮
先看bai你用的幾m晶振,然後設定du定時器zhi的工作方式tmod,最後設定初值daoth0 tl0 比如用的版x hz的晶振
那麼t=1/(x/12)就是權一個機器週期 ,(65536-z(初值))*t就是定時的時間
比如是12m的晶振那麼 設定tmod=0x01;
th0=(65536-20000)/256;
tl0=(65536-20000)%256;就是設定了20ms的定時
10樓:匿名使用者
定時器也就相當於計數,每計個數對應一個指令週期,看看微控制器的時鐘晶振是多大,對應計算下
微控制器頻率的計算求解,微控制器中用定時器 和計數器來求頻率 計算公式是怎麼寫的???
1000hz 就是不知道這些頻率是怎麼計算出來的 微控制器的晶振是12mhz,微控制器初學者,請求用你通俗易懂的語言解釋,謝謝,非常感謝,鬱悶好幾天了。不是算的,是試驗出來的。想要輸出不同的頻率,就需要改變週期。改變延時時間,即可 yanshi 7 yanshi 10 要想得到準確的時間,就應該用組...
用微控制器和內部定時器來產生矩形波
由於你沒說用什麼微控制器,所以我用51的寫的 12t 鍾頻率為12mhz是不可能完成頻率為100khz,佔空比為2 1 高電平時間較長 因為你的機器週期是1us 是中斷裡面最少都要花上7us,按你的提意高電平為6.6666.us,低電平為3.3333.us,所以無法完成,而且用晶振算出來還有小數,更...
請教微控制器中斷的問題,請教一個微控制器中斷的問題
需要具體情況具體分析,因為不同的微控制器在中斷機制上有細微的差別,需要查他的資料。一般來說,一箇中斷源請求中斷,對cpu來說,是一次性的做了一個 中斷 假如當時因條件不滿足 例如cpu正在 關中斷 即沒有開啟 中斷允許 而沒有響應中斷,則 資訊還在,這樣,將來一旦開啟了中斷允許,仍然會響應,只是晚了...