微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 本着好学,不懂就问的精神。我想问问用12MHZ的51单片机,怎么设置串口通讯波特率比较合适?

本着好学,不懂就问的精神。我想问问用12MHZ的51单片机,怎么设置串口通讯波特率比较合适?

时间:10-02 整理:3721RD 点击:
我用的是 12mhz晶振的单片机板子,学习到串口通讯,设置波特率这一块,误差比较大,怎么来设置才不影响使用呢
求师傅指导

用11.0592mhz就行了

波特率设定:
波特率=(2^smod)*(定时器T1溢出率)/32
溢出率=溢出周期的倒数
溢出周期=12*(256-X)/Fosc
波特率=(2^smod * Fosc)/(32 *12*(256-X))
初值X=256-(Fosc*2^smod)/384*波特率
如:11.0592MHz,波特率为9600的初值:TH1=0FFH,TL1=0FDH
强调:51串行口方式1为由定时器T1的计数溢出率来决定,T1为16位定时器,故TH1,TL1均需设值,

找个芯片手册打开看看就知道了

12MHZ的芯片其实大都是11.0592MHZ的,因为这个频率算出来的波特率都是整数。方便计算。

12MHZ的芯片其实大都是11.0592MHZ的,因为这个频率算出来的波特率都是整数。方便计算。

你把波特率调低一点就好了,太高的话不精确!

这个就是个设置的问题              

有专门的软件计算波特率

12M晶振设置比特率为2400时误差最小,初值为F3,将SMOD位置1,可得到4800的比特率。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top