
延时时间10ms
DELAY:;误差0usMOVR7,#01HDL1:MOVR6,#26HDL0:MOVR5,#82HDJNZR5,$DJNZR6,DL0DJNZR7,DL1RET怎么计算...
DELAY: ;误差 0us
MOV R7,#01H
DL1:
MOV R6,#26H
DL0:
MOV R5,#82H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
RET
怎么计算的 展开
MOV R7,#01H
DL1:
MOV R6,#26H
DL0:
MOV R5,#82H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
RET
怎么计算的 展开
1个回答
展开全部
DELAY: ;误差 0us
MOV R7,#01H;1T
DL1:
MOV R6,#26H;1T
DL0:
MOV R5,#82H;1T
DJNZ R5,$;2T
DJNZ R6,DL0;2T
DJNZ R7,DL1;2T
RET;2T
前面的注释是指该条指令的工作周期,1T为一个机器周期。这样三层循环延时粗算的话是
82H*2*26H*01H=130*2*38*1=9880近似为10000us=10ms
粗确算:1+(1+(1+2*130+2)*38+2)*1+2=10000us=10ms
MOV R7,#01H;1T
DL1:
MOV R6,#26H;1T
DL0:
MOV R5,#82H;1T
DJNZ R5,$;2T
DJNZ R6,DL0;2T
DJNZ R7,DL1;2T
RET;2T
前面的注释是指该条指令的工作周期,1T为一个机器周期。这样三层循环延时粗算的话是
82H*2*26H*01H=130*2*38*1=9880近似为10000us=10ms
粗确算:1+(1+(1+2*130+2)*38+2)*1+2=10000us=10ms
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询