单片机知识,帮帮满哦!

来源:百度知道 编辑:UC知道 时间:2024/07/07 15:34:30
帮我解决下这道题哦!
已知延时程序: DELAY:MOV R2,#0AH
L1:MOV R3,#0AH
L2:NOP
DJNZ R3,L2
DJNZ R2,L1
RET
系统的晶振频率为12MHz,求该延时子程序的延时时间。
谢谢哦!

以下指令的后面给出的是每条指令的执行机器周期数

DELAY:MOV R2,#0AH    ; 1
L1:MOV R3,#0AH       ; 1
L2:NOP                ; 1
DJNZ R3,L2            ; 2
DJNZ R2,L1            ; 2
RET                    ; 2

所以延时的精确计算式如下:

1 + (1 + ( 1 + 2 ) * 10 + 2 ) * 10 + 2 =333
         |-内循环-| 10 次
    |------- 外循环 --------| 10 次

对于12MHz晶振频率,一个机器周期1us,
故总延时 333 us。