51波特率设置问题

charles35126 2006-09-23 04:19:46

新手向大家请教:

晶震11.059MHZ,89c52

与外部蓝牙模块串口通讯波特率115200

我的单片机怎样才能把波特率设置为115200?

用模式1还是3?

几个参数如何设置?谢谢
...全文
688 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
charles35126 2006-10-06
  • 打赏
  • 举报
回复
52 的 Timer2 可以实现.
charles35126 2006-10-06
  • 打赏
  • 举报
回复
52 的 Timer2 可以实现.
dylqhjimmy 2006-09-28
  • 打赏
  • 举报
回复
设11.0592MHz的最大波特率为x(此时TH1=TL1=0xff)

x=1/(256-255)*2/32*11059200/12
=57600bps
最大的波特率就是这个数啦,楼主自己看看吧!
flowercity 2006-09-27
  • 打赏
  • 举报
回复
呵呵
TheSaviour 2006-09-25
  • 打赏
  • 举报
回复
你在网上艘一下,有一个傻瓜51工具,可以帮助你计算波特率和定时器初值,波特率误差等。不过印象中11.0592的晶振工作不到115.2K的波特率。
lbing7 2006-09-25
  • 打赏
  • 举报
回复
想搞明白点,就系统的看一下串口的通信原理,如果想偷懒.就直接查数据手册,里面会给出标准串口设置的典型值..
charles35126 2006-09-25
  • 打赏
  • 举报
回复
我看了不少书,好像11.0592的晶振真的工作不到115.2K的波特率!!!!

我来算:

115.2K的波特率=Fosc/96

工作方式0.工作方式2固定波特率(Fosc/12, Fosc/64或Fosc/32)明显都不合适.

工作方式1和3的波特率由定时/计数器T1,T2的溢出率和SMOD共同确定.

波特率=(定时/计数器T1的溢出速率)*(2SMOD /32)

定时/计数器T1的溢出速率= (Fosc /12)/(28 –(TH1))

所以 波特率=Fosc*2SMOD/((28 –TH1)* 32*12)

在最大的情况下也是Fosc/192


即无论如何也达不到 Fosc/96(115.2K)的波特率


请大家指正,请说简单的朋友解释一下,谢谢


zhouyongxue 2006-09-25
  • 打赏
  • 举报
回复
很简单的
icesnows 2006-09-24
  • 打赏
  • 举报
回复
看书吧

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