串口通信

51单片机内部自带UART(Universal Asynchronous Receiver Transmitter,通用异步收发器),可实现单片机的串口通信

RS-232 也称标准串口,最常用的一种串行通讯接口,比如我们的电脑主机的9针串口 ,最高速率为20kb/s

RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其传送距离最大为约15米。所以RS-232适合本地设备之间的通信

硬件电路

简单双向串口通信有两根通信线(发送端TXD和接收端RXD)

TXD与RXD要交叉连接

当只需单向的数据传输时,可以直接一根通信线

当电平标准不一致时,需要加电平转换芯片

电平标准

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

TTL电平:+5V表示1,0V表示0

RS232电平:-3 ~ -15V表示1,+3 ~ +15V表示0

RS485电平:两线压差+2 ~ +6V表示1,-2 ~ -6V表示0(差分信号)

常见通信接口比较

名称 引脚定义 通信方式 特点
UART TXD、RXD 全双工、异步 点对点通信
I2C SCL、SDA 半双工、同步 可挂载多个设备
SPI SCLK、MOSI、MISO、CS 全双工、同步 可挂载多个设备
1-Wire DQ 半双工、异步 可挂载多个设备

此外还有CAN、USB等

通信方式

全双工:通信双方可以在同一时刻互相传输数据

半双工:通信双方可以互相传输数据,但必须分时复用一根数据线

单工:通信只能有一方发送到另一方,不能反向传输

异步:通信双方各自约定通信速率

同步:通信双方靠一根时钟线来约定通信速率

总线:连接各个设备的数据传输线路(类似于一条马路,把路边各住户连接起来,使住户可以相互交流)

51串口通信工作模式

STC89C52有1个UART

STC89C52的UART有四种工作模式:

​ 模式0:同步移位寄存器

​ 模式1:8位UART,波特率可变(常用)

​ 模式2:9位UART,波特率固定

​ 模式3:9位UART,波特率可变

串口参数及时序图

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

​ 在数字通信中常常用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为**(二进制)码元**

波特率可以被理解为一个设备在单位时间内发送(或接收)了多少码元(二进制)的数据,它是对符号传输速率的一种度量,表示单位时间内传输符号的个数(传符号率)

比特率又称“二进制位速率”,俗称“码率”。表示单位时间内传送比特的数目。用于衡量数字信息的传送速度,常写作bit/sec。根据每帧图像存储时所占的比特数和传输比特率,可以计算数字图像信息传输的速度

检验位:用于数据验证

停止位:用于数据帧间隔

串口模式图

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

由图可知需要用到T1定时器,使用定时器设置波特率,也需要开启中断

串口使用定时器1,模式选择8位自动重装载

数据显示模式

在串口助手中与单片机收发数据时有两种数据形式:

HEX模式/十六进制模式/二进制模式:以原始数据的形式显示

文本模式/字符模式:以原始数据编码后的形式显示,该编码依据ASCII码表,是十六进制的对应字符显示

波特率计算

SMOD:波特率选择位。当用软件置位SMOD,即SMOD=1,则使串行通信方式1、2、3的波特率加倍;SMOD=0,则各工作方式的波特率不加倍。复位时SMOD=0。

一般选择不加倍,所以SMOD为0,SYSclk是单片机时钟,也就是晶振的频率,11.0592MHz,运算时要转化为基本单位Hz,即11059200Hz

定时器工作模式是8位自动重装载,TH1和TL1赋的初值一样

9600:

12T模式定时器1溢出率:11059200Hz/12/(256-TH1) = 11059200Hz/12*(256-TH1) = 921600/(256-TH1)

9600 = 2^SMOD/32*(921600/(256-TH1)) = 1/32 * (921600/(256-TH1)) = 28800/(256-TH1)

256-TH1 = 28800/9600 = 3,TH1 = 256-3 = 253,253转为十六进制就是FD,所以TH1 = TL1 = FD

4800:

12T模式定时器1溢出率:11059200Hz/12/(256-TH1) = 11059200Hz/12*(256-TH1) = 921600/(256-TH1)

4800= 2^SMOD/32*(921600/(256-TH1)) = 1/32 * (921600/(256-TH1)) = 28800/(256-TH1)

256-TH1 = 28800/4800 = 6,TH1 = 256 - 6 = 250,253转为十六进制就是FA,所以TH1 = TL1 = FA

