石英晶体为12MHz,1个机器周期为1μs
机器周期
MOV R4,#20 2个 2
D1: MOV R5,#248 2个 2
DJNZ R5,$ 2个 2X248
DJNZ R4,D1 2个 2X20=40
20X(2X248+2)+2=1002机器周期
1个机器周期为1μs,10002X1μs=10.002ms
由以上可知,当R4=10、R5=248时,延时5ms,R4=20为10ms,以此类推。
延时1s子程序
MOV R2,#18H
LCALL 7FEBH
RET
ORG 7FEBH ;通用延时子程序(07EBH&0FEBH&...)
L7FEB: PUSH 02H ;R2(复位后R2即为02H)存放时间常数,进栈保护
L7FED: PUSH 02H ;R2进栈保护
L7FEF: PUSH 02H ;进栈
L7FF1: DJNZ R2,$ ;R2不为0等待
POP 02H ;出栈
DJNZ R2,L7FEF ;R2不为0转
POP 02H ;出栈
DJNZ R2,L7FED ;R2不为0转
POP 02H ;出栈
DJNZ R2,L7FEB ;R2不为0转
RET ;子程序返回
END
文章评论(0条评论)
登录后参与讨论