DELAY: MOV R7,#10 ;延时1S子程序
DL1: MOV R6,#200-----1T
DL2: MOV R5,#248------1T
DJNZ R5,$
DJNZ R6,DL2
DJNZ R7,DL1
RETLP
RET
这是如何延时的呢,晶振为12MHZ为T=1us,DJNZ为双周期指令,主要是嵌套循环延时一秒,我们看计算结果:
DJNZ R5,$-----------------------248*2=496500us
DJNZ R6,DL2----------------------(496+1+2)*200=99800us
DJNZ R7,DL1------------------------(99800+2+1)*10=998030~~1s;