0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

51单片机串口通讯-1

汽车电子技术 来源:嵌入式悦翔园 作者: JamesBin 2023-02-17 14:43 次阅读

计算机与外界的信息传输常被称为通信,基本通信方式有并行通信和串行通信两种。

一、概述

并行通信方式指数据的各个二进制位在不同的数据线上同时传输。并行通信传输速度快,效率高,但所需的数据线多,成本高,抗干扰能力较差,适用于近距离传输。

图片

串行通信方式指将数据拆分成多个二进制位,逐一的在同一条数据线上输出。串行通信虽然传输速度较慢,效率较低,但所需的数据线少、硬件电路简单、抗干扰能力强,且适用于远距离数据传输。

图片

串行通信有同步通信和异步通信两种基本的通信方式。

(1)同步通信

同步通信是一种连续的串行传输数据的通信方式,待发送的若干个字符数据构成一个数据块,在该数据块前部添加1~2个同步字符,在数据块的末尾添加校验信息,以此种方式构成数据帧,以数据帧为单位进行串行通信。

图片

(2)异步通信

每一帧由四部分构成,分别是起始位、数据位、校验位和停止位。起始位是数据开始传送的标志,用逻辑0表示;数据位紧跟起始位,通常是5~8位二进制位;校验位用于校验数据位是否发送正确,可以选择奇校验、偶校验或者不使用校验位。帧和帧之间可以连续,或者加入任意的空闲位,空闲位用逻辑1表示。

按照数据传送方向,串行通信可以分为三个种类,分别是单工、半双工和全双工。

单工:通信双方一方固定为发送方,另一方固定为接收方,数据只能是单向传输;

半双工:通信双方只使用一根数据线,每一方都有发送器和接收器,可以在两个方向上传送,但通信双方不能同时接收或发送数据,只能交替进行;

全双工:通信双方使用两根数据线,分别用于不同方向的数据传输,通信双方能够同时收发数据。

图片

二、波特率

波特率是数据传输速率,指每秒钟传送二进制位的个数,单位为bit/s。

波特率是串行通信的重要指标,波特率越高,串口数据传输速度越快。

假如设定波特率为9600bit/s,而数据帧由1位起始位、8位数据位、1位停止位构成,则串口每秒钟最多传送9600/(1+8+1)=960个字节。

图片

如果两个单片机相距较短(在1.5m之内),串口可直接相连

图片

如双机通信距离在1.5m~15m之间时,且传输速率不高,可用RS-232C标准接口实现点对点的双机通信 。

图片

RS-422A标准:差分传输,共4线,全双工,最大传输率为10Mbit/s,最大传输距离可达1219m。

图片

RS-485是RS-422A的变型。区别:RS-422A为全双工,采用两对平衡差分信号线;RS-485为半双工,采用一对平衡差分信号线。RS-485对于多站互连是十分方便的,很容易实现多机通信。RS-485允许最多并联32台驱动器和32台接收器。

图片

三、串口结构

8051单片机的串行口主要由数据发送缓冲器SBUF、发送控制器、输出控制门、数据接收缓冲器SBUF、接收控制器、输入移位寄存器、串行口控制寄存器SCON构成。

图片

图片

有两个独立的接收、发送缓冲器SBUF,可同时发送、接收数据。4两个缓冲器共用一个特殊功能寄存器字节地址(99H)。

两个控制寄存器SCON和PCON。

SCON用于设定串口通信的工作方式、接收/发送控制以及串口工作状态指示。SCON的字节地址为0x98,可以进行位寻址,格式如下:

图片

SM0、SM1:串行通信工作方式选择位。SM0和SM1共4种组合,对应4中工作方式,如下表所示,其中fosc为晶振频率。

图片

图片

SM2:多机通信控制位,主要用于工作方式2和工作方式3。当串行口在多机通信模式下接收数据时:

当SM2=0时,将接收到的8位数据送入到SBUF中,并产生中断请求。

