当前位置:文档之家› 组态王与单片机协议_通用单片机通讯协议(ASCII)

组态王与单片机协议_通用单片机通讯协议(ASCII)

组态王与单片机通信协议1

一、通讯参数: 通讯参数包括数据位,停止位,波特率、校验方式。 数据位、停止位、波特率由单片机决定。组态王中的设定和单片机一致即可。校验方式参照“数据传输格式”中相关部分。 二、数据传输格式: 格式1、组态王发送地址请求格式:(此时检验位为1) ENQ Sta EOT CRC 格式2、单片机应答地址格式:(此时检验位为0) ACK Sta ETX CRC 格式3、组态王读数据请求格式:(此时检验位为0) ENQ R DataType DataAddr DataNum EOT CRC 格式4、单片机应答读数据格式(正确):(此时检验位为0) ACK DataLong Data….ETX CRC 格式5、单片机应答读数据格式(错误):(此时检验位为0) NAK ErrorCode ETX CRC 格式6、组态王写数据请求格式:(此时检验位为0) ENQ W DataType DataAddr Data….EOT CRC 格式7、单片机应答写数据格式(正确):(此时检验位为0) ACK ErrorCode ETX CRC 三、时序: 读数据: 组态王单片机

第一步:格式1 第二步:格式2 第三步:格式3 第四步:格式4或格式5 第五步:如果第四步单片机执行格式4, 结束。否则,执行格式1。 第六步:格式2 第七步:格式3 第八步:格式4或格式5 写数据: 组态王单片机 第一步:格式1 第二步:格式2 第三步:格式6 第四步:格式7 第五步:如果第四步单片机执行格式7 的ErrorCode=0,结束。否则,执行格 式1。 第六步:格式2 第七步:格式6 第八步:格式7 四、协议说明: 数据传输:所有数据均为16进制数 ENQ(头) H05 询问请求帧的开始代码 ACK(头) H06 确认ACK应答帧的开始代码NAK(头) H15 否认NAK应答帧的开始代码EOT(尾) H04 正文的结束请求帧的结束ASCII代码ETX(尾) H03 结束正文应答帧的结束ASCII代码 Sta::设备地址1字节 R:读标志1字节(0x52) W:写标志1字节(0x57)

C51单片机和电脑串口通信电路图

C51单片机和电脑串口通信电路图与源码 51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。 串口通讯的硬件电路如上图所示 在制作电路前我们先来看看要用的MAX232,这里我们不去具体讨论它,只要知道它是TTL和RS232电平相互转换的芯片和基本的引脚接线功能就行了。通常我会用两个小功率晶体管加少量的电路去替换MAX232,可以省一点,效果也不错,下图就是MAX232的基本接线图。

按图7-3加上MAX232就可以了。这大热天的拿烙铁焊焊,还真的是热气迫人来呀:P串口座用DB9的母头,这样就可以用买来的PC串口延长线进行和电脑相连接,也可以直接接到电脑com口上。

为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里我们利用一个免费的电脑串口调试软件。本串口软件在本网站https://www.doczj.com/doc/de11025864.html,可以找到 软件界面如上图,我们先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。串口选择为COM1,当然将网站提供的51单片机实验板的串口也要和电脑的COM1连接,将烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实验板的电源。

MCGS软件与MCS51单片机多机通信的几种方法

