本帖最后由 明白 于 2015-9-26 12:11 编辑
DELAY:MOV R7,#250 ;1指令周期x执行 1次 = 1 指令周期
D1:MOV R6,#250 ;1指令周期x执行 1次 = 1 指令周期
D2:DJNZ R6,D2 ;2指令周期x执行250次 = 500指令周期
D3:MOV R4,#250 ;1指令周期x执行 1次 = 1 指令周期
D4:DJNZ R4,D4 ;2指令周期x执行250次 = 500指令周期
DJNZ R7,D1 ;2指令周期x执行250次 = 500指令周期
RET ;2指令周期x执行 1次 = 2 指令周期
内循环由R6,R4分别递减完成,延时时间是先后的叠加:
1+500+1+500=1002个机器周期,
外循环次数R7=250;
精确总共:1 + 1002*250 +2 = 250503 指令周期 |