DELAY: MOV R5,#20
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
請問下這個子程序的延時是怎么算的(石英晶體為12MHz,1個機器周期為1微秒)
(20*20*248+20*20+20)*2+1+20+20*20+2=1996663us
DELAY: MOV R5,#20 ;運行1次 1個周期
D1: MOV R6,#20 ;運行20次,1個周期
D2: MOV R7,#248 ;運行20*20次,1個周期
DJNZ R7,$ ;運行20*20*248次,2個周期
DJNZ R6,D2 ;運行20*20次,2個周期
DJNZ R5,D1 ;運行20次,2個周期
RET ;運行1次,2個周期
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |