澳门永利娱乐_电工基础知识学习网站
当前位置:澳门永利娱乐 > 电工知识 > 单片机 > 正文

单片机波特率计算公式和方法

时间:2017-08-09 15:08 来源:澳门永利娱乐

单片机波特率计算公式和方法
波特率在使用串口做通讯时,一个重要参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数。 这里所指的波特率,如标准9600 不是每秒种可以传送9600个字节,而是指每秒可以传送9600 个二进位,而一个字节要8 个二进位,如用串口模式1 来传输那么加上起始位和停止位,每个数据字节就要占用10 个二进位,9600 波特率用模式1 传输时,每秒传输的字节数是9600÷10=960 字节。
51芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M 的晶振来计算,那么它的波特率可以达到1M。模式2的波特率是固定在fosc/64 或fosc/32,具体用那一种就取决于PCON 寄存器中的SMOD位,如SMOD 为0,波特率为focs/64,SMOD 为1,波特率为focs/32。
模式1和模式3的波特率是可变的,取决于定时器1或2(52芯片)的溢出速率,就是说定时器1每溢出一次,串口发送一次数据。那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。
单片机波特率计算公式和方法
上式中如设置了PCON寄存器中的SMOD位为1时就可以把波特率提升2倍。通常会使用定时器1工作在定时器工作模式2下,这时定时值中的TL1做为计 数,TH1做为自动重装值,这个定时模式下,定时器溢出后,TH1的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这 个定时模式2下定时器1溢出速率的计算公式如下:
溢出速率=(计数速率)/(256-TH1初值)
溢出速率=fosc/[12*(256-TH1初值)]
上式中的“计数速率”与所使用的晶体振荡器频率有关,在51 芯片中定时器启动后会在每一个机器周期使定时寄存器TH 的值增加一,一个机器周期等于十二个振荡周期,所以可以得知51芯片的计数速率为晶体振荡器频率的1/12,一个12M 的晶振用在51芯片上,那么51的计数速率就为1M。通常用11.0592M 晶体是为了得到标准的无误差的波特率,那么为何呢?计算一下就知道了。如我们要得到9600 的波特率,晶振为11.0592M 和12M,定时器1 为模式2,SMOD 设为1,分别看看那所要求的TH1 为何值。代入公式:
11.0592M
9600=(2÷32)×((11.0592M/12)/(256-TH1))
TH1=250
12M
9600=(2÷32)×((12M/12)/(256-TH1))
TH1≈249.49
上面的计算可以看出使用12M晶体的时候计算出来的TH1不为整数,而TH1的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600 波特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592M 的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。

看过《单片机波特率计算公式和方法》的人还看了以下文章
c语言sqrt函数怎么求三角形面积 c语言sqrt函数怎么求三角形面积
c语言sqrt函数怎么求三角形面积 使用C语言中的sqrt函数求三角形的面积,关键是已知条件是什么,并没有说,已知条件不同,所求三角形的面积公式也不同。 1)若是已知三角形的三条边长a、b、c,根据海伦公式可以求出三角形的面积,p=(a+b+c)/2,则三角形的面积:...
51单片机最小系统板各元器件的作用 51单片机最小系统板各元器件的作用
51单片机最小系统板各元器件的作用 51单片机最小系统板中,一般会有如下元器件:51单片机、晶振、稳压芯片(也可能是稳压电路或电源接口)、电阻、电容、电源开关、电源指示灯(即发光二极管)、编程接口、复位按钮等。当然了,有些是必须的,有些是可选的。...
单片机和dsp芯片输出电压能直接接负载吗 单片机和dsp芯片输出电压能直接接负载吗
单片机和dsp芯片输出电压能直接接负载吗 可以直接接负载,但是只能接微小澳门永利娱乐官网的负载,一般10mA以内,甚至更...
51单片机模拟交通灯效果是如何实现的 51单片机模拟交通灯效果是如何实现的
51单片机模拟交通灯效果是如何实现的 交通灯红绿灯是按一定的顺序进行亮灭的,亮灯的时间也是一定的。那么就有逻辑可循。而单片机就可以根据逻辑性进行控制程序编写,然后烧录程序进单片机,控制IO串口输出高低电平及中断延时以达到模拟交通灯的效果。 那么...
单片机中断优先级控制寄存器 单片机中断优先级控制寄存器
IP全名:Interrupt Priority,是单片机的中断优先级控制寄存器 下图是中断优先级寄存器 IP 的控制位:可以通过程序来控制。 PS: 串行口中断优先级控制位; PT1: 定时器/ 计数器 T1 中断优先级控制位; PX1: 外部中断 1 中断优先级控制位; PT0: 定时器/ 计数...