51单片机的最高波特率只能是19200吗?

 我来答
2007_0716
推荐于2016-05-22 · TA获得超过267个赞
知道小有建树答主
回答量:188
采纳率:50%
帮助的人:178万
展开全部
波特率跟晶振有关系的,51的印象中是24M最高频率;这个在单品及型号上会有;如果你是要进行串口通信可参考下下面的;

(以下内容非本人所写)
串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。 方式0的波特率 = fosc/12 方式2的波特率 =((2^SMOD)/64)• fosc 方式1的波特率 =((2^SMOD)/32)•(T1溢出率) 方式3的波特率 =((2^SMOD)搏和/32)•(T1溢出率) 注意:SMOD为PCON寄存器的最高位(即PCOM<7>)。 T1 溢出率 = fosc /{12×[256 -(TH1)]} --将该公式代人方式1或3 最后推出公式:TH1=256-(fosc*2^SMOD)/(baudrate*12*32); 呵呵 如果你用方式2(波特率 =((2^SMOD)/64)• fosc )的话 12M的晶振就不能得到9600波特率了(除非你改变你的晶振,但是那样的晶振好像没有卖) 所以你只能选择方式1或3 而且12M的晶振在串口传输时会有误差,就如你上面算的那样结果会有小数点 TH1又只能是整数的 所以传输扒带时会有误差. 参考: #include #define baudrate 9600UL #define fosc 11059200UL//其中,UL是不能省略的,代表长整型。 unsigned char a,flag; void serial_init(void) { unsigned char S_MOD=1; TMOD=0x20;//T1工作在方式2 SCON=0x50;//SM0=0 SM1=1->串口通信在模式1, //SM2=0->多级通信中基此盯使用的位,REN=1; PCON=0; if((PCON&0x80)==0x80) S_MOD=2; TH1=256-(fosc*S_MOD)/(baudrate*12*32);//其中SMOD=0, TL1=256-(fosc*S_MOD)/(baudrate*12*32); TR1=1;ES=1;EA=1; }

如还不明可看51串口通信章节,一般会有较为详细的介绍
WSLKY001
2014-05-05 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:112万
展开全部
不止,单周期的51可以到几百kbps,比如460800bps
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2014-05-06 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
51单片机的最高波特率只能是19200吗?
----为什么这么说?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
knight001
2014-05-05
知道答主
回答量:41
采纳率:0%
帮助的人:6万
展开全部
不是,看串口助手就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式