串口通讯

前言

计算机是一种现代化的信息处理工具,它对信息进行处理并提供结果,其结果(输出)取决于所接收的信息(输入)及相应的处理算法。
随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。
通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。

一.通讯理论

串行通信和并行通信

并行通信:将数据字节的各位用多条数据线同时进行传送。
串行通信:将数据字节分成一位一位的形式在一条传输线上逐个地传送。

串行通信

串行通信又分为异步通信和同步通信。

同步通信:

同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。

发送方对接收方的同步可以通过两种方法实现:外同步和自同步。

外同步:外同步法使指由发送端发送专门的同步信息(常被称为导频),接收端把这个导频提取出来作为同步信号的方法。外同步法主要在载波同步及位同步系统中应用。
自同步:发送端不发送专门的同步信息,接收端设法从接收到的信号中提取同步信息的方法。效率高,但收端设备相对外同步法较为复杂。

异步通信:

异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。
异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“位间隔”的整数倍。

异步通信特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2-3位用于起止位,各帧之间还有间隔,因此传输效率不高。

串行通信的传输方向:

单工:数据传输仅能沿一个方向,不能实现反向传输。
半双工:数据传输可以沿两个方向,但需要分时进行。
全双工:是指数据可以同时进行双向传输。

串行通信的错误校验:

1.奇偶校验
2.代码和校验
3.循环冗余校验

串行通信的接口标准:

一,RS-232C:RS-232C是EIA(美国电子工业协会)1969年修订RS-232C标准。RS-232C定义了数据终端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。

1.机械特性
RS-232C接口规定使用25针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。(阳头)

2.功能特性

3.过程特性
过程特性规定了信号之间的时序关系,以便正确地接收和发送数据。

远程通信连接:

近程通信连接:

RS-232C电平与TTL电平转换驱动电路:

4.采用RS-232C接口存在的问题:
a.传输距离短,传输速率低
RS-232C总线标准受电容允许值约束,使用时传输距离一般不要超过15米(线路条件好时也不超过几十米)。最高传输速率为20Kbps

b.有电平偏移
RS-232C总线标准要i去收发双方共地。通信距离较大时,收发双方的地电位差别较大,在信号地上将有比较大的地电流并产生压降。

c.抗干扰能力差
RS-232C在电平转换时采用单端输入输出,在传输过程中当干扰和噪声混在正常的信号中,为了提高信噪比,RS-232C总线标准不得不采用比较大的电压摆幅。

二,RS-422A接口

RS-422A输出驱动器为双端平衡驱动器。如果其中一条线为逻辑“1”状态,另一条线就为逻辑“0”,比采用单端不平衡驱动对电压的放大倍数大一倍。差分电路能从地线干扰中拾取有效信号,差分接收器可以分辨200mV以上的电位差。若传输过程中混入了干扰和噪声,由于差分放大器的作用,可使干扰和噪声相互抵消,因此可以避免或大大减弱地线干扰和电磁干扰的影响。RS-422A传输速率(90Kbps)时,传输距离可达1200米。

三,RS-485接口

RS-485是RS-422A的变型:RS-422A用于全双工,而RS-485则用于半双工。RS-485是一种多发送器标准,在通信线路上最多可以使用32对差分驱动器/接收器。如果在一个网络中连接的设备超过32个,还可以使用中继器。
RS-485的信号传输采用两线间的电压来表示逻辑1和逻辑。由于发送方需要两根传输线,接收方也需要两根传输线。传输线采用差分信道,所以它的干扰抑制性极好,又因为它的阻抗低,无接地问题,所以传输距离可达1200米,传输速率可达1Mbps。
RS-485是一点对多点的通信接口,一般采用双绞线的结构。普通的PC机一般不带RS485接口,因此要使用RS-232C/RS-485转换器。对于单片机可以通过芯片MAX485来完成TTL/RS-485转换器。对于单片机可以通过芯片MAX485来完成TTL.RS-485的电平转换。在计算机和单片机组成的RS-485通信系统中,下位机由单片机系统组成,上位机为普通的PC机,负责监控下位机的运行状态,并对其状态信息进行集中处理,以图文方式显示下位机的工作状态以及工业现场被控设备的工作状况。系统中各节点(包括上位机)的识别是通过设置不同的站地址来实现的。

二.串口通讯实现

1.打开串口;
2.设置串口模式;
3.设置波特率;
4.运用串口;

初始化部分:

晶振频率是11.0592MHz;
定时器1设置为模式2,8位自动重装
打开串口,设置模式1;
波特率算法:

     TMOD=0x21; //定时器1设置为模式2,8位自动重装SCON=0x50;   //串口设置成模式1,8位UART ,波特率可变PCON=0x80;  //----SMOD=1;//串行通信波特率加倍TH1=0xFA;  //晶振频率是11.0592MHz时,设置串行通信波特率为9600bit/s。TL1=0xFA;ES=1;      //打开串口TR1=1;       //打开定时器1

串口中断设置:

