打印

菜鸟关于定时器的问题

[复制链接]
1436|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qiangdao|  楼主 | 2007-5-11 10:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用伟福6000的编译器;在编写一个定时程序时,总是编译出错;
选用timer0的mode0
mov th0,#(8192-5000)/32
      mov thl,#(8192-5000).mod.32()
一是找不到mod指令,为为定义指令;
如果用mode1
mov th0,#>count
      mov tl0,#<count(count=-50000)
编译后又出现操作数th0 出错!
我不明白;望高手指教
(我也发过一篇相关的贴子,有人回我说mod不常用!不知道常用的设定timer计数该怎么写)

相关帖子

沙发
maychang| | 2007-5-11 10:41 | 只看该作者

好像看过楼主先前的帖

楼主是否先用过C语言写51单片机程序,现在改用汇编?
感觉楼主是拿C语言往汇编上套。

汇编中要给16位定时/计数器赋值,多数汇编软件应该是用两条指令分别给定时/计数器高低字节赋值。例如
MOV     TH0,#0FCH
MOV     TL0,#0C0H
所赋之值当然需要自己先计算好。
某些软件(不是所有汇编软件都支持)支持HIGH和LOW伪指令
MOV     TH0,#HIGH(COUNT)
MOV     TL0,#LOW(COUNT)

使用特权

评论回复
板凳
ayb_ice| | 2007-5-11 11:16 | 只看该作者

随便说说

mov thl,#(8192-5000).mod.32()
上面都是些啥东东,不出错才怪...
可以用mod,但用法错了...

使用特权

评论回复
地板
qiangdao|  楼主 | 2007-5-11 18:33 | 只看该作者

回2楼楼主

谢谢您的指点;按您的方法问题基本解决了

使用特权

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

本版积分规则

27

主题

162

帖子

1

粉丝