延迟时间怎么是80ms

haihua1121 2009-11-04 09:30:28
MOV ARG0,#20
MOV ARG1,#100
MOV ARG2,#250
LCALL DELAY_L ;DELAY 80毫秒 左右

DELAY_L:
PUSH PSW
SETB PSW.2
MOV R5,ARG0
DELAY_L1:
MOV R6,ARG1
DELAY_L2:
MOV R7,ARG2
DELAY_L3:
DJNZ R7,DELAY_L3
DJNZ R6,DELAY_L2
DJNZ R5,DELAY_L1
POP PSW
RET

延迟时间怎么是80ms?
...全文
487 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pla_007 2009-11-04
  • 打赏
  • 举报
回复
如果要算的很清楚。那还要加上MOV、PUSH、POP、SET、RET等指令的时间周期。
不过通常,如果精度要求不是很高的话,可以无视掉。
pla_007 2009-11-04
  • 打赏
  • 举报
回复
看下指令的时间周期,再结合晶振频率就可以算出来了。

假设DJNZ的指令周期是4周期,晶振是12M(1周期1us)
则粗算该延时程序可延时

20*100*250*4 = 2秒

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