文章目录
前言
串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。
单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。
简单双向串口通信有两根通信线(发送端TXD和接收端RXD)
TXD与RXD要交叉连接,当只需单向的数据传输时,可以直接一根通信线。当电平标准不一致时,需要加电平转换芯片
这里是串口的几个重要参数。
一、STC8A 串口相关寄存器
这里使用的是串口 1 ,需要初始化几个串口相关的寄存器。
1.配置串口1控制寄存器(SCON)
SM0/FE:当PCON寄存器中的SMOD0位为1时,该位为帧错误检测标志位。当UART在接收过程中检测到一个无效停止位时,通过UART接收器将该位置1,必须由软件清零。当PCON寄存器中的SMOD0位为0时,该位和SM1一起指定串口1的通信工作模式,如下表所示:
REN:允许/禁止串口接收控制位
0:禁止串口接收数据
1:允许串口接收数据
在这里SM0与SM1共同来决定串口 1 的工作模式。
这里将串口 1 工作模式配置为可变波特率8位数据方式,允许串口接收数据,即SCON = 0x50;
工作模式配好了,接下来要配置波特率。
配置波特率时,我们需要选择定时器 1 或者定时器 2 来作为串口 1 的波特率发生器。在这里我们选择定时器 2 作为波特率发生器。
通过什么寄存器来选择一个定时器作为波特率发生器呢?这里我们先来看看波特率的选择。
下面为常用频率与常用波特率所对应定时器的重载值:
当前频率在11.0592MHz,使用115200波特率,定时器 2 在1T模式下,故配置为T2L=0xE8,T2H=0xFF。
如何选择定时器作为波特率发生器,以及定时器的速度控制呢?接下来就是 AUXR 寄存器的配置。