打印

求助:12M晶体得到9600波特率

[复制链接]
4223|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
自民|  楼主 | 2008-8-7 16:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
自民|  楼主 | 2008-8-7 17:11 | 只看该作者

用89C58 定时器T2做

用89C58  定时器T2

使用特权

评论回复
板凳
lyjian| | 2008-8-7 18:56 | 只看该作者

不同内核的单片机波特率产生的方法都不一样

你应该说清楚你用的单片机。
是标准51的话,12M晶体做9600波特率的误差是是0.16%,正常运行没任何问题。

使用特权

评论回复
地板
自民|  楼主 | 2008-8-8 10:55 | 只看该作者

是STC89C58RD+

如果用T2做,我算过-2.34375%误差

装载常数FFD8

使用特权

评论回复
5
lyjian| | 2008-8-8 11:14 | 只看该作者

装载常数用FFD9

误差是0.16%

使用特权

评论回复
6
mohanwei| | 2008-8-8 12:56 | 只看该作者

用12M没有问题的,那点误差可以接受。

使用特权

评论回复
7
datouyuan| | 2008-8-8 16:48 | 只看该作者

假如你是用89c51的话,12M晶体不行。

假如实际波特率和你想要的波特率偏差小于4.5%的话,就可用。

1机器周期12clock,12M晶体:

smod=0时,最接近9600波特率的TH1重装值是253,实际波特率为10417,偏差有8.5%。
smod=1时,最接近9600波特率的TH1重装值是249,实际波特率为8929,偏差有7%。


不过假如有1机器周期6clock的话,12M晶体可用。
smod=1;TH1重装值是243,实际波特率为8929,偏差有0.2%。

使用特权

评论回复
8
datouyuan| | 2008-8-8 16:51 | 只看该作者

打错了字,现更正。

不过假如有1机器周期6clock的话,12M晶体可用。
smod=1;TH1重装值是243,实际波特率为9615,偏差有0.2%

使用特权

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

本版积分规则

47

主题

195

帖子

2

粉丝