计算机的数据交换有两种方式,分别是串行通信和并行通信。

并行通信:我们以8位(一个字节)的数据为例,在并行通信下,8位数据是同时传输的,同时发送,同时接受。所以通信的双方需要一个公共的时钟信号。并行传输速度快,效率高。但是传输需要的数据线多,传输距离近。

串行通信:仍然以8位的数据为例,每一位数据都是分时发送的,接收方也是一位一位的接受。串行通信只需要一根数据线就可以,成本低。适用于大规模和远距离的数据传输。

异步传输模式:每个传输的字符都用起始位和终止位包装起来,在字符间允许有长短不一的间隙。

同步传输模式:一个数据块包含着许多连续的字符,在字符之间没有空闲。同步传输可以方便的实现某一通信协议要求的格式。

波特率:在这里定义为串行通信每秒钟传送的“位”的个数。即n波特 = n b/s。在RS-232C标准中,串行通信的波特率规定如下:600,1200,2400,4800,9600等。

串行口的波特率计算:

在方式0下,波特率固定为:F/12  (F为晶振频率)

方式2下,波特率固定为:F/32或者F/64  (取决于PCON寄存器的SMOD位,若SMOD = 1,则是F/32;否则为F/64)。

方式1和方式3:采用了T1定时器的溢出率作为波特率的发生器,因此计算公式为:

K*F/[32*12*(2^n - X)]。

其中若SMOD = 1,则K = 2,否则K = 1,F为晶振频率,n为定时器的位数(即定时器处于哪种工作模式下),X是定时器填充的初值。

在串行通信中要求通信双方拥有一致的波特率,但是有时候我们无法精确的达到那个波特率,此时我们需要考量在SMOD = 1和SMOD = 0这两种情况下哪一个所产生的相对误差较小,我们就去选用哪一个。

相对误差 = (实际值 - 理论值 ) / 理论值 * 100%

8051单片机的串行通信相关推荐

  1. 基于8051 单片机的 RFID读卡器

    射频识别 (RFID)使用射频读取存储在 RFID 卡或标签中的信息.在这个项目中,我们将EM-18 RFID 阅读器连接到8051 单片机,并在 1602 LCD 显示屏上显示 RFID 卡号.这种 ...

  2. 《迷人的8051单片机》——导读

    前 言 在单片机的"江湖"中,8051单片机历来都是兵家必争之地.这是因为8051单片机有着悠久的历史和最为庞大的用户群,很多时候它已经成为8位单片机领域的一种行业标准,众多器件都 ...

  3. 第5章 8051单片机工作原理

    通过前面4位计算机的结构.指令和程序,我们对计算机这一事物有了比较深入的理解,但这个4位机结构简单.指令集不丰富.运算速度慢.不支持高级语言编程,基本没有多少实际应用价值,仅能用来理解计算机工作原理. ...

  4. 8051单片机内部结构

    目录 1.概述 2.CPU 3.电源电路 4.时钟电路 5.复位电路 6.ROM(程序存储器) 7.RAM(数据存储器) 8.中断控制器 9.定时器/计数器 10.串行通信口 11.P0-P3输入/输 ...

  5. 8051单片机的通信方式有多少种

    串行口是单片机与外界进行信息交换的工具,8051单片机的通信方式有两种: 并行通信:数据的各位同时发送或接收.串行通信:数据一位一位次序发送或接收. 串行通信的方式 异步通信 ·用一个起始位0表示字符 ...

  6. C51 学习笔记03 | 8051单片机几大功能组成部件

    8051单片机属于冯·诺依曼型结构,其内部主要包括以下几大功能部件.各个部分通过内部总线相连接. 1.中央处理器(CPU) CPU是单片机的核心,它是8位数据宽度的处理器,能处理8位二进制数据或代码其 ...

  7. 单片机c语言using,C语言在8051单片机上的扩展(interrupt、using关键字的用法)

    C语言在8051单片机上的扩展(interrupt.using关键字的用法) 直接访问寄存器和端口 定义 sfr   P0 0x80 sfr    P1 0x81 sfr    ADCON; 0xDE ...

  8. 《迷人的8051单片机》----3.4 程序

    本节书摘来自华章出版社<迷人的8051单片机>一书中的第3章,第3.4节,作者高显生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.4 程序 3.4.1 ...

  9. 《迷人的8051单片机》---- 1.2小元器件有大智慧

    本节书摘来自华章出版社<迷人的8051单片机>一书中的第1章,第1.2节,作者高显生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.2 小元器件有大智慧 ...

最新文章

  1. 在这个什么都看脸的时代,如何用 GUI 提高 python 程序的颜值?
  2. docker停止容器后配置_整理了一份 Docker系统知识,从安装到熟练操作看这篇就够了 | 原力计划...
  3. linux开端口不重启,Linux 防火墙开放端口(有时不生效可能是没有保存、重启导致)...
  4. [ JS 进阶 ] Repaint 、Reflow 的基本认识和优化 (2)
  5. python3多线程编程_Python3 多线程编程
  6. 删除mysql指令_MySQL常用命令学习笔记
  7. 【图像分割】基于matlab免疫遗传算法单阈值图像分割【含Matlab源码 729期】
  8. fastJson、Jackson对象转json串不使用驼峰方法和json转对象
  9. 高德地图获取经纬度坐标
  10. STM32 Futaba SBUS协议解析
  11. @[TOC](0x01131A81 处(位于 Project2.exe 中)引发的异常: 0xC0000005: 读取位置 0x00320000 时发生访问冲突。
  12. SQL语句练习题(壹)
  13. 学计算机的话美国社区大学对应课程,美国加州社区大学转UC伯克利计算机专业有什么课程上的要求?...
  14. python数字识别kaggle论文_基于Python语言Kaggle的数据集分析
  15. 计算机网络自顶向下方法 第三章 运输层 3.4 可靠数据传输原理
  16. I/O设备和CPU之间数据传送控制方式
  17. 2021 国内外 IoT 物联网平台汇总
  18. iOS苹果相册“地点”相簿效果实现浅谈
  19. 37所国家示范性软件学院
  20. 【大学物理学】质点动力学

热门文章

  1. 《人人都是项目经理》之立项与启动(二)
  2. 贝叶斯条件概率/贝叶斯网络
  3. 一次破解TP-Link WAR308路由器的经历
  4. 记第一次Ubuntu系统的安装、搜狗输入法的安装与VIM插件的安装(入门篇)
  5. Ubuntu 下使用 FDDB 测试人脸检测模型并生成 ROC 曲线,详细步骤
  6. 《ABAQUS有限元分析实例详解》学习笔记_51CAE_新浪博客
  7. 阅读vue3官方文档之摘录
  8. 武汉晴川学院软件工程导论可行性分析(梅宇欣)
  9. Linux(GPU)显卡清理缓存
  10. Fecmall-2.x 安装-转载文章仅供参考