历史上的今天

今天是:2026年03月14日(星期六)

2023年03月14日 | 以89C51单片机和PC机为核心的远程数据采集多机系统设计

发布者:云淡雅致 来源: elecfans关键字:89C51  单片机  PC机 手机看文章 扫描二维码
随时随地手机看文章

工业生产过程中常常需要对温度、湿度、压力、流量等各种工艺参数随时进行检测和监控,同时还要将检测到的数据及时传递给上位机,以实现对参数的随机查询, 对信息的存储与处理,及时调整控制方案,提高生产效率和产品质量。为此,笔者以89C51单片机作为主控制器设计了一种简单易行的远程数据采集系统。


1 系统硬件电路的设计

远程数据采集系统框图,由两部分组成:一是基于89C51实现的现场数据采集电路,二是PC机与89C51之间的远程通讯电路。

1.1 89C51数据采集系统

数据采集系统的硬件原理如图1所示。

以89C51单片机和PC机为核心的远程数据采集多机系统设计

该系统选用89C51单片机作为主控制器,此芯片与8051完全兼容,且内部带有4 KB闪速可编程、可擦除PEROM,工作时钟可高达24 MHz.


MAX691主要用来实现掉电保护,同时起到“看门狗”的作用。系统电源突然断电时,MAX691PF0端及时向89C51INT0申请中断,保护采集 的数据不丢失。若软件执行中出现故障,89C51P3.2经一定时间间隔没有脉冲输出时,MAX691将起“看门狗”的作用,使RST复位有效,重新启动系统。


数据存储器6116主要作为数据传输的缓冲,显示电路由8155完成,PA口作键盘输入,PB口作字形显示,PC口作控制线用。8155内部256 BRAM用于存放8通道采集到的原始数据。


数据采集与转换由12位A/D转换器ICL7109来完成。7109是高精度、低噪声、低漂移的双积分模数转换器,其内部带14位锁存器和14位三态输出 寄存器,具有较强的接口处理能力。设定7109为直接接口方式。这种工作方式下,7109可连续进行数据的转换,转换结束时由STATUS发出转换结束信 号送至单片机INT0请求中断。89C51将转换后的数据分两次先低8位后高4位读取。为了实现对8个通道的参数测量,同时尽量降低成本,简化系统配置, 设计了利用模拟多路开关CD4051进行通道的切换,共用一片7109由89C51控制,分时完成所有通道的采样与转换。


1.2 远程通讯电路

由于是远程数据采集系统,对数据传输的距离提出了较高的要求。PC机与单片机232C串行口直接相连,传输距离只有十几米,无法满足系统要求。为此采用 了一个RS232C到RS422A的转换装置,PC机与89C51间接相连,以RS422A方式进行通讯,大大增加了传输距离。


PC机与89C51串行通讯电路框图如图2所示。

以89C51单片机和PC机为核心的远程数据采集多机系统设计

RS422A是一种以平衡方式传输的标准,可双端发送、双端接收。发送端和接收端分别采用平衡发送及差动接收。通过前者把逻辑电平变成电位差,完成始端 信息传送;通过后者把电位差变成逻辑电平,完成终端信息接收。并且RS422A采用双线传输,大大提高了抗干扰能力。最大传输速率可达10 Mb/s(传输距离15 m时),传输速率降至90 kb/s时,最大传输距离可达1200 m,这能充分满足系统的“远程”要求。


2 软件设计

软件设计采用模块化程序设计方法,按功能分为4个模块,其中数据通信模块又分为单片机串行通信程序和PC机通信程序,除与PC机通信程序使用VC++编程,其余均采用汇编语言编制。


2.1 主程序模块

主程序主要完成对系统硬件电路的初始化,设置堆栈指针、串行口、T0、T1工作方式、8155显示指示符,扫描键盘获取键值并进行散转处理。主程序模块负责管理和调用各子模块。


2.2 数据采集模块

该模块完成对数据的采集及处理,中间调用了数字滤波子程序、数据转换子程序、字形转换及显示子程序等。


系统数据采样模块框图如图3所示。

以89C51单片机和PC机为核心的远程数据采集多机系统设计

系统上电即执行初始化程序。当操作员按下采样键时执行数据采样模块。从00~07通道间隔每秒采集每个通道的5个值,调用滤波子程序得到准确值,再通过 数据转换子程序分别送到6116数据区及8155RAM区,通过字形显示子程序显示各通道检测的数据。每采集完一个周期后,89C51单片机通过 MAX232接口PC机查询有无通信命令,有则响应,无则继续采集数据。该程序一直按框图流程循环执行,直至意外掉电或强迫复位后,才能终止数据采集。


2.3 故障诊断模块

