0. 串口通讯

0. 串口通讯的数据传输方式:单工(单向传输数据),半双工(非同时双向传输),全双工(同时,双向传输)
1. 根据通信方式的不同又分为同步通讯和异步通讯。
同步通讯:所有设备都使用同一个时钟,称为同步时钟。在数据传送时,以若干个数据字符(称为数据块)为单位进行传输,每个数据块包括同步字符、数据块和校验字符CRC。
异步通信是指在串行通信中,接收设备和发送设备有各自的时钟信号,异步通信以字符为单位进行数据传送,不过通信中这些时钟频率必须保持一致。
 
2. 波特率和比特率
波特率是每秒传输的信号量(单位波特B),比特率是每秒传输的信号量(单位bps),在单片机中,这两个东西是一样的。
例如,通信双方每秒钟所传送数据的速率是240字符/秒,每一字符包含10位(1个起始位、8个数据位、1个停止位),则波特率为
240 ×10 =2400b/s=2400B
 
3. SCON(98H,可位寻址)
SM0,SM1是设定串口工作方式的,
SM2是设定在串口工作方式2,3时发送地址or数据。
REN是允许接受位,TB8是在工作方式2,3时的第九位可编程位的数值。
TI是发送标志位。
RI是接收标志位。
4. PCON(87H,不可位寻址)
    最高位是可以拿来调整波特率的,低位那些和电源管理相关。
 
