㈠ 51單片機的定時器的時間怎麼算
51單片機1個機器周期=12個時鍾周期,頻率為12MHZ,則一個機器周期為1US,具體到定時器程序就是,假如你想定1MS,那麼單片機每次加一個一,就要過1US,那麼1MS就要加1000次,所以用65535-1000=64535;再把64535換成16進制為FC17,把FC付給TH0,17給TLO,即可定時1MS,因為65535他就溢出進入中斷。
㈡ 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
㈢ 51單片機的指令周期是怎麼計算的
指令周期是不確定的,因為她和該條指令所包含的機器周期有關。一個指令周期=1個(或2個或3個或4個)機器周期,像乘法或除法就含有4個機器周期,單指令就只含有1個機器周期。
對於大多說的51單片機來說,1個機器周期=12個時鍾周期(或振盪周期)
也有部分單片機時鍾周期和振盪周期不相等,例如,1個時鍾周期=2個振盪周期。
㈣ 51單片機 pc怎麼算
在51單片機裡面,pc永遠指向下一條指令的首地址,計算方法就是:當前執行的指令的首地址+本指令所佔的位元組長度。
㈤ 51單片機計時60毫秒怎麼算呀,計數周期是啥意思呀
一般51單片機的晶振頻率是fosc=12M,單片機內部計時的頻率是fosc/12 即1MHZ
因此計數周期1us
內部定時器是16位,最多 計脈沖數為65536個,因此最長定時時間是65.536 ms
要定時60 ms,需經過的脈沖個數是60000個,由於51單片機的定時器是加法計數,因此初值應該寫入(65536-60000)
這樣經過60mS後,計數器的值就是 (65536-60000)+60000=65536,剛好溢出,溢出標志位TF置1或產生中斷
定時器初值又分高8位和低8位,高8位的1代表256,因此高8位是256的倍數,低8位是256的余數
因此 C語言編程就這樣 寫:
TH0=(65536-60000)/256
TL0=(65536-60000)%256
㈥ 51單片機中的延時應該怎麼計算
for(a=2;a>0;a--) // 2微秒, 執行2次(a+2)是4微秒;
for(b=142;b>0;b--) // 2微秒, 執行142次,for(a=2;a>0;a--)是4微秒,即2*(142*4);
for(c=1;c>0;c--) // 2微秒, 執行1次,即2*(142*4)=1136微秒;
b=125,1000/8=125,再減去其它調用時間,應該b取值不大於125。
㈦ 51單片機延時程序時間是怎麼計算的
51單片機延時時間計算需要考慮以下兩種因素:
1、指令執行時間
2、指令循環次數
㈧ 51單片機用定時器計時應該如何計算求大神支招
這個其實很簡單的,你只需要知道一個條件即可:晶振頻率。
因為51單片機的機器周期計算公式是12/晶振頻率MHz,若晶振為12MHz,則機器周期就是12/(12×10^6)=1us,也就是說計數器沒1us計數一次。
那麼有了這個條件就好辦多了,一般來說,12MHz晶振下,16位定時器滿計數是65536次,每次1us,最大就能計時65.536ms,則65536減去多少就是定時多少,如(65536-X)/256,就是定時X微秒。
那麼如果晶振不是12MHz,就要把上述的X乘以12/晶振,得到的值就是定時時長。原理相同。
有不懂的地方隨時回復我。
希望我的回答能幫助到你。