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.51hei.com/bbs/) | Powered by Discuz! X3.1 |