串行口是单片机与外界进行信息交换的工具,8051单片机的通信方式有两种:

并行通信:数据的各位同时发送或接收。 串行通信:数据一位一位次序发送或接收。

串行通信的方式

异步通信

  • 用一个起始位0表示字符的开始,用停止位1表示字符的结束,中间夹着8个数据位,字符能一个接一个传送
  • CPU与外设之间必须有字符格式和波特率两项规定
  1. 字符格式规定能使双方把0和1串理解成同一种意义,原则上自由制定,通用角度使用标准如ASCII
  2. 波特率即数据传输速率,每秒传送的二进制位数,如120字符/s,每个字符10数位,则传送波特率为1200波特

同步通信

去掉了开始结束标志提高速度,但由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。

通信方向

在串行通信中,把通信接口只能发送或接收的单向传送办法叫单工传送;把数据能双向传递称为双工传送。半双工传送两机之间不能同时进行发送和接收,任一时该,只能发或者只能收信息。全双工传送是能同时发送接收。

串行接口结构

  • 51单片机一个可编程的全双工串行通信接口。可用作异步通信方式(UART),与串行传送信息的外部设备相连接。或用于通过同步或异步标准通信协议进行全双工的8051多机系统,使用TTL或CMOS移位寄存器来扩充I/O口。
  • 8051单片机通过管脚RXD(P3.0,串行数据接收端)和管脚TXD(P3.1,串行数据发送端)与外界通信。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。

串行口的控制与状态寄存器

串行口控制寄存器 SCON

用于定义串行口的工作方式及实施接收和发送控制,字节地址为98H

SM0、SM1:串行口工作方式选择位

串行口的工作方式

方式0

  • 为移位寄存器输入/输出方式。可外接移位寄存器以扩展I/O口,也能外接同步输入/输出设备。8位串行数据者是从RXD输入或输出,TXD用来输出同步脉冲。
  • 输出:发送完毕后终端标志T1硬件置位。(同其他)
  • 输入:当 RI =0和REN =1同时满足开始接收,接收到第八位后数据移至寄存器,硬件置位RI。

方式1

  • 为波特率可变的10位异步通信方式。
  • 输出:当执行一条指令将数据写入发送缓冲SBUF时,就启动发送,发送完一帧硬件置位T1
  • 输入:检测1-0跳变,使用前用软件清零RI和SM2

方式2

  • 为固定波特率的11位UART方式。它比方式1增加了一位可程控为1或0的第9位数据。
  • 输出:11位,附加第九位是SCON的TB8位,可作为多机通信中地址/数据信息标志位、奇偶校正位。别的同其他
  • 输入:123同

方式3

为波特率可变的11位UART方式。除波特率外,其余与方式2相同。

波特率选择

方式0:方式0的波特率固定为主振频率的1/12。

方式2:波特率由 PCON 中的SMOD位决定

波特率=2SOMD/64*fosc,SMOD=0或1

方式1和3:

波特率=

定时器T1溢出率

T1溢出率= T1计数率/产生溢出所需的周期数

T1计数率取决于它工作在定时器状态还是计数器状态。

  • 当工作于定时器状态时,T1计数率为fosc/12;
  • 当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于fosc/24。

产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。

  • 定时器T1工作于方式0:溢出所需周期数=8192-x
  • 定时器T1工作于方式1:溢出所需周期数=65536-x
  • 定时器T1工作于方式2:溢出所需周期数=256-x

因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。

相关资料:

嵌入式底层开发 - AIOT时代,嵌入式人才的破局之道! - 创客学院直播室​www.makeru.com.cn

嵌入式开发直播课 - 走进嵌入式 - 创客学院直播室​www.makeru.com.cn