数据采集过程中,若出现故障会直接影响采样结果,所得到的错误数据不允许存档,并应该记录故障原因及持续时间。故障诊断模块主要是89C51外围芯片 MAX691的电源监控以及掉电保护电路检测到硬件故障后向单片机发出中断请求INT0所执行的外部中断服务子程序。该程序主要功能是在累加数据保存完毕 后,置位89C51内部的特殊功能寄存器PCON中的PD,使RAM进入掉电模式,保护数据不变,同时显示故障类型和发生的时间。若为软件死循环引起的故 障,则MAX691的“看门狗”电路自动使程序跳出陷阱,强迫系统复位。


2.4 数据通信模块

分单片机通信程序和PC机通信程序。


2.4.1 单片机通信程序

流程图如图4所示。

以89C51单片机和PC机为核心的远程数据采集多机系统设计

2.4.2 Win98下PC机与89C51通信程序

通讯程序编写中首先在项目头文件中嵌入MSComm控件的头文件MSComm.h及实现文件MSComm.cpp,其次,为了用该控件控制一个串口的通 讯操作,还必须在相应程序中插入该控件。为此,设计在某对话框中插入MSComm控件,其ID为IDC_MSComm1,并利用ClassWizard 为其添加变量CCMSComm m_Com1,通讯程序中对串口的所有操作都可以通过m_Com1来实现。


89C51通过中断方式采集和传递数据。当其数据缓冲区满时,向CPU发出中断申请,若CPU响应并经与PC机握手后便可发送数据。因此PC机采用查询的通讯方式。设计中将PC机串口每接收一帧数据设置成串口要响应的事件EV_RXFLAG事件,通过此事件激活消息处理函数OnComm(),在OnComm()中加入处理代码,判断是否是所需的数据,再作出相应的显示、存盘等处理。


下面简要给出用事件驱动方式接收89C51单片机发送数据的程序源代码。通讯时PC机串口与89C51串口参数的设置必须一致,否则两者无法进行通讯。设置PC机串口参数的初始化程序如下:

If(!m_Com1.getportOpen())

m_Com1.SetPortOpen(TRUE);//打开串口

m_Com1.SetSettings(“9600,n,11,1”);

//串口参数设置

m_Com1.InputMode(1);

//建立1024字节输入队列

SetCommEvent(m_Com1,EV_RXFLAG);

//设置串口要响应的事件EV_RXFLAG

m_Com1.SetRThreshold(200);

//每接收200帧激活OnComm()事件 ……


3 结束语

本文通过PC机与89C51单片机组成一简单的多机系统,通过串行通信实现了远程数据采集系统的基本功能。在硬件连接上,为提高传输距离,采用了RS- 232C/RS-422A转换电路,以差分传输、差分接受的形式解决了这一问题。在软件编制上,采用流行的VC++6.0下的Active X控件,通过对控件相关属性及代码的编写,实现了Windows 98环境下PC机与89C51单片机的远程通信。该方法也可以用于类似的工业场合中。


关键字:89C51  单片机  PC机 引用地址:以89C51单片机和PC机为核心的远程数据采集多机系统设计

上一篇:RTL8139如何改制AT89C51编程器
下一篇:以89C51单片机为核心控制器件的液体点滴速度监控系统设计

推荐阅读

    新浪科技讯 北京时间3月14日凌晨消息,本周二,一家以色列安全公司在其发布的一份白皮书中指出,计算机芯片制造商AMD在售的芯片存在13个安全漏洞。  在一份声明中,AMD称其正在调查这份由“名为CTS Labs”发布的白皮书。同时,AMD对该安全公司传播此白皮书的方式表示担心,因为白皮书中描述了漏洞的技术细节。AMD发言人说:“我们正在积极调查...
集微网消息 作为国内消费类电子市场主要的锂电池供应商,锂电池A股龙头德赛电池与欣旺达一直备受业界关注,而德赛电池长期以来作为苹果供应商,这也导致其对苹果的依赖性太强,与之相反的是欣旺达,尽管欣旺达此前也有为苹果供货,不料最终出局,随后将重心放在国产手机品牌方面。随之而来的是,欣旺达和德赛电池在近几年的发展中相互赶超,从最初的德赛...
简介:本文结合现在一般放大器的设计方案及存在的问题,论述了程控宽带直流功率放大器各单元电路的详细设计方法,提出大动态范围、低失真的程控宽带直流放大器的设计方案和实现方法。测试结果表明:该方案较好地解决了增益、直流宽带、功率等放大器关键参数的矛盾,实测的系统各项指标均达到设计要求。0) 引言本文实现程控主要是采用可编程增益运放芯片AD...
去年三月份,比亚迪“刀片电池”的发布让如日中天的三元锂电池遭受暴击,也让不少担心电动车自燃的摇摆消费者坚定了购买信心。时隔一年,搭载磷酸铁锂“刀片电池”的比亚迪汉EV在终端市场持续走红,甚至跟豪华品牌同台竞技;刚刚发布的秦PLUS DM-i也收获颇丰,在终端市场反响强烈。比亚迪“刀片电池”的影响有多大?目前小鹏P7将搭载磷酸铁锂电池的消息传...

史海拾趣

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved