延时时间怎么算?

[复制链接]
4564|25
 楼主| chenho 发表于 2010-7-29 20:40 | 显示全部楼层 |阅读模式
gongche 发表于 2010-7-29 20:44 | 显示全部楼层
你的程序呢?
 楼主| chenho 发表于 2010-7-29 20:58 | 显示全部楼层
DELAY:
LDI CT1,09H
LDI CT0,0EH
SBIM CT0,01H
BC $-1
SBIM CT1,01H
BC $-4
RTNI
gongche 发表于 2010-7-29 21:03 | 显示全部楼层
首先要知道每条指令的时间
 楼主| chenho 发表于 2010-7-29 21:06 | 显示全部楼层
是32.768KHZ,约为122US吧
huwr 发表于 2010-7-29 21:09 | 显示全部楼层
1+9+9*15*2+9*2+1=299
 楼主| chenho 发表于 2010-7-29 21:10 | 显示全部楼层
1+9+9*15*2+9*2+1=299
huwr 发表于 2010-7-29 21:09

怎么理解?
huwr 发表于 2010-7-29 21:11 | 显示全部楼层
这还不好理解?第1个"1"为第一条指令的执行次数
huwr 发表于 2010-7-29 21:12 | 显示全部楼层
9为第二条指令执行次数
huwr 发表于 2010-7-29 21:12 | 显示全部楼层
9*15*2为第3,4条指令的执行次数
huwr 发表于 2010-7-29 21:12 | 显示全部楼层
9*2为第5,6条指令的执行次数
huwr 发表于 2010-7-29 21:13 | 显示全部楼层
1为最后一条指令的执行次数
huwr 发表于 2010-7-29 21:13 | 显示全部楼层
延时程序的总指令数乘以每条指令的时间即为延时的时间.
 楼主| chenho 发表于 2010-7-29 21:17 | 显示全部楼层
多谢楼上
 楼主| chenho 发表于 2010-7-29 21:17 | 显示全部楼层
SBIM  DELAY_0, 01H
       BC    $+2
       RTNI
       LDI   CT0, 0FH;??
       SBIM  CT0, 01H
       BNZ   $-1
       JMP   DELAY
其中DELAY-0,在主程序中已经定义LDI  DELAY_0, 0FH;?????
上述程序中?部分的0FH是否可以改FFH呢?
 楼主| chenho 发表于 2010-7-29 21:18 | 显示全部楼层
除了循环嵌套增加延时时间外,有没有别的延时方法,延时的时间长点
huwr 发表于 2010-7-29 21:19 | 显示全部楼层
你写成FFH是错误的
huwr 发表于 2010-7-29 21:20 | 显示全部楼层
这是4位机,数据最大为16,即FH
 楼主| chenho 发表于 2010-7-29 21:21 | 显示全部楼层
哦,一般在程序中习惯写成0FH
huwr 发表于 2010-7-29 21:22 | 显示全部楼层
其实除了指令延时外,你也可以用定时器来做定时。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

748

主题

9853

帖子

5

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