基于VB6的PC机与多台单片机通信的应用

发布者:张延强最新更新时间:2012-11-23 来源: 21ic 关键字:VB6  PC机  单片机通信 手机看文章 扫描二维码
随时随地手机看文章

    在库房管理系统中,传统的方法是通过干湿度表、双金属式测量计等检测器材进行人工测量,然后对不符合温度、湿度等要求的库房进行通风、去湿、降温等工作。这种人工方式效率低、误差大,随机事件难以预料,使库房管理质量得不到很好的保证。本文所论述的系统是一个用于制药厂仓库的监控和管理系统,上位机(PC机)除负责对下位机(MCS—51单片机)进行监管和控制外,还用于采集下位机传送的数据进行数据库化管理,另外,上位机还可以对库房药品入库、出库、有效期、交易方式等信息进行管理,并可用实时曲线和报表的形式查询。下位机(MCS-51单片机。MCS-51单片机及其外围设备我们称之为库机)负责收集库房中温度、湿度、烟雾等信息并传给上位机。此系统可使办公人员坐在办公室里对远在几百米之位的库房进行监控和管理,不但使办公人员从繁重的体力劳动中解放出来,而且使库房管理快速准确,提高了企业的管理水平和办公自动化水平。
  
    2 系统构成及工作原理
   
    PC机里安装着用VB6编写的仓库管理系统,作为前台操作系统。系统的数据库格式采用VB数据库格式,也称为本地数据库,这类数据库文件使用与 MicroSoft Access相同的格式,数据的存取利用VB6的ADO控件通过MicroSoft Jet (Joint Engineering Technology) 数据库引擎,速度快工作效率高。此管理系统包括进库药品、进库日期、出库药品、出库日期、经手人等的查询,以及药品过期提示等。另外还把库机传送来的数据实时显示并存放在本地硬盘中,以便查询和打印。后台系统是一个上位机与多台下位机通信的通信系统,多台下位机不断从仓库采集温度、湿度、烟雾等数据传给上位机,PC机进行实时显示,并可以设置温度、湿度、烟雾、等参数,单片机根据设定参数来控制仓库里的去湿、降温和报警系统,从而使库房达到预定的环境。如果库房内环境与设定环境不符,单片机就会唤醒降温、去湿设备,把仓库内参数锁定在预定的范围之内,如发生火灾、被盗等意外事件,单片机就会驱动火灾、防盗报警系统,并把信号传给上位机,使其在屏幕上作出显示。


  
    3 PC机与单片机之间的通信
   
    3.1 通信方式的实现
   
    PC机与单片机之间的通信是通过串行口来实现的(如图2)。由于单片机系统电平是TTL电平,与标注RS-232C不兼容,又考虑到通信距离,我们采用Maxim 公司生产的Max485芯片将TTL电平转化为RS-485标准,然后再进行RS-485与RS-232之间的转换,再与PC机的串口连接。这种转换方式延长了通信的距离,最长可达1200米,提高了系统的可行性。
  
    3.2 通信协议及程序设计思想
   
    本系统由于是一台上位机和多台下位机,所以要给下位机设置一个通信代码,为简单起见,取0~255之间的任意四个即可。当PC机欲与某个单片机通信时,便向所有单片机发出通信代码。单片机在接到代码后与自己的代码进行核对,如果一致则向PC机发出回应,开始通信,其它的单片机继续采集和传输数据。


  
    3.3 上位机程序设计
   
    VB6中有一个专门用来串行通信的控件---MSComm控件。MSComm控件最常用的属性如下:
  
    CommPort属性:设置并返回通信端口号,指定PC机上用于通信的串口
  
    Setting属性:以字符串的形式设置并返回波特率,奇偶校验,数据位和停止位
   
    PortOpen属性:设置并返回通信端口的状态,用于打开和关闭端口
  
    Rthreshold 属性:MSComm 控件设置CommEvent 属性为ComEvReceive并产生OnComm之前设置并返回的要接收的字符数
   
    Input属性:从接收缓冲区返回和删除字符,用于接收数据
  
    InputLen 属性:设置并返回Input属性从接收缓冲区读取的字符数
   
    Output属性:向缓冲区写一个字符,用于发送数据[page]
  
    本系统VB6通信初始化程序如下:
  
    MSComm1.CommPort = 1 ;选择COM1为通信端口
   
    MSComm1.Setting ="9600,n,8,1" ;设置波特率为9600,无奇偶校验,8个数据位,一个停止位
   
    MSComm1.OutBuffersize =256 ;设置输出缓冲大小为256个字节
   
    MSComm1.RThreshold = 3 ;输入缓冲区里有3个字符时,触发OnComm事件
   
    If Not MSComm1.PortOpen = True
  
    Then MSComm1.PortOpen = True ;打开串行口,并防止运行时发生打开同一串口的错误
   
    End If
  
    以上MSComm1是系统默认的MSComm控件的名字(Name)。在初始化完成后通过
  
    MSComm1.Output=OutputString 发送数据,OutputString 是定义的字符型变量(Dim OutputString As String)。一般用定时器的Timer事件来定时发送数据,接到回应字符后则关闭定时器。MSComm控件可以直接把字符串转化成二进制数据形式发送,不需要我们在程序中用算法来转换。每次发送完毕最好关闭串口。用MSComm1.PortOpen=False来实现。MSComm_OnComm事件可以捕捉通信时发生的错误,也可以接收数据。由于RThreshold的属性值为3,所以当输入缓冲区满三个字符时,就触发MSComm_OnComm事件,通过对接收字符的判断,可以决定主程序分支的去向。


   
    3.4 下位机程序设计
   
    本系统单片机MCS-51通信时用定时器T1工作于定时方式2作为周波发生器,选择11.0592的晶振。由于波特率为9600,所以定时器T1初值取0FDH。初始化还需设置用于控制和监视串行口状态的控制状态寄存器SCON。初始化程序如下:
  
   MOV SCON,#0C0H ;通信方式3
  
   MOV PCON,#00H ;SMOD=0
  
   MOV TMOD,#20H ;定时器T1,工作于方式2
  
   MOV TL1,#0FDH ;设置波特率为9600
  
   MOV TH1,#0FDH
   
    单片机始终处于被动状态,只在接收到通信的命令后才进入中断服务子程序发送数据,进入通信状态。PC机与单片机通信时,先发出呼叫信号,单片机接到约定的呼叫信号后,向PC机发出应答信号,表示准备接受,PC机在接到应答信号后则发出通信代码,单片机接到通信代码与本身代码相减,若为0则开始接受命令,设置新的参数;若不为0则继续执行采集数据和发送数据的程序。
  
    3.5 库机的设计
   
    库机设计以单片机为核心,配有EPROM、A/D转换、数码显示、光电隔离和控制电路等。传感器把温度、湿度等非电量转化为电量,通过A/D转换后变为数字量,然后通过单片机的串行通信将数据送往PC机数据库保存。同时,单片机将采集的结果与设定参数进行比较,如若不在规定的参数范围之内或者单片机采集的状态量发生异常,则驱动光电隔离放大器,经过一级放大后就可驱动继电器动作打开降温、去湿设备和报警系统。在这里光电隔离可以有效地避免继电器的误动作,提高了系统的抗干扰能力。
  
  
    4 结束语
   
    本文所介绍的管理和监控系统是基于VB6的主从式通信结构,可靠性好,可行性强。其硬件结构简单,软件(VB6)编程环境友好,界面灵活,易学易用。本系统可以方便地控制通信对象的选择,实时显示所采集数据,人机对话灵多机动,易于操作。这种单片机与数据库的串行通信技术的应用,为库房管理的发展提供了新的方向。

