51单片机串行口波特率计算方法「什么是波特率」

作者头像
花已残
回答于 2023-03-22 05:20:15 阅读 712
51单片机串行口波特率计算方法「什么是波特率」

51单片机串行口波特率计算方法

1、51单片机的串口有多种工作模式,每种模式都有各自的波特率计算公式,限于篇幅的关系,咱们以最常用的模式1在1T时钟下的波特率计算公式为例:

2、波特率=单片机主频/(4×(65536-定时器初值))。

3、在公式中,主频就是单片机的时钟频率。

4、51单片机串口有固定波特率模式和可变波特率模式,每种模式还有1T或12T时钟模式,芯片手册都明确给出了对应的波特率计算公式。

51单片机串口配置

1、配置串口工作模式为模式1。

2、即设置SCON寄存器(SM0,SM1,REN位),SCON |= 0X50;(SM0 = 0,SM1 = 1,REN =1).

3、SM0 = 0,SM1 = 0 方式0:同步移位串行方式:波特率= SYSclk / 12.

4、SM0 = 0,SM1 = 1 方式1:8位UART,波特率可变: 波特率 = (2^SMOD / 32) * (定时器1的溢出率)

5、SM0 = 1,SM1 = 0 方式2:9位UART: 波特率 = (2^SMOD / 64) * (SYSclk系统工作时钟频率)

6、SM0 = 1,SM1 = 1 方式3: 8位UART,波特率可变: 波特率 = (2^SMOD / 32) * (定时器1的溢出率)

什么是波特率

波特率就是一秒种传输0或1的个数,若波特率是9600那么它传输一位0或1的时间就是1/9600秒如果串口工作在方式一下波特率是9600晶振是11059200定时器选用timer1的自动重装模式即1/9600=定时时间就是1/9600=(12*32/11059200)*(256-定时初值)。

那么定时初值=256-(11059200/(12*32*9600));这里的32是51单片机的硬件典型结构,串口通信使用的频率是晶振频率的1/32或者1/16,但是这种模式下,限制了波特率的提高,因此,现在一些改进的51单片机是1/2分频。

声明:图文来源于互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请联系网站客服,一经查实,本站将立刻删除。

最新推荐