串口通信——根据波特率计算定时器重装载值

本文介绍了STC89C51/52单片机在UART模式1下,使用定时器1进行串口通信时的波特率计算方法。在波特率加倍时,计算公式为TH1=TL1=256-晶振值/12/16/波特率,未加倍时公式为TH1=TL1=256-晶振值/12/2/16/波特率。并解释了16次采样确保数据正确性的原理。
摘要由CSDN通过智能技术生成

对于STC89C51/52,在UART串口通信中,UART有四种工作模式,模式1是最常用的,对于波特率的发生器来说,它只能用定时器1或定时器2来产生,不能用定时器0产生。由于定时器2我们不常用,所以下面将会对UART模式1结合定时器1进行着重的介绍。(注:模拟串口通信三个定时器都可以用,只要满足串口通信的相关协议即可)

在UART模式1下,定时器1只能用于工作方式2,即八位自动重装载模式,定时器的重载值计算公式为:

                               TH1=TL1=256-晶振值/12/2/16/波特率                   (1)

和波特率有关的还有一个寄存器PCON——电源管理寄存器,该寄存器其他几位就不多介绍了,若在别处用到查找手册即可,这里只介绍与串口通信有关的位,也就是该寄存器的第7位—SMOD/PCON.7,该为用于设置UART工作在方式1、方式2、方式3下的波特率是否加倍。在串口初始化的时候如果把该位置1,也就是该寄存器配置为PCON|=0x80,之后上面那个公式就变为:

                                TH1=TL1=256-晶振值/12/16/波特率                  (2)

 

公式中各个数

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值