关键字:VB6  PC机  单片机通信 引用地址:基于VB6的PC机与多台单片机通信的应用

上一篇:由AT89C51/55构成的温湿度自动检测系统
下一篇:基于单片机的低功耗高精度融雪测量仪的设计

推荐阅读最新更新时间:2024-03-16 13:13

uart接口_基于51单片机的UART串口通信
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。 UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信
[单片机]
uart接口_基于51<font color='red'>单片机</font>的UART串口<font color='red'>通信</font>
单片机间的串口通信
单片机间的串口通信 注意: 将两单片机的RXD和TXD交叉连接,并GND共地... 程序功能: 发送单片机发送0至F 16字符在接收单片机数码管显示; ///发送单片机的程序 #include reg52.h void delay() //X毫秒 { uint i,j; for(i=10;i 0;i--) for(j=110;j 0;j--); } void send(uchar key_num) { SBUF=key_num; while(!TI); TI=0; } void keyscan() { uchar temp,key; P1=0xfe; temp=P1; temp=temp&0xf0; if(
[单片机]
基于单片机和PC串口通信的测温系统设计
  温度是工业控制中主要的被控参数之一,在日常生活及工农业生产中经常要用到温度的检测及控制,因此研究温度的测量方法和装置具有重要的意义。传统方法多以热电阻和热电偶等为温度传感元件,而这种模拟温度传感器输出为模拟信号,必须经过A/D 转换环节获得数字信号后才能与单片机等微处理器接口,使得硬件电路结构比较复杂、抗干扰性差、布线麻烦以及成本高等缺点。   针对上述问题,该设计提出了基于Dallas 半导体公司的数字式温度传感器DS18B20[1-2]和ATMEL 公司AT89S52 单片机构成的温度测量系统,并可通过串口连接在PC 系统上进行实时显示,该系统安装简易,可靠性高,适用于恶劣环境的现场温度测量。   1 系统构成