MCGS软件与MCS51单片机多机通信的几种方法 Multi-machineSerialCommunicationMethodbetweenConfigurationSoftwareMCG SandMCS51SCMLiaoningMechanicAndElectricityProfessionTechnologyAcademy InformationInstrumentliunaPostcode:118002[摘要]MCGS是目前较常见的一 种工业控制通用组态软件,可以利用它十分方便地构成了分布式系统的监控画面,动态显示控制设备的运行状态、实时、历时曲线和报表、上下限报警等。在该系统中对于由多个MCS51单片机控制的下位机仪表,其工作由MC Multi-machine Serial Communicat io n Method between Configuration Software MCGS and MCS51 SCM Liaoning Mechanic And Electricity Profession Technology Ac ad emy Information Instrument liuna Postcode:118002 [摘要] MCGS是目前较常见的一种工业控制通用组态软件,可以利用它十分方便地构成了分布式系统的监控画面,动态显示控制设备的运行状态、实时、历时曲线和报表、上下限报警等。在该系统中对于由多个MCS51单片机控制的下位机仪表,其工作由MCGS远程监控,充分利用计算机的资源进行各种管理。那么对于MCGS与MCS51单片机多机组成的系统如何设计其通信方式,本文介绍几种工程 中可用的通信方法。 [abstract] MCGS is the normal industry configuration software. We can use it to consist apicture of DCS system , it can display the device’s dynamic moving state, the moment 、history curves and reports、high and low alarm。In the system more MCS51 SCM is under control, the MCGS remote control the SCM, the method can use the pc’s source to manage the matter. So how to design multi-machine serial communication method between configuration software MCGS and MCS51 SCM, the article introduce some communication method. [keywords] Configuration Software VB SCM multi –machine Serial Communication Fuction OLE 一、引言 在工业控制领域中,分布式监控系统常常采用计算机机为上位机、单片机做下位机的系统,这是一种经济、可靠、真观、合理的控制方式。组态软件MCGS 是目前较常见的一种工业控制通用组态软件,是开发工程一非常有效的上位机工具软件,下位机采用单片机来开发的仪表,则具有计量精度高,功耗低,稳定可靠,成本低等特点。 组态软件MCGS与MCS51单片机的通迅方法一般有三种:一、单片机通过PLC、采集板卡、智能模块等设备实现通信;二、通过采用VB编制通信服务程序,利用串口通讯控件与单片机进行多机通信, 利用OLE功能在服务程序和MCGS之间进行数据交换,从而实行了MCGS与单片机的多机通信。;三、通过使用MCGS 嵌入版的串行口通迅函数进行PC机与单片机多机通信。前者实现简单,只需对

单片机串口通信协议程序

#include #include #define R55 101 #define RAA 202 #define RLEN 203 #define RDATA 104 #define RCH 105 //#define unsigned char gRecState=R55; unsigned char gRecLen; unsigned char gRecCount; unsigned char RecBuf[30]; unsigned char gValue; void isr_UART(void) interrupt 4 using 1 { unsigned char ch; unsigned char i; unsigned char temp; if (RI==1) { ch=SBUF; switch(gRecState) { case R55: // wait 0x55 if (ch==0x55) gRecState=RAA; break;

