关于51单片机中串口通信的一些小笔记

Posted 衾许°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于51单片机中串口通信的一些小笔记相关的知识,希望对你有一定的参考价值。

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

单片机的串口可以使单片机与单片机,单片机与电脑,单片机与各种各样的模块互相通信,扩展了单片机的应用范围,增多了单片机系统的硬件功能。

51单片机内部自带UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器,通常称作UART

关于D89接口 

 

DB9母头
针号功能说明缩写
1 载波检测DCD
2 发送数据TXD
3 接收数据RXD
4 数据终端准备好DTR
5信号地线SGND
6数据准备好DSR
7 请求发送RTS
8 清除发送CTS
9振铃提示RI

其中TXD为发送端,RXD为接收端,并且TXD与RXD要交叉连接,当只需单向传输数据时,可以只接一条线,当电频不一致是需要加电频转换芯片

电频标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压和数据的对应关系,串口常用的电频标准如下:

  • TTL电频:+5v表示1,0v表示0
  • rs232电频:-3~-15表示1,+3~+15表示0
  • rs485电频:两线压差+2~+6表示1,-2~-6表示0 

  • 相关术语的概念
  • 全双工:通信双方可以在同一时刻互相传输数据
  • 半双工:通信双方可以互相传输数据,但必须分时复用同一根数据线
  • 单工:通信只能有一方发送到另一方,不能反向传输
  • 异步:通信双方各自约定通信的速率
  • 同步:通信双方通过时钟晶振频率约定通信速率
  • 总线:连接各个外设的数据传输线

 概念大概就这么多,回到我们想讲的STC89C52单片机中,STC89C52单片机只有一个UART串口,分为四种模式:

  • 模式0:同步移位寄存器
  • 模式1:8位UART,波特率可变(常用模式)
  • 模式2:9位UART,波特率固定
  • 模式3:9位UART,波特率可变

波特率:串口通信的速率(发送和接收数据位的时间间隔)

校验位:用于数据验证(9位数据格式第9位数据)

停止位:用于数据帧间隔

 一般校验位用法是奇偶校验的方式:如0000 1111 是15,若在0000 1111加1,变成0000 11111就变成了偶数,若传输过程中出现了一些问题导致了0000 1111变成0001 11111则变成了奇数,那么该数据便会被舍弃

关于串口模式图:

 SBUF:串口数据缓存寄存器,物理上是两个独立的寄存器,但占用相同的地址,写操作时,写入的是发送寄存器,读操作时,读出的是接收寄存器。

 实际的运转过程就是左边的数据流先通过写SBUF写入SBUF发送寄存器中,通过控制门到TXD,然后读操作通过RXD传出数据到SBUF接收寄存器。

 

以上是关于关于51单片机中串口通信的一些小笔记的主要内容,如果未能解决你的问题,请参考以下文章

关于51单片机中串口通信的一些小笔记

借助虚拟串口驱动软件模拟Proteus中51单片机与PC端串口调试助手软件相互通信

关于QT串口编程与单片机通信的问题,单片机为STM32

51单片机做串口通信接收缓存区没反应

51单片机上位机编写与串口通信-深入了解串口

51单片机串口通讯