本着好学,不懂就问的精神。我想问问用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的比特率。