case RAA: if (ch==0xaa) gRecState=RLEN; else if (ch==0x55) gRecState=RAA; else gRecState=R55; break; case RLEN: gRecLen=ch; gRecCount=0; gRecState=RDATA; break; case RDATA: RecBuf[gRecCount]=ch; gRecCount++; if (gRecCount>=gRecLen) { gRecState=RCH; } break; case RCH: temp=0; for(i=0;i

组态王与单片机多机串口通信的设计

组态王与单片机多机串口通信的设计 发布: 2011-8-18 | 作者: —— | 来源:ranhaiyang| 查看: 300次| 用户关注: 1 引言随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,组态软件设计的监控系统逐步普及。现在组态软件繁多,比如KingVieW(组态王)、MCGS、WinCC等。KingView 软件基于Microsoft Windows XP,NT/2000操作系统.具有友好的人机操作界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器等实时通讯。由于在检测大量模拟量的工业现场使用PLC与组态软件通讯势必增加产品成 1 引言 随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,组态软件设计的监控系统逐步普及。现在组态软件繁多,比如KingVieW(组态王)、MCGS、WinCC 等。KingView软件基于Microsoft Windows XP,NT/2000操作系统.具有友好的人机操作界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器等实时通讯。由于在检测大量模拟量的工业现场使用PLC与组态软件通讯势必增加产品成本。而单片机接口丰富,与A/D转换模块组合可以完成相同的工作,并且系统可靠、成本低。 2 组态王与单片机的串口通讯方法 目前,组态王与单片机的通信多是通过动态数据交换(DDE)或通过自己开发通讯驱动程序完成。DDE是Windows平台上的一个完整的通信协议,组态王通过该协议与其他应用程序交换数据。但不可靠和非实时。而自己开发通讯驱动程序会带来设计困难,增加系统开发周期,可行性不高。组态王专门提供一种与单片机多机串口通信方法,可满足大多数系统需求。 3 PC机与单片机的硬件接口电路 图1为上位PC机与下位单片机80C51的连接电路。PC机与单片机本身都自带串行通讯接口,但由于在分布式系统中PC机与各单片机的分布不集中,不能利用RS-232通讯传输,只能改用RS-485。RS-485采用差分式传输信号,最大传输距离为1 219 m.最大传输速率为10 Mb/s.对同时出现的两条信号线A、B的干扰有较强的抑制能力。当两条线绞在一起时,被通信各种分布参数耦合过来的干扰信号可平均地分配到这两条线上,因此对RS-485的差分式传输线路而言,用双绞线可获得较强的抗干扰能力。RS-485采用二线

51单片机与PC串口通讯

目录 第1章需求分析 ............................................................................................................................ - 1 - 1.1课题名称 (1) 1.2任务 (1) 1.3要求 (1) 1.4设计思想 (1) 1.5课程设计环境 (1) 1.6设备运行环境 (2) 1.7我在本实验中完成的任务 (2) 第2章概要设计 ............................................................................................................................ - 2 - 2.1程序流程图 (2) 2.2设计方法及原理 (3) 第3章详细设计 ............................................................................................................................ - 3 - 3.1电路原理 (3) 3.1.1STC89C52芯片 ............................................................................................................. - 3 -3.2串口通信协议 (4) 3.3程序设计 (5) 3.3.1主程序模块 .................................................................................................................... - 5 - 3.3.2串口通讯模块 ................................................................................................................ - 6 - 3.3.3控制部分文件 ................................................................................................................ - 8 - 3.3.4公共部分模块 .............................................................................................................. - 11 -3.4电路搭建 (12) 3.4.1电路原理图 .................................................................................................................. - 12 -第4章上位机关键代码分析 ...................................................................................................... - 12 - 4.1打开串口操作 (12) 4.2后台线程处理串口程序 (15) 4.3程序运行界面 (18) 第5章课程设计总结与体会 ...................................................................................................... - 19 -第6章致谢 .................................................................................................................................. - 19 -参考文献........................................................................................................................................... - 19 -

组态王6.53与51单片机上课讲义

组态王6.53与51单 片机

基于51单片机的智能仪表与组态王的通讯 1242人阅读 | 0条评论发布于:2009-8-10 23:01:00 1、引言 随着工业自动化进程的不断加快,现场仪器、仪表、设备正不断向数字化、智能化和网络化方向推进。 单片机以其强大的现场数据处理能力,低廉的价格,紧凑的系统结构、高度的灵活性,微小的功耗等一系列优良特性成为构建智能化现场仪器仪表、设备的重要手段,现已广泛应用于工业测量和控制系统中。 组态王 Kingview工控组态软件以其工作性能稳定可靠、人机界面友善、硬件配置方便以及编程简单易用同时其驱动程序较为丰富,如支持DDE、板卡、OPC服务器、PLC、智能仪表、智能模块等;支持ActiveX控件、配方管理、数据库访问、网络功能、冗余功能。其扩展性强,配有加密锁,支持工程加密;可方便与管理计算机或控制计算机联网通信等优良特性,提供了对工业控制现场大量数据进行采集、监控、处理的解决方案。在各种工业控制领域中得到了大量使用[1-2]。 将单片机和组态王优良的特性结合起来,使它们实现“强强联合”,成为改造传统工业,提升企业技术竞争力的重要趋势。 目前许多测控系统是由通用机或工控机和底层单片机控制装置组成,通用机或工控机通过组态软件控制现场仪器设备,单片机采集数据和现场状态通过串行口传送到通用机或工控机,由组态软件对采集到的现场数据进行分析、存储或显示,并将命令和控制通过串行口传到单片机以监控现场设备的运转。可靠地实现它们之间的通讯是实现各种测控任务必须解决的首要问题。对于一些重要名家厂商的板卡和模块,一般组态王可直接提供为数据采集和控制所需的底层硬件设备的驱动程序。但对于绝大多数一般用户自行设计开发的采集、控制装置则没有驱动程序提供。因此实现它们“强强联合”,必须解决它们之间之间的通信问题。迄今为止,人们对单片机与组态王的通信问题进行了广泛的研究[1-2]。 目前,单片机与组态王的通讯方法有主要有3种[3]:①利用组态的驱动程序开发包进行驱动开发自己的通讯驱动程序,该方法适用于专业厂商;②通过动态数据交换(DDE)方式进行通讯,该方法带来一些额

基于51单片机的双机串行通信

河南机电高等专科学校2015-2016学年第1学期通信实训报告 系别:电子通信工程系 班级:xxxxxx 学号:13xxxxxxxxx 姓名:xxxxxxx 2015年12月

基于51单片机的双机串行通信 摘要:串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。 关键字:通信双机 一、总体设计 1设计目的 1.通过设计相关模块充分熟悉51单片机的最小系统的组成和原理; 2.通过软件仿真熟悉keil和proteus的配合使用; 3.通过软件编程熟悉51的C51编程规范; 4.通过实际的硬件电路搭设提高实际动手能力。 2.设计要求: 两片单片机之间进行串行通信,A机将0x06发送给B机,在B机的数码管上静态显示1,B机将0~f动态循环发送到A机,并在其数码管上显示。 3.设计方案: 软件部分,通过通信协议进行发送接收,A机先送0x06(B机数码管显示1)给B机(B机静态显示),当从机接收到后,向B机发送代表0-f的数码管编码数组。B收到0x06后就把数码表TAB[16]中的数据送给从机。 二、硬件设计

1.51单片机串行通信功能 计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。 51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下: 图1.AT89C51(52) (1)数据缓冲器(SBUF) 接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,

设计单片机通讯协议论文(非常经典)

如何设计单片机常用通信 协议论文

目录 1.自定义数据通信协议 (3) 2.上位机和下位机中的数据发送 (3) 3.下位机中的数据接收和协议解析 (4) 4.上位机中的数据接收和命令处理 (8) 5.总结 (9)

单片机通信协议现在大部分的仪器设备都要求能过通过上位机软件来操作,这样方便调试,利于操作。其中就涉及到通信的过程。在实际制作的几个设备中,笔者总结出了通信程序的通用写法,包括上位机端和下位机端等。 1.自定义数据通信协议 这里所说的数据协议是建立在物理层之上的通信数据包格式。所谓通信的物理层就是指我们通常所用到的RS232、RS485、红外、光纤、无线等等通信方式。在这个层面上, 底层软件提供两个基本的操作函数:发送一个字节数据、接收一个字节数据。所有的数据协议全部建立在这两个操作方法之上。通信中的数据往往以数据包的形式进行传送的,我们把这样的一个数据包称作为一帧数据。类似于网络通信中的TCPIP协议一般,比较可靠的通信协议往往包含有以下几个组成部分:帧头、地址信息、数据类型、数据长度、数据块、校验码、帧尾。 帧头和帧尾用于数据包完整性的判别,通常选择一定长度的固定字节组成,要求是在整个数据链中判别数据包的误码率越低越好。减小固定字节数据的匹配机会,也就是说使帧头和帧尾的特征字节在整个数据链中能够匹配的机会最小。通常有两种做法,一、减小特征字节的匹配几率。二、增加特征字节的长度。通常选取第一种方法的情况是整个数据链路中的数据不具有随即性,数据可预测,可以通过人为选择帧头和帧尾的特征字来避开,从而减小特征字节的匹配几率。使用第二种方法的情况更加通用,适合于数据随即的场合。通过增加特征字节的长度减小匹配几率,虽然不能够完全的避免匹配的情况,但可以使匹配几率大大减小,如果碰到匹配的情况也可以由校验码来进行检测,因此这种情况在绝大多说情况下比较可靠。 地址信息主要用于多机通信中,通过地址信息的不同来识别不同的通信终端。在一对多的通信系统中,可以只包含目的地址信息。同时包含源地址和目的地址则适用于多对多的通信系统。 数据类型、数据长度和数据块是主要的数据部分。数据类型可以标识后面紧接着的是命令还是数据。数据长度用于指示有效数据的个数。 校验码则用来检验数据的完整性和正确性。通常对数据类型、数据长度和数据块三个部分进行相关的运算得到。最简单的做法可是对数据段作累加和,复杂的也可以对数据进行CR C运算等等,可以根据运算速度、容错度等要求来选取。 2.上位机和下位机中的数据发送 物理通信层中提供了两个基本的操作函数,发送一个字节数据则为数据发送的基础。数据 包的发送即把数据包中的左右字节按照顺序一个一个的发送数据而已。当然发送的方

51单片机多机通信课程设计

《单片机应用与仿真训练》设计报告 单片机多机通信 姓名: 学号: 专业班级: 指导老师: 所在学院: 2011年7月5日

摘要 本设计是基于AT89S52单片机温度检测传输的三机通信系统,有三个单片机组成,其中一个作为主机(上位机),控制并负责接收来自从机1号和从机2号采集的数据信息,并显示在数码管上。由主机发送控制信息(通过按键控制),确定是接收来自想要得到各从机数据。从机1号和2号是数据采集模块,用来采集室内或室外温度信息,并通过通信协议传送给主机。为保证三机通信可靠性,通信口要有识别功能,51单片机串行口控制寄存器SCON中SM2位正是满足这一要求而设置的。当串行口以工作方式三工作时,接收和发送的信息都是11位数据,既包含SBUF寄存器传送的8位数据,还包括SCON中可编程第9位数据即TB8或RB8,主机可通过设定TB8是0或1,来区别发送的是地址还是数据。从机都先将SCON中的SM2设置为1,待主机发送地址信息,与本身的地址对照,如果是,则令从机SM2为0,准备接收主机信息并发送温度信息,如果不是,则继续等待。主机通过中断口接收数据,处理后显示在数码管上。此次设计由于只有一个18b20温度传感器,这里用三个任意的数据代替从机2采集温度数据,由于传输距离较短,这里不用MAX232,直接将主机的发送端接从机接收端,主机接收端连接从机发射端,仿真结果正常显示,实验结果正常。

目录 1概述 (1) 1.1设计概述 (1) 1.2多机通信基本原理 (1) 1.3 通信协议 (2) 2系统总体方案及硬件设计 (3) 2.1总体设计方案 (3) 2.2硬件电路设计 (3) 3软件设计 (7) 3.1控制流程图 (7) 3.2串行口采集步骤 (7) 3.3软件流程图 (8) PROTEUS仿真 (9) 课程设计体会 (11) 参考文献: (12) 附件1:主机A源程序代码 (13) 附件2:原理图 (24)

单片机协议

单片机通信协议 通讯参数数据传输格式数据通讯举例说明协议说明 一、通讯参数 通讯参数包括数据位,停止位,波特率、校验方式。 数据位、停止位、波特率由单片机决定。组态软件中的设定和单片机一致即可。校验方式为和校验。 二、数据传输格式 格式1、组态软件读数据命令格式: 格式2、单片机应答读数据格式(正确): 格式3、组态软件写数据命令格式: 格式4、组态软件位操作写数据命令格式: 格式5、单片机应答读数据格式 三、数据通讯举例说明 1、读数据 组态软件:发送读数据命令(格式1) 单片机:响应读数据命令 正确:返回(格式2) 2、写数据 组态软件:发送写数据命令(格式3)

组态软件:发送开关量写命令(格式4) 单片机:响应写数据命令 正确:返回(格式5) 四、协议说明 数据传输:所有数据均为16进制数 Sta: 设备地址1字节 R:读标志1字节(0x52) W:写标志1字节(0x57) B:位操作写标志1字节(0x42) DataType:需要交换的数据类型,1字节。1,字节;2,字,3,浮点型。 DataNum:要读取的数据的数量,1字节。 DataAddr:为数据偏移地址2字节,低字节在前,高字节在后。数据偏移地址以字节为单位。 Data:实际传输的数据,低字节在前,高字节在后。 DataLong: 单片机返回Data的字节数,2字节,低字节在前,高字节在后。 BitOffset:位操作写命令时,在字节中的位的偏移(0~7)。 LRC:为从第一个字节至LRC前的所有字节的异或值,1字节。 EndCode:

如果结束码EndCode为异常值,则该数据侦的数据无效。

51单片机串口通信,232通信,485通信,程序

51单片机串口通信,232通信,485通信,程序代码1:232通信 #include #define uchar unsigned char #define uint unsigned int uchar flag,a,i; uchar code table[]="i get"; void init() { TMOD=0X20; TH1=0XFD; TH0=0XFD; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; } void main() { init();

while(1) { if(flag==1) { ES=0; for(i=0;i<6;i++) { SBUF=table[i]; while(!TI); TI=0; } SBUF=a; while(!TI); TI=0; ES=1; flag=0; } } } void ser() interrupt 4 {

RI=0; a=SBUF; flag=1; } 代码2:485通信 #include #include"1602.h" #define uchar unsigned char #define uint unsigned int unsigned char flag,a,i; uchar code table[]="i get "; void init() { TMOD=0X20; TH1=0Xfd; TL1=0Xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1;

} void main() { init_1602(); init(); while(1) { if(flag==1) { display(0,a); } } } void ser() interrupt 4 { RI=0; a=SBUF; flag=1; }

