打印

高手请进,网上的一篇**大家看看这个定时器这样设置是

[复制链接]
1880|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lwg998|  楼主 | 2007-3-20 20:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2007-3-21 08:19 | 只看该作者

随便说说

  菜鸟都知道怎么计算,还用什么高手,多看看书。
  65536-50000/(12/11.0592)= xxxxx

使用特权

评论回复
板凳
lwg998|  楼主 | 2007-3-21 09:42 | 只看该作者

呵呵,你好

 65536-50000/(12/11.0592)= 14318.894

那么TH1和 TL1   分别是多少?如何计算的?谢谢

使用特权

评论回复
地板
ayb_ice| | 2007-3-21 10:04 | 只看该作者

你真是菜鸟

你真会算65536-50000/(12/11.0592)= 14318.894

65536-50000/(12/11.0592)= 19456 = 0x4C00
TH1 = 0x4C = 76
Tl1 = 0x00
 

使用特权

评论回复
5
lwg998|  楼主 | 2007-3-21 12:33 | 只看该作者

呵呵

使用特权

评论回复
6
lwg998|  楼主 | 2007-3-21 13:22 | 只看该作者

刚才输错了,应该是这样的

65536-50000/(12/11.0592)= 19456 = 0x4C00

 65536-50000/(12/11.0592)
=65536-50000/1.085069
=65536-46080
=19456
=0x4c00
TH1 = 0x4C = 76
Tl1 = 0x00

这是50MS的

网上还有另一种表示:
TH0 = (65536-5000)/256;  //  TH0 = -5000/256;
TL0 = (65536-5000)%256;  //  TL0 = -5000%256;
这是5mS的(标准51运行于12MHZ),

以上的50MS的是否也可以用这种方法表示呢。
如下:
TH0 = (65536-50000)/256;  //  TH0 = -50000/256;
TL0 = (65536-50000)%256;  //  TL0 = -50000%256;

不知是否正确
如果是这样的话那么:
TH0 = 60;
TL0 = 176;

这个结果和前面的不一致???

使用特权

评论回复
7
lwg998|  楼主 | 2007-3-21 13:40 | 只看该作者

有个地方忽略了,前面的是11.0592M 后面的是12M

计算方法上可能错了
以上的50MS的是否也可以用这种方法表示呢。
如下:
TH0 = (65536-50000)/256;  //  TH0 = -50000/256;
TL0 = (65536-50000)%256;  //  TL0 = -50000%256;

不知是否正确
如果是这样的话那么:
TH0 = 60;
TL0 = 176;

这个结果和前面的不一致???

用这个方法表示应该是这样的
TH0 = (65536-TIME*1000.0*OSC/12)/256;        
TL0 = (65536-(unsigned )(TIME*1000.0*OSC/12))%256;

OSC = 晶振频率 单位M
TIME = 定时时间 单位ms 

以上TH0 = (65536-TIME*1000.0*OSC/12)/256;
是否该是这样:TH0 = (65536-TIME*1000.0*(OSC/12))/256;
才是正确的

使用特权

评论回复
8
lwg998|  楼主 | 2007-3-21 15:04 | 只看该作者

最后的结论是:TH0 = (65536-TIME*1000.0/(12/OSC))/256;

使用特权

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

本版积分规则

13

主题

143

帖子

0

粉丝