MOV R7,#04H语句执行1次 占1个机器周期
MOV R6,#0FFH 执行4次 占4个机器周期
MOV R5,#0FFH执行4+4*255次 占4+4*255个机器周期
DJNZ R5,DEL3执行4*255*255次 占4*255*255*2个机器周期
DJNZ R6,DEL2执行4*255次 占4*255*2个机器周期
DJNZ R7,DEL1执行4次 占4*2个机器周期
RET 占2个机器周期
调用 ACALL 占2个机器周期
一个机器周期为1微秒
延时为T=1+4(1+1+1*255(1+255*2+1*2)+2)+2+2(US)=523281 US
以上是精确的延时,比较复杂
我们也可以粗略估计只考虑以下语句延时
DEL2:MOV R5,#0FFH
DEL3:DJNZ R5,DEL3
DJNZ R6,DEL2
T1=4*(255*(1+255*2+1*2))=523260 US
T1和T很接近,因此工程上常用后者计算延时时间
温馨提示:答案为网友推荐,仅供参考