基于51单片机的双机串行通信课程设计 1000110061

基于AT89C51单片机的双机串行通信设计 姓名:杨应伟 学号:100110061 专业:机械设计制造及其制动化 班级:机电二班

前言 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。 在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。 在通信过程中,使用通信协议进行通信。在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。 串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。

通用单片机通讯协议ascii

组态王与单片机协议 1.通讯口设置: 通讯方式:RS-232,RS-485,RS-422均可。 波特率:由单片机决定(2400,4800,9600and19200bps)。 字节数据格式:由单片机决定。 注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中的通讯参数一致 2.在组态王中定义设备地址的格式 格式:##.# 前面的两个字符是设备地址,范围为0-255,此地址为单片机的地址,由单片机中的程序决定; 后面的一个字符是用户设定是否打包,“0”为不打包、“1”为打包,用户一旦在定义设备时确定了打包,组态王将处理读下位机变量时数据打包的工作。 3.在组态王中定义的寄存器格式 注意:在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,UINT,FLOAT)的不同分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内不可交叉定义不同数据类型的变量。为提高通讯速度建议用户使用连续的数据区。 例如, 1、在单片机中定义从地址0开始的数据类型为BYTE型的变量: 则在组态王中定义相应的变量的寄存器为X0、X1、X2、X3、X4。。。。。。。。,数据类型为BYTE,每个变量占一个字节 2、在单片机中定义从地址100开始的数据类型为UINT型的变量: 则在组态王中定义相应的变量的寄存器为X100、X102、X104、X106、X108。。。。。。。。,数据类型UINT,每个变量占两个字节