void SerialPortInterrupt(void)interrupt 4
{u8 numData=0; if(RI){//receiveData=SBUF;//出去接收到的数据DDCBuffer[numData]=SBUF;
//  numData++;RI = 0;//清除接收中断标志?}SBUF=DDCBuffer[numData];//将接收到的数据放入到发送寄存器while(!TI);            //等待发送数据完成TI=0;                        //清除发送完成标志位
}

结果:

51单片机串口通讯介绍和实现相关推荐

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

    51单片机串口通讯 +Proteus仿真实验 ✨注意不要使用Proteus 8 Professional 8.13版本串口通信会出错.

  2. 51单片机串口通讯c语言程序,如何使用51单片机实现串口通信

    描述 STC51单片机一般带有1个串口,有的带有2个串口,串口一般用于下载程序和串口通信.串口通信特别适合控制设备,所以工控机的电脑上一般都带有串口. 51单片机的串口引脚为P3.0引脚与P3.1引脚 ...

  3. 51单片机串口通讯接收一串字符串

    在51单片机中,我们使用上下位机时,我们通常会发送一串字符串,将它作为信号发给单片机处理. 因为串口通信时,发送信息是以一个个字符的形式发送过来的,所以接收的就是一个个字符,通常我们是一个字符数组保存 ...

  4. 51单片机串口通讯详解

    串口,作为单片机程序开发中最常用.最方便,也是应用最广泛的程序调试方法:无论是作为调试工具,打印出调试信息,还是对功能模块进行通信,串口是每个单片机开发人员最常用的单片机外设. 由于大部分51单片机不 ...

  5. c语言选择夹答案,单片机串口通讯制作说明

    单片机串口通讯制作说明 * 该例程针对"TX-1C"型单片机实验板为例进行详解 我们举例采用比较传统的51系列单片机为例,芯片选用STC89C52RC,首先我们需要明确一点,目前高 ...

  6. 51单片机蓝牙通讯精准控制步进电机简易教学

    51单片机蓝牙通讯精准控制步进电机 1.蓝牙模块 本次用到的蓝牙模块为HC-05,关于HC-05怎么配置的文章已经写过很多,这里就不一一介绍了,我下面具体讲一些关于单片机蓝牙数据的收发简单快捷的方法实 ...

  7. 中移4G模块-ML302-OpenCpu开发-51单片机串口转I2C

    B站:https://space.bilibili.com/309103931 中移4G模块-ML302专栏:https://blog.csdn.net/qq_33259323/category_10 ...

  8. 如何高效地使用51单片机串口输入输出

    51单片机一般使用串口的方法都是这样的 #include<reg52.h> #define uint unsigned int void UART_Init(); uint num ; / ...

  9. 51单片机串口通信模板_深入理解51单片机串口通信及通信实例

    串口通信的原理 串口通信(SerialCommunications)的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一 ...

最新文章

  1. Ubuntu14.04 64位上配置终端显示git分支名称
  2. 树的基本操作的非递归实现
  3. php kafka 日志系统,kafka-PHP客户端库(Composer)
  4. 利用github-pages建立个人博客
  5. Java 接口(interface)的用途和好处
  6. 使用Visual Studio Code调试运行在SAP云平台上处于运行状态的nodejs应用
  7. sql server update触发器_SQL Server 触发器
  8. matlab中文帮助_拿走不谢,simulink,stateflow,ecoder帮助手册中英对照版首发
  9. join为什么每个字符都分割了 js_为什么 webpack4 默认支持 ES6 语法的压缩?
  10. 安装配置管理 之 安装和配置 JPackage Java
  11. 支持蓝牙的模拟器_横竖都能玩的小鸡G6,蓝牙连接尽情享受手游乐趣
  12. 一般纳税人与小规模纳税人有什么区别
  13. 【解决使用webpack自动打包功能 ,报错 Content not from webpack is served from ‘ ‘ 且访问http://localhost:8080/ 为空 问题 】
  14. 中国大数据行业发展趋势
  15. error: ‘xcb_generic_event_t’ was not declared in this scope
  16. h5 js 打开微信客户端
  17. 《速通深度学习数学基础》
  18. JAVA面试题解惑系列(十)——话说多线程
  19. 微信相关账号需要哪些资质
  20. 使用Charles和iPhone进行微信小程序抓包详解

热门文章

  1. pymy 监控mysql_用Python对MySQL同步状态进行监控_MySQL
  2. 维基百科:数据库下载
  3. 国家二级c语言程序设计技巧,计算机等级考试二级C语言程序设计技巧.doc
  4. 选择大于努力,但是你不知道后半句
  5. 华为鸿蒙a股,来了!华为“鸿蒙”,这一次它会给A股带来哪些惊喜
  6. 从移动电子商务看移动社交的发展
  7. 计算机高新办公软件应用考试,全国计算机信息高新技术考试办公软件中级操作员考试题库...
  8. SQL Server 发展简史
  9. spring @Postconstruct执行时机
  10. QT5.12+opencv4.0.1 Cielab空间 像素颜色信息