DELAY: MOV R5,#20 ;延时子程序,延时0.2秒
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
这段程序是怎么计算出0.2ms的?
为什么?DJNZ还有RET这四条指令都是需要执行两个机器周期而不是一个呢?
DJNZ R7,$ ----2T,(2) * 248 = 496
DJNZ R6,D2----2T,(1 + 496 + 2) * 20 = 9980
DJNZ R5,D1----2T,(1 + 9980 + 2) * 20 = 199660
RET-------2T
1T、2T,并没有为什么,也不是我说多少就是多少。
你查一下表,就知道了。