3、在单片机中定义从地址200开始的数据类型为FLOAT 型的变量: 则在组态王中定义相应的变量的寄存器为X200、X20 4、X208、X212。。。。。。。, 数据类型FLOAT ,每个变量占四个字节 3.组态王与单片机通讯的命令格式: 字头:1字节1个ASCII 码,40H 设备地址: 1字节2个ASCII 码,0—255(即0---0x0ffH ) 标志:1字节2个ASCII 码,bit0~bit7, bit0= 0:读,bit0= 1:写。 bit1= 0:不打包。 bit3bit2 = 00,数据类型为字节。 bit3bit2 = 01,数据类型为字。 bit3bit2 = 1x,数据类型为浮点数。 数据地址: 2字节4个ASCII 码,0x0000~0xffff 数据字节数:1字节2个ASCII 码,1—100,实际读写的数据的字节数。 数据…:为实际的数据转换为ASCII 码,个数为字节数乘2。 异或:异或从设备地址到异或字节前,异或值转换成2个ASCII 码 CR :0x0d 。 通讯尝试恢复命令(COMERROR ),请求地址为0的一个BYTE 数据 3.1.上位机发送读命令 下位机应答:若正常: 若不正常: 100,数据类型为字节,不打包。组态王所 若正确:

51单片机与蓝牙串口通信程序

