对于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)
公式中各个数