80C51串口工作方式:(P3.0是位移输入RxD((低位在前),P3.1是位移输出TxD)
  工作方式0:(同步)8位数据为一帧,没有停止位和起始位,串行口发送的条件是TI = 0;接受条件是RI = 0且REN = 1(允许接受位)。
波特率固定fosc/12。RB8不用。
  工作方式1:(异步)(用于双机通讯)10位数据为一帧,最低位为起始位(0),最高位为停止位(1)。SM2=0,RB8接收的是停止位。实际上工作方式1在发送时是不断把数据右移到TxD端口(最高位已经置1),然后不断在左边补0,发完TI = 1;接受时恰好反过来,首先接受的时候会在接受端口补1,当一旦发现从1-0的跳变(收到起始位了),就开始接受数据,直到收到的停止位为1,则收到的是正确的信息。然后RI = 1。
 
  工作方式2,3:(异步)(多机通讯),11位数据一帧,除了起始位和停止位,还包括一个可编程位, 这个位由SCON的TB8提供,可以做奇偶校验,也可以与SM2结合进行多机通讯,发送时设定TB8,接受时为RB8。
  当SM2 = 0时,接受数据和地址;当SM2 = 1时,只接受地址(体现在接收到的信息的RB8位必须是1(表明是地址))
 
串口波特率计算:
方式0的波特率为晶振频率的1/12。
方式2的波特率为:波特率=(2SMOD/64)×fosc
方式1和方式3的波特率 =(2SMOD /32)×定时器的溢出率(一般选方式2作为方式一和方式三的时钟)
 
常用波特率(熟悉一下):
串口通讯编程例子(注意要自己手动清除TI和RI)
(发送)
MOV R0,#40H ;设定数据块地址指针初值
MOV R7,#10H ;设定数据块长度初值
ALOOP3:MOV SBUF,@R0 ;发送一个数据字节
JNB TI,$ ;等待发送完
CLR TI ;清发送标志位
INC R0 ;地址单元加1
DJNZ R7,ALOOP3 ;整个数据块是否发送完毕

(接收)
MOV R0,#40H ;设定数据块地址指针初值
MOV R7,#10H ;设定数据块长度初值
BLOOP3:JNZ RI,$ ;等待接收信息
CLR RI ;清接收标志位
MOX A,SBUF ;读取接收缓冲区内容
MOX @R0,A ;接收数据转储
INC R0 ;存储单元加1
DJNZ R7,BLOOP3 ;判断数据块是否接收完毕

  在由MCS-51组成的主从式多机通信系统中,主机只有一台,从机最多有256台。
 
1. I^2C总线

  编码内容包括:器件标识,引脚电平,方向位。
  两条线:SCL(时钟线),SDA(数据线),9位数据传输形式(最后一个应答位)。
 
  当SCL为高,SDA下降沿,表明启动。
  当SCL为高,SDA上升沿,表明停止。

转载于:https://www.cnblogs.com/Philip-Tell-Truth/p/6267601.html

单片微机原理P4:80C51串口与串行总线拓展相关推荐

  1. 串口UART串行总线协议

    串口UART 串行端口是异步的(不传输时钟相关数据),两个设备在使用串口通信时,必须先约定一个数据传输速率,并且这两个设备各自的时钟频率必须与这个速率保持相近,某一方的时钟频率相差很大都会导致数据传输 ...

  2. 微型计算机原理daa,单片微机原理、汇编与C51及接口技术(第2版)

    单片微机原理.汇编与C51及接口技术(第2版) 语音 编辑 锁定 讨论 上传视频 <单片微机原理.汇编与C51及接口技术(第2版)>是2013年清华大学出版社出版的图书,作者是朱定华.戴颖 ...

  3. SPI、I2C、UART三种串行总线的原理、区别及应用

    SPI协议解析,链接如下 https://blog.csdn.net/weiqifa0/article/details/82765892 I2C协议解析,链接如下 https://blog.csdn. ...

  4. 单片微型计算机系统应用和开发特点,单片微机原理及应用 徐春辉 电子工业出版社习题答案.doc...

    文档介绍: 单片微机原理及应用__徐春辉___电子工业出版社****题答案1.简述计算机的基本组成结构.单片微机原理及应用__徐春辉___电子工业出版社****题答案第1章1.简述计算机的基本组成结构 ...

  5. 单片微型计算机系统应用和开发特点,单片微机原理与应用(第2版)

    单片微机原理与应用(第2版) 语音 编辑 锁定 讨论 上传视频 <单片微机原理与应用(第2版)>是2019年7月机械工业出版社出版的图书,作者是罗印升. 书    名 单片微机原理与应用( ...

  6. 单片微型计算机系统应用和开发特点,单片微机原理及应用--徐春辉---电子工业出版社习题答案.doc...

    文档介绍: 1.简述计算机的基本组成结构.单片微机原理及应用--徐春辉---电子工业出版社****题答案第1章1.简述计算机的基本组成结构.答:计算机的基本组成结构由输入设备.输出设备.运算器.控制器 ...

  7. 单片微型计算机系统应用和开发特点,单片微机原理及应用 徐春辉第1.2.3章 习题答案...

    单片微机原理及应用 徐春辉第1.2.3章 习题答案 第1章 1.简述计算机的基本组成结构. 答:计算机的基本组成结构由输入设备.输出设备.运算器.控制器和存储器等五大部件构成. 2.简述单片微型计算机 ...

  8. AT24C02驱动程序,【I2C串行总线】的组成及工作原理

    AT24C02驱动程序 此程序运用到模块化编程,涉及到一下几个函数: 延时函数 起始信号函数 中止信号函数 发送字节函数 接收字节函数 写入数据函数 读取字节函数 通过对以上几类函数的应用实现对数据的 ...

  9. SPI、I2C、UART(即串口)三种串行总线详解

    以下内容均来源于网络资源的学习与整理,如有侵权请告知删除. 参考博客 几个串口协议学习整理 UART IIC SPI_mainn的博客-CSDN博客 SPI.I2C.UART三种串行总线的原理.区别及 ...

最新文章

  1. JS判断浏览器是否支持某一个CSS3属性
  2. shell脚本之统计进程数(ubuntu实测可用)
  3. 读《大道至简》第2章有感
  4. 经典C语言从入门到入坑必学最简单的代码
  5. 华为网络配置(ACL)
  6. win系统下非系统盘msdia.dll文件怎么处理
  7. 2016中国大数据市场研究报告
  8. 103.219.29杭州DNS常见的的5个网络安全威胁
  9. QEMU-KVM设备热插拔机制简析
  10. The Byzantine Generals Problem拜占庭将军问题理解
  11. python自动操作脚本_Python实现自动挂机脚本 | 沐雨浥尘
  12. Python写网络爬虫(三)
  13. 媒体 | 冒志鸿:理想nine percent最难寻
  14. C++对于文件的操作(4)——更改文件指定位置的数据(在新旧数据长度不一致的情况下)
  15. UPC 6617 Finite Encyclopedia of Integer Sequences(找规律)
  16. 手写数字识别实现课设cnsd博客_使用Tesseract轻松实现OCR字体识别
  17. SQL多表联合查询时采用字段模糊匹配
  18. java发送微信小程序模版通知
  19. python计算器小程序源码_python代码编写计算器小程序
  20. 谈谈PLC技术与自制PLC

热门文章

  1. fullcalendar 显示的时间间隔只有四十五分钟_Linux命令行监控程序,还能实时高亮显示差异,我就选它了...
  2. nodejs linux 32位下载安装,Linux32位怎么装nodejs?
  3. maven 如何看jar是否被修改_如何在线修改jar文件
  4. 【深度学习入门到精通系列】图像预处理—图像分块代码(matlab)
  5. python【数据结构与算法】一维前缀和与差分
  6. 全卷积神经网路【U-net项目实战】语义分割之U-Net详解
  7. Bottles Arrangement
  8. java packetmaster_TCP中间件_java_server
  9. mysql服务在tcp6_为什么 netstat 对某些服务只显示了 tcp6 监听端口
  10. Warning: Instance created by `useForm` is not connect to any Form element. Forget to pass `form` pro