[单片机]
基于<font color='red'>单片机</font>和PC串口<font color='red'>通信</font>的测温系统设计
51单片机汇编模拟串口通信程序
汇编编写的模拟串口通信程序 T2作为波特率控制 UART_RXD 是硬中断0或1口,如果能进入中断,说明该线有一个起始位产生,进入中断后调 用下面的接收程序。退出硬中断之前还需要将硬中断标志重新复位。 UART_TXD 是任何其它IO即可。 UART_SEND: PUSH IE PUSH DPH PUSH DPL PUSH PSW PUSH 00H PUSH ACC CLR EA SETB UART_TXD ;START BIT MOV R0,A CLR TR2 ;TR2置1,计数器2启动,时间计数启动。 MOV A,RCAP2L;计数器2重新装载值 MOV TL2,
[单片机]
单片机与PLC通信的海量数据存储
1. 是利用现有的成熟的PLC技术,对各设备的监控点数据进行采集; 2. 再使用单片机技术,对PLC采集后的数据进行读取,并按照一定的格式存储在存储设备中,存储设备可以是U盘,存储卡等; 3. 使用读卡设备将存储的数据读出,并导入普通PC中,对读取数据进行分析 基本组成图: 图1 总框图 PLC数据采集: 采用成熟的PLC技术,不需开发,使用西门子S7-200系列。 S7-200 PLC是串行通讯方式最为丰富的小型PLC,支持多种通信协议,如点对点接口协议(PPI协议)、多点接口协议(MPI协议)和PROFIBUS协议以及自由通信协议等。其中自由通信协议又叫用户定义协议,利用自由端口模式,
[单片机]
<font color='red'>单片机</font>与PLC<font color='red'>通信</font>的海量数据存储
WINDOWS环境下PC机单片机通信
在自动控制系统中,PC机与单片机组成上位机和下位机,其基本构成是:下位机(单片机系统)完成信号检测、A/D转换和简单的控制功能,通过系统总线(如RS-232、RS-485、USB)与上位机(PC机)相连,进行监测、控制,形成主从式结构。下面就上位机和下位机之间目前几种常用的通讯方法作一些介绍。 1、RS-232的串行通讯 在工业控制中,串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,成本低,且完全能满足要求,所以应用广泛。 1.1、利用VC++的标准通信函数 利用VC++的标准通信函数_inp和_outp可实现串口通信。下面是一个串口初始化的程序: Void init_com (PORT)
[单片机]
WINDOWS环境下<font color='red'>PC机</font>与<font color='red'>单片机</font>的<font color='red'>通信</font>
用CPLD实现单片机与ISA总线并行通信
    摘要: 用ALTERA公司MAX7000系列CPLD芯片实现单片机与PC104 ISA总线接口之间的并行通信,给出系统设计方法及程序源代码。包括通信软件和AHDL设计部分。     关键词: CPLD ISA总线 并行通信 CPLD(Complex Programmable Logic Device)是一种复杂的用户可编程逻辑器件,由于采用连续连接结构。这种结构易于预测延时,从而电路仿真更加准确。CPLD是标准的大规模集成电路产品,可用于各种数字逻辑系统的设计。近年来,由于采用先进的集成工艺和大批量生产,CPLD器件成本不断下降,集成密度、速度和性能大幅度提高,一个芯片就可以实现一个复杂的数字电
[半导体设计/制造]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved