单片机延迟时间如何计算

来源:百度知道 编辑:UC知道 时间:2024/07/03 11:11:54
请能说明怎么算出延迟500ms

ys500ms:mOV R6,#200
D1: MOV R7,#250
D2: NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7,D2
DJNZ R6,D1
RET
END

END

D2:~DJNZ R7,D2,是内循环,耗用了机器周期为:
(1×6+2) × 250 = 2000

D1:~DJNZ R6,D1,是外循环,耗用了机器周期为:
(1 + 2000 + 2) × 200 = 400600

再加上开始和末尾两条,总耗用400603个机器周期。

如果使用的晶振是12MHz,则机器周期为1us,延时时间即为400.603ms。

想要达到500ms,可以把程序中的200,改为250即可。

((1x6+1)*250+1+1)x200=350400us=350.4ms