打印

有关延时时间求助

[复制链接]
1618|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mugangzhu|  楼主 | 2009-9-8 07:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ICT, ic, hb, ni
; 子程序: 延时大约40ms
;**************************************
DELAY:
LDI CT1,09H
LDI CT0,0EH
SBIM CT0,01H
BC $-1
SBIM CT1,01H
BC $-4
RTNI
请师傅们给具体讲解一下这段程序的延时时间是怎么计算的?要求精确点,谢谢了!
沙发
warm_ice| | 2009-9-8 10:18 | 只看该作者
首先要知道每条指令的时间,如果是32.768KHZ的话,每条指令约为122US.
这个延时程序的指令数这样计算:
1+9+9*15*2+9*2+1=299
解释一下:
第1个"1"为第一条指令的执行次数
9为第二条指令执行次数
9*15*2为第3,4条指令的执行次数
9*2为第5,6条指令的执行次数
1为最后一条指令的执行次数

延时程序的总指令数乘以每条指令的时间即为延时的时间.

使用特权

评论回复
板凳
mugangzhu|  楼主 | 2009-9-8 12:34 | 只看该作者
太感谢了,我明白了,以后好好学习啊,我们公司一般用中颖单片!我赞同!

使用特权

评论回复
地板
mugangzhu|  楼主 | 2009-9-10 08:29 | 只看该作者
DELAY:
       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呢?除了循环嵌套增加延时时间外,有没有别的延时方法,延时的时间长点

使用特权

评论回复
5
warm_ice| | 2009-9-10 09:05 | 只看该作者
DELAY:
       SBIM  DELAY_0, 01H
       BC    $+2
       RTNI
       LDI   CT0, 0FH;??
       SBIM  CT0, 01H
       BNZ   $-1
       JMP   DELAY
其中DELAY-0,在主程序中已经定义LDI  DELAY_0, 0FH;????? ...
mugangzhu 发表于 2009-9-10 08:29

首先你要明白这是4位机,数据最大为16,即FH,不过,一般在程序中习惯写成0FH,你写成FFH是错误的。
除了指令延时外,你也可以用定时器来做定时。

使用特权

评论回复
6
mugangzhu|  楼主 | 2009-9-10 09:17 | 只看该作者
好的,谢谢,我明白了,开始我也是这么想的是4位机,如果用FFH不就成了8位机了吗!但是不敢确认,经过你这么一指点我就明白了!

使用特权

评论回复
7
gaoyuaug| | 2009-9-11 08:15 | 只看该作者
为什么不是40。5ms

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

358

帖子

1

粉丝