串行异步通信_单片机串行口介绍相关推荐

  1. 串行异步通信_什么是并行传输、串行传输、异步传输?

    串行通讯 一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯.串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢.串行通讯的距离可以从几米到几千米. 根据 ...

  2. 串行异步通信_串行通信中 同步通信和异步通信的区别及使用情况(转)

    在计算机系统中,CPU和外部通信有两种通信方式:并行通信和串行通信.而按照串行数据的时钟控制方式,串行通信又可分为同步通信和异步通信两种方式. 1.异步串行方式的特点 所谓异步通信,是指数据传送以字符 ...

  3. 串行异步通信_每天学一点/ 电工:PLC:串行通信

    每天学一点/ 电工案例:西门子PLC STEP7-SMARTPLC:串行通信 1. 并行通信与串行通信 并行通信以字节或字为单位传输数据,已很少使用.串行通信每次只传送二进制数的一位,最少需要两根线就 ...

  4. java 编写命令行工具_编写命令行工具

    1.使用common-cli编写命令行工具 commons-cli是Apache开源组织提供的用于解析命令行参数的包. 先引用common-cli依赖包: commons-cli commons-cl ...

  5. mysql导入工具 行提交_使用命令行工具mysqlimport导入数据

    Usage: mysqlimport [OPTIONS] database textfile - mysqlimport 程序是一个将以特定格式存放的文本数据(如通过"select * in ...

  6. python 第一行包含一个整数n、表示行数_输入 第一行输入一个整数n(1 = n = 100)表示测试样例个数 接下来n行,一...

    展开全部 #include #include #include #define STRLEN 100 void ifree(char**p,int i); int CheckAndChange(cha ...

  7. keil使用命令行编译_使用命令行编译C51源码并生成HEX文件的示例

    参考Keil\C51\HLP\C51.pdf以及A51.pdf文档,示例及说明如下: set PATH=%PATH%;G:\develop\keil\C51\BIN;G:\develop\keil\C ...

  8. 51单片机串行口的使用与串行通信

    51单片机串行口的使用与串行通信 串行通信: 俩个概念: RS232接口标准: 串行口的使用: 串行口的结构: 串行口相关寄存器: 串行口的工作方式: 方式0:同步移位寄存器方式 利用方式0扩展并行I ...

  9. 单片机实验汇编案例---单片机串行口与PC机通讯实验

    一.实验要求 利用8031单片机串行口,实现与PC机通讯. 本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上. 二.实验 ...

最新文章

  1. 关于textarea包在div的自适应问题
  2. oracle的打开图标,Oracle的SQL Developer 在Ubuntu上以图标显示且双击能运行
  3. oracle安装 redo log file,Oracle Dump Redo Log File 说明
  4. 电脑分屏设置主屏_华硕灵耀 X2 Pro 体验:两块屏幕的笔记本电脑,体验怎样?...
  5. 通过实验来理解代理ARP(二)
  6. Material Design之RecyclerView的使用(一)
  7. iNOC产品部-杨辉三角的变形
  8. centeros安装minio
  9. 金额要用BigDecimal,原理分析
  10. DWG文件损坏了怎么办?
  11. Android Studio中ListView通过自定义Adapter显示数据3-1
  12. 此ca根目录证书不受信任
  13. 如何从google play下载apk
  14. 车载系统ce和linux,车载电子操作系统:QNX与Linux未来有望两家独大
  15. vue.js 在微信公众号内实现视频播放
  16. 全面介绍144芯超高密度光纤配线箱!
  17. Windows 11 应用商店打不开,点了没反应解决办法,亲测可用
  18. java集合之Map
  19. 【认识硬件】之 锁紧座
  20. mysql 修改年龄_MYSQL——数据修改

热门文章

  1. c语言二极管控制程序,二极管(STC89C52): 编写程序控制二极管花样流水灯
  2. c语言如何设置c99标准,新的C语言: C99标准介绍
  3. linux 关闭redis 命令_redis----------linux和mac如何安装redis和启动,关闭
  4. win7网络的计算机名称,Win7指定的网络名不再可用快速解决教程
  5. php.ini文件可以复制吗,php安装完成以后要复制php.ini文件
  6. c mssql mysql_mssql与mysql 数据迁移
  7. 2020-10-13 多智能体基本图论
  8. Thinkphp5.0上传图片与运行python脚本
  9. 7月清北学堂培训 Day 5
  10. 如何确保TCP协议传输稳定可靠?