本帖最后由 明白 于 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 指令周期 |