|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
关于STC89C52单片机的延时程序,晶振12MHz,机器周期1us,程序如下:void Delay1ms() //@12.000MHz1 v* J( l/ u7 i% V/ Y6 ^/ g
{
; m6 [* W/ k! x; z6 v, f$ A Q unsigned char i, j;" s0 V. }3 E, q( a+ Q
2 H* I( M: m5 `: \' k
/ S8 N- A) v/ E, Z( B# q i = 2; //1us9 [- d- K& B! S, J+ v1 a, u
j = 239; //1us W0 m3 d3 e/ I4 i+ I1 J
do
" X; B6 ?% v! t {1 @0 {' k2 _1 h e( Q
while (--j);
' Z% E' U$ U8 R' u9 L! M4 o- n } while (--i);9 F6 ~$ n- }7 E' S0 J$ W
}5 e# e: }$ G8 V7 Q1 y) z5 g
延时时间的计算:497*2+1+1+2+2=1000us=1ms
' @2 ~2 z5 b# ?, f
+ `1 s! e m9 z; i. U! H" j- c' a循环体执行了497次也即是497个机器周期,我不明白的为什么还要乘以2,还望告知,详细一点。4 s( U; P7 w, S( e0 ]$ u& R
|
|