#include #include #include #include "LCD1602.h" #include "matrix_key.h" #define uint unsigned int #define uchar unsigned char #define Nop() _nop_() sbit P10 = P1^0; /*定义独立对地按键端口*/ sbit P11 = P1^1; /*定义独立对地按键端口*/ sbit P12 = P1^2; /*定义独立对地按键端口*/ sbit P13 = P1^3; /*定义独立对地按键端口*/ //shift键 bit shift_flag; bit call_flag ; bit CallIn_flag=0; bit reci_flag; bit reci_flag1; sbit sled_en_port = P3^6; /*定义数码管数据锁存器控制端口*/ sbit led_en_port = P2^5; /*定义发光二极管数据锁存器控制端口*/ sbit ds1302_en_port = P2^2; /*定义时钟的选片脚*/ uchar CallIn_Num[15];//={"00000000000"}; uchar CallOut_Num[15]={" "}; uchar m=0; //拨号指针 uchar temp='?'; uchar code clr[16]={" "}; uchar code lcd_table[16] = {"Ky: Cm: Re: "}; //uchar send_buff[15]; uchar reci_buff[15]={" "}; uchar z; //接收缓冲区指针 uchar time;//定时器中断次数 uchar code mun_to_char[]={"0123456789ABCDEF"}; /*1MS为单位的延时程序*/ void init(); void send(uchar cc); void send_f(uchar ccc); void interrupt_pro(); void key_pro(); void call_out();

