Ⅰ 求解單片機延時子程序延時計算
你可以粗略這樣看,在上面的指令中,執行次數最多的是djnz
rn,那麼可以延時就是djnz指令執行時間。這里運用了嵌套,所以要×。
它的順序是先執行djnz
r5,l3
;10次,執行djnz
r6,l2
250次
但是當r6減1那麼就賦予r5初值10,所以r5又得運行10次,而每減一次1都要重復10次。同理,執行r7減一要重復前面的djnz指令10×250次,所以就有了
10×250×200×2us=1s
Ⅱ 單片機延時計算方法
以C51為例,12MHZ晶振的話,1個時鍾周期為1/12微秒,1個機器周期=12個時鍾周期,定時器每個機器周期可延時12*1/12微秒=1微秒。如果晶振為8MHZ的話,定時器每個機器周期可延時12*1/8微秒=1.5微秒
Ⅲ 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。