若设置SM2=1,且RB8为0时,不接收主机发来的数据;只有当RB8为1时,才产生中断请求,并将接收到的前8位数据送入SBUF。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134396
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84533
  • 信息传输
    +关注

    关注

    1

    文章

    40

    浏览量

    9115
收藏 人收藏

    评论

    相关推荐

    51单片机串口通讯设计

    51单片机串口通讯设计 通信协议: 第1字节,MSB为1,为第1字节标志,第2字节,MSB为0,为非第一字节标志,其余类推……,最后一个
    发表于 03-18 16:58 3303次阅读

    C51单片机串口通讯的硬件电路图

    51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行
    发表于 11-17 21:06 1.8w次阅读

    PC机与多个51单片机串口通讯

    本文描述PC机与多个51单片机串口通讯,在多机通讯中,要保证主机与所选择的从机实现可靠的通信,必须保证
    发表于 04-14 16:37 9次下载

    proteus仿真51单片机串口通讯

    proteus仿真51单片机串口通讯,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-17 14:50 71次下载

    51单片机串口通讯初始化程序及及特殊功能寄存器设置的资料说明

    本文档的主要内容详细介绍的是51单片机串口通讯初始化程序及及特殊功能寄存器设置的资料说明免费下载。
    发表于 08-21 17:31 6次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b>初始化程序及及特殊功能寄存器设置的资料说明

    51单片机串口通讯详解

    串口,作为单片机程序开发中最常用、最方便,也是应用最广泛的程序调试方法;无论是作为调试工具,打印出调试信息,还是对功能模块进行通信,串口是每个单片机开发人员最常用的
    发表于 11-11 17:06 15次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b>详解

    51单片机串口通讯例程(汇编)

    ORG 0000H LJMP INIT ORG 0023H ;窗口中断入口 LJMP CON INIT: ;配置中断 MOV SCON,#0X50 ANL PCON,#00H MOV TMOD,#0X20 MOV TL1,#0XFD MOV TH1,#0XFD SETB TR1 SETB ES SETB EALOOP: ;循环 LJMP LOOPCON: MOV P2,SBUF ;将接收到的数据写入P2 CPL RI ;标..
    发表于 11-12 13:21 0次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b>例程(汇编)

    基于Proteus仿真51单片机串口通讯实验

    一、实验目的 1.掌握单片机串行口通信的程序设计,及简易三线式通讯的方法。2.了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。3.学习串口
    发表于 11-15 13:51 44次下载
    基于Proteus仿真<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b>实验

    51单片机串口通讯介绍和实现

    串口通讯
    发表于 11-21 20:21 8次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b>介绍和实现

    51单片机串口通讯实验2+Proteus仿真

    51单片机串口通讯实验2+Proteus仿真
    发表于 11-23 16:36 11次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b>实验2+Proteus仿真

    51单片机串口通讯 +Proteus仿真实验

    51单片机串口通讯 +Proteus仿真实验
    发表于 11-23 16:36 56次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b> +Proteus仿真实验

    使用proteus实现51单片机串口通讯仿真

    1. 程序需求:通过上位机控制单片机的八个LED灯的开关2. 开发中用到的软件pycharm : 开发上位机VSPD : 虚拟串口Proteus : 仿真电路keil C51 : 写51
    发表于 11-23 16:36 27次下载
    使用proteus实现<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>串口</b><b class='flag-5'>通讯</b>仿真

    51单片机串口通讯仿真实验

    实验目的 1.掌握单片机串行口通信的程序设计,及简易三线式通讯的方法。 2.了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。 3.学习串口
    发表于 06-07 09:15 5次下载

    基于51单片机串口通讯测试设计资料源程序文件

    基于51单片机串口通讯测试设计资料源程序文件
    发表于 04-26 18:19 1次下载

    基于89C51单片机串口通讯中断应用12M晶振波特率2400源程序

    基于89C51单片机串口通讯中断应用12M晶振 波特率2400源程序
    发表于 05-12 17:28 0次下载