菜鸟开始学编程

[复制链接]
2270|3
 楼主| alice84 发表于 2007-8-31 14:44 | 显示全部楼层 |阅读模式
DELAY:move R7 #100;
  D1:move R6 #500;
  D2:DJNZ R6,D2;
  DJNZ  R7,D1;
  END;
这能实现100ms延时吗
王喜 发表于 2007-8-31 14:52 | 显示全部楼层

&&&

CPU的主频是多少M?
 楼主| alice84 发表于 2007-8-31 15:21 | 显示全部楼层
maychang 发表于 2007-8-31 16:02 | 显示全部楼层

回:可以

但不够准确。注意后两行共用时间100ms,但你还执行了100次第二行,执行了1次第一行。
另外,一般这种延时是调用子程序,最好不要占用工作寄存器,可以
DELAY:   PUSH     DPL
         PUSH     DPH
         MOV      DPH,#100
D1:      MOV      DPL,#500
D2:      DJNZ     DPL,D2
         DJNZ     DPH,D1
         POP      DPH
         POP      DPL
         RET

第5行可以写成
         DJNZ     DPL,$
您需要登录后才可以回帖 登录 | 注册

本版积分规则

153

主题

2855

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部