串口通信以及波特率计算方法相关推荐

  1. 51单片机C语言波特率十六进制,理解51单片机串口通信的波特率与USB转串口通信...

    RS232 在我们电脑上,一般都会有一个9针的串行接口,这个串行接口叫做RS232接口,它和UART通信有关联,但是由于现在笔记本电脑不带9针串口,所以和单片机通信越来越趋于使用USB虚拟串口. 九针 ...

  2. 51单片机:中断系统(外部中断,定时器中断,串口通信)

    目录 中断系统简介: 中断的优先级和嵌套: 8个中断请求源及其优先级: 中断的分别介绍: 1.外部中断0:INT0 2.外部中断1 3.T0和 T1:定时计数器的功能 4.串口中断(串口为什么使用定时 ...

  3. delphi 串口通信发送_STM32第五章串口通讯详解

    点击上方"果果小师弟",选择"置顶/星标公众号"干货福利,第一时间送达! 串口通信是串行通信里面的异步方式.串行通信是相对于并行通信来说的.串口是一个事实存在的 ...

  4. 51单片机—串口通信

    计算机串行通信: 并行通信: 串行通信: 异步通信: 同步通信: 串行通信的传输方向: 串行通信常见的错误校验: 传输速率比特率(波特率): (fosc是晶振频率,要将Mhz转化为hz(乘10的6次方 ...

  5. s5pv210——串口通信的基础概念

    以下内容源于朱友鹏<物联网大讲坛>课程的学习,如有侵权,请告知删除. 总结 1.同步异步:是否同一时钟,数据格式 2.电平信号.差分信号:有无参考电平(有,无) 3.串行接口和并行接口:信 ...

  6. matlab gul介绍及串口通信实现,Matlab - GUl介绍及串口通信实现(转)

    新建Blank GUI. 在新建Blank GUI界面中,包含了一般的界面元素,如菜单.按钮.坐标轴.控件等.添加必要的串口通信参数设置按钮. 2 串口数据发送与接收功能实现 2.1 建立串口通信流程 ...

  7. 基于天问block编译环境下ASRPRO语音芯片程序编写教程(三)串口通信,多线程模块,ADC篇

    本篇教程将基于天问block内的官方范例代码讲解如何编写ASRPRO语音芯片程序以实现串口通信多线程模块编程和ADC数据读入功能. 1.串口通信 ASRPRO语音芯片具有3组可用串口(UART1对应P ...

  8. 电子通信(串口通信)

    1.同步通信和异步通信 1.1.同步通信和异步通信的概念: 同步通信其实就是指的是发送方和接收方按照同一时钟节拍工作: 异步通信指的就是发送方和接收方没有统一的时钟节拍,而按照自己的节拍工作. 1.2 ...

  9. 9-《电子入门趣谈》第一章_一切从单片机开始-1.3.6串口通信

    好消息:请在手机淘宝或闲鱼上搜索"电子入门趣谈",有惊喜哦 :) 我把全本电子入门趣谈的电子版(包括科技提升和理论升华部分,共计50余万字)放到上面开始兜售啦,如果您真的喜欢这本书 ...

  10. Matlab与单片机的串口通信-matlab…

          Matlab提供了对串口进行 打开. 关闭.以及 串口参数设置等操作的一系列 函数.利用这些函数可以选择串口号. 设置串口通信参数( 波特率. 数据位.停止位. 校验位等).进行中断控制. ...

最新文章

  1. 设计模式入门:建造者模式
  2. 《应试捷径-典型考题解析与考点贯通_系统分析师考试》复习重点提示
  3. Android base64 上传图片
  4. leetcode342合理运用位操作判断4的幂
  5. 基于遗传算法优化的BP神经网络的 非线性函数拟合
  6. Microsoft SQL Server 2005 CTP 简体中文版
  7. 入侵检测系统_GIDS:基于GAN的车载网络入侵检测系统
  8. 树-堆结构练习——合并果子之哈夫曼树(是最优二叉树题目的缩影)
  9. XML DOM学习笔记(JS)
  10. .Net魔法堂:发个带附件的邮件
  11. 《编程之美》3.6判断链表是否相交之扩展:链表找环方法证明
  12. python解决sip与ptqt不兼容导致页面截图引擎无法运行问题
  13. Java程序设计基础笔记 • 【第1章 初识Java】
  14. 目标检测Anchor-free分支:基于关键点的目标检测(最新网络全面超越YOLOv3)
  15. 计算机教学能力大赛实施报告模板,教学能力比赛教学实施报告现场汇报PPT模板-橙色主题.pptx...
  16. h5调用手机相机和录音机_html5 调用手机摄像头以及录音的方法
  17. ps怎么对比原图快捷键_用Photoshop调出图片冷暖色对比
  18. 二维数组传参(二维数组作为函数参数)
  19. CentOS7 安装Mldonkey(电驴)步骤
  20. 3dmax中如何导入照片为背景

热门文章

  1. Hadoop之常用端口号
  2. JAVA注释 关键字 标识符 常量 变量 数据类型 大小 类型转换 字符类型 (算术 赋值 自增自减 比较 逻辑短路现象 位移 三元) 运算符
  3. 电压跟随器Voltage Follower
  4. C语言知识点思维导图
  5. java常量池在哪里_java常量池在哪?有什么用处?
  6. 互联网医院远程医疗在线问诊药品商城处方流转系统源码spring boot+vue全开源
  7. Java实现多种格式上传视频资源、解析视频格式、视频截图处理
  8. simulink 汽车低压电网简单仿真
  9. web前端面试题【html+css+js+框架】
  10. 白话ES 的分布式架构原理