组态王与单片机的通信

组态王与单片机的通信与设计 前言本文主要是解决装有组态王的PC机与单片机的通信问题,这里选择通过计算机的COM1口进行串行通信。单片机和PC机的串行通行一般采用RS-232、RS-422或RS-485总线标准接口,也有采用非标准的20mA电流环的。为保证通信的可靠,在选择接口时必须注意:(1)通信的速率;(2)通信距离:(3)抗干扰能力;(4)组网方式,既可以保证正常通信时的最大通信端口数量。这里采用RS-232接口与单片机通信的方法。由于两者间的电平规范不一致,实现两者间的通信要解决接口电路的电平转换问题。 正文 选题背景随着单片机和微机技术的不断发展,单片机的应用也从独立的单机向网络发展,由PC机和多台单片机构成的多级网络测控系统已成为单片机技术发展的一个方向。在一个大型的应用系统中,通常由单片机完成数据的采集和上传,后台则通过PC机对数据进行分析并处理,复杂的还要建立数据库形成网络,二者的结合,充分发挥了单片机在实时数据采集和微机对图形处理、显示以及数据库管理上的优点,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。 随着微电子技术、计算机控制技术、工业以太网技术及现场总线技术的发展,作为用户无需改变运行程序原代码的软件平台工具——工控组态软件日渐成熟。由于工控组态软件在实现工业控制的过程中免去了大量烦琐的编程工作,解决了长期以来控制工程人员缺乏计算机专业知识与计算机专业人员缺乏控制操作技术和经验的矛盾,极大地提高了自动化工程的工作效率。近年来,工控组态软件在中小型工业过程控制工程、工业自动化工程中越来越受到欢迎。不仅如此,工控组态软件还在配电自动化、智能楼宇、农业自动化、能源监测等领域也逐步展示了其独特的优势。 单片机控制系统以其高性能价格比、稳定、易于实现等特点而被广泛使用,但他难以实现动态复杂的图形监控界面;而组态王软件具有强大丰富的监控界面设计功能,却难以实现复杂的控制算法,而单片机则难以实现动态复杂的图形监控界面,若采用以单片机为下位机,以装有组态王的PC极为上位机的控制方式,将彻底改变原来单片机控制系统的单调、简单的控制界面的缺陷,进一步推动单片机控制方式的广泛应用。 在这个设计中有以下问题待以解决:1、TTL/RS232电平转换及其接口电路的处理。2、由于组态王接收的是数据的ASCII码,因此要实现数据与它所对应的ASCII码的转换。3、组态王监控界面的设计。 设计要求 设计组态王监控界面,编写单片机发送接受程序以实现组态王与单片机两者间的通信。 方案论证 过程论证

串口通信-多机通信系统 - 单片机

