DEL: MOV R5,#100
DEL0:MOV R6,#200
DEL1:MOV R7,#248
DEL2:DJNZ R7,DEL2
DJNZ R6,DEL1
DJNZ R5,DEL0
RET
我认为用近似算法:s=100*200*248为运行DJNZ指令的次数,该指令为两个机器周期,每
个机器周期为2us,所以延时时间t=s*2*2(us),结果应该为20s。可书上说是延时10s。
请大家帮我分析一下吧。多谢!
总时间约等于=((248*2+2)*200+2)*100
=9960200 (微妙)
248*2中的2是指执行djnz指令需要两个机器周期呢,还是一个机器周期需要2us?反正我觉得少乘了一个2。你说呢?
time=1t+{1t+[(1t+2t*248+2t)*200]+2t}*100+2t
=3t+{3t+[499t*200]}*100
=3t+100*{3t+99800t}
=3t+9980300t
=9980303t
=9980303*2us
=19960606us
=19.960606s