51单片机汇编语言--延时程序的延时时间
扫描二维码
随时随地手机看文章
请高手帮我分析以下延时程序所占的时钟周期。
求解释:
DELAY: MOV R6, #13
DELAY1: MOV R5, #250
DELAY2: NOP
DJNZ R5, DELAY2
DJNZ R6, DELAY1
RET
问题补充:晶振为12MHz,机器周期即是1us。
;-----------------------------------------------------
最佳答案:
DELAY: MOV R6,#13 ;1
DELAY1: MOV R5,#250 ;1
DELAY2: NOP ;1
DJNZ R5,DELAY2 ;2 250 * (1 + 2) = 750
DJNZ R6,DELAY1 ;2 13 * (1 + 750 + 2) = 9789
RET ;2 1 + 9789 + 2 = 9792
加上调用指令,共用 9794 个机器周期。
当晶振频率为 12MHz,则延时时间为 9794 us。