目录 一、题目要求与功能分析 (1) 1.1题目要求 (1) 1.2功能及整体模块分析 (1) 二方案论证 (2) 2.1设计目的 (2) 2.2设计思路 (2) 2.2.1原理分析和讨论 (2) 2.2.2题设分析 (3) 三、电路设计 (5) 3.1 整体功能框架设计 (5) 3.2 硬件电路设计 (6) 3.2.1 主机硬件电路设计 (7) 3.2.2 从机硬件电路设计 (10) 3.3软件电路设计 (12) 3.3.1 协议设计 (12) 3.3.2 主机程序流程图设计 (13) 3.3.3 从机程序流程图设计 (14) 四系统的调试与实现 (16) 4.1主机模块功能调试 (16) 4.2从机模块调试 (16) 4.3整体设计功能调试 (16) 五总结与体会 (18) 参考文献 (18) 附录 (19)

一、题目要求与功能分析 1.1题目要求 本小组的试验题目如下: 一、任务: 设计实现多台单片机系统之间的串行通信 二、基本要求(难度系数0.8): (1)设计一个主从式多机通信系统,包含1台主机和3台从机,主机和从机全部为单片机; (2)选择合适总线接口芯片,正确连接主机和从机; (3)编程实现分布式数据采集功能,主机可以获取各分机当前AD转换结果,并显示。 三、发挥部分: (1)完善通信功能。(根据完成情况加分,上限+0.2) 1.2功能及整体模块分析 随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,多机通信系统设计的监控系统逐步普及。此多机通信系统具有友好的人机操作界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器等实时通讯。在检测大量模拟量的工业现场使用相似的多机通讯系统;单片机接口丰富,与A/D转换模块组合可以完成相同的工作,并且系统可靠、成本低。 本次实验的目的是就是应用单片机的串口通信功能实现一个分布式采集系统。整个系统中包含一片主机和三片从机,主机的任务是实现对三片从机的AD 转换结果的采集并在数码管上显示之。这样从硬件的角度上将整个系统分为两个模块—主机模块和从机模块。主机模块中包含单片机模块、数码管显示子模块和串口电平转换子模块,从机模块则包括单片机子模块、AD转换子模块和串口电平转换子模块。就本次实验而言硬件电路的设计难点在于串口电平转换芯片MAX485的连接,而软件的设计在于串口通信协议的设定及其相互通信的过程。

基于51单片机的多机通信系统设计

单片机多机通信系统 一、引言 随着单片机技术的不断发展,单片机的应用已经从单机向多机互联化方向发展。单片机在实时数据采集和数据处理方面,有着成本低、能满足一般要求、开发周期短等优点,其在智能家居、计算机的网络通信与数据传输、工业控制自动化等方面有着广泛的应用。 本系统是面向智能家居应用而设计的。在初期,采用红外无线通信方式,其传输距离短,适于一般家庭应用,且成本相对较低;待方案成熟、成本允许,可以改用GSM无线通信方式。 二、系统原理及方案设计 1 、系统框架介绍 本系统为基于51单片机的多机红外无线通信系统,由三个51单片机模块组成。其中一个作为主机(即上位机),负责接收来自从机1(即下位机)采集的数据信息,以及向从机2(即下位机)发送控制信息。从机1是数据采集模块,采集温度、光强等室内数据,并将其发送给主机。主机经分析处理,作出相应判断,并给从机2发送控制信息,使由从机2控制的电机作出相应反应,调节室内环境状况。 系统总体框图如下图1所示,图2为红外收发模块简图:

图1 系统总体框图 图2 红外收发模块简图 2 、多机通信原理介绍 在多机通信系统中,要保证主机与从机间可靠的通信,必须要让通信接口具有识别功能,51单片机串行口控制寄存器SCON中的控制位SM2正是为了满足这一要求而设置的。当串行口以方式2或方式3工作时,发送或接收的每一帧信息都是11位的,其中除了包含SBUF 寄存器传送的8位数据之外,还包含一个可编程的第9位数据TB8或RB8。主机可以通过对TB8赋予1或0,来区别发送的是数据帧还是地址帧。 根据串行口接收有效条件可知,若从机的SCON控制位SM2为1,则当接收的是地址帧时,接收数据将被装入SBUF并将RI标志置1,

相关主题
文本预览
相关文档 最新文档