STC8A串口数据发送与接收

本文介绍了STC8A单片机如何配置串口1进行数据发送与接收,包括SCON、AUXR和IE寄存器的设置,以及串口初始化、发送和接收函数的代码示例。
摘要由CSDN通过智能技术生成


前言

串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。

单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。
简单双向串口通信有两根通信线(发送端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 寄存器的配置。

2.配置辅助寄存器1(AUXR)

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊猫饲养员儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值