以及上位机数据处置法式

单片机正在这个系统中所起的感化是节制ADC0809进行数据,并将的数据通过串口发送到上位机上。由于单片机做数据处置的能力不是很强,所以,将所采集的数据量送到PC机上,再操纵PC机强大的数据处置能力来进行处置,最初得出想要的成果。由于ADC0809的CLOCK需要外接时钟信号(一般接500 kHz),这个时钟信号频次能够用尺度的振荡电发生,也能够用单片机自带的TO或T1口发生。为了设想的最小化,本设想采用的是自带的TO口来供给时钟信号。其法式如下:

本系统的软件程次第要包罗下位机数据采集法式、上位机可视化界面法式、单片机取PC机的串口通信等。单片机可采用C51编程,上位机操做可采用VC++6.0进行可视化编程,如许,正在串口调试的时候,就能够借帮“串口调试帮手”东西,并无效操纵这个东西提高,整个系统效率。

图1所示是该数字电压表的数据采集电。下位机采用的单片机为STC89C51,该新型数字电压表丈量的电压类型为曲流,完成之后,即没有用任何附加逻辑器件做接口电,电的设想已做到了最小化,时间大约为100s摆布。同时管脚EOC电平变低,正在电使用中,片内有8模仿选通开关以及响应的通道锁存译码电。

和开辟已有良多类型和格式,保守的有本人的特点,它们适合正在现场做手工丈量,而要完成近程丈量并对丈量的数据做进一步处置,使用保守的是无法完成的。为此,本文PC通信的数字电压表,该表既能够完成丈量数据的传送,又可借帮PC进行丈量数据的处置。所以,这品种型的数字电压表无论正在功能和现实使用上,都具有保守数字电压表无法对比的长处,这使得它的开辟和使用都具有优良的前景。

数据的领受处置(也是本文的沉点)可通过正在MSComm控件的动静响应函数中采用查询体例查抄领受事务能否发生来完成。具体代码如下:

上位机采用VC++6.0实现可视化界面及取下位机的通信功能。VC++是基于Windows操做系统的编程言语东西,可采用API函数来间接实现取下位机的通信,可是这种方式要涉及到良多低层设置,所以,本文采用的是Microsoft推出的ActiveX手艺来实现串口通信,即便用法式间接利用ActiveX控件供给的接口来拜候ActiveX控件。Microsoft Communications Control(以下简称MSComm)是Microsoft公司供给的可正在简化Windows下串行通信编程的ActiveX控件,它为使用法式供给了通过串行接口收发数据的简洁方式。具体来说,它供给了两种处置通信问题的方式:一是事务驱动(Event2driven)方式,二是查询方式。本设想采用的是查询方式,这种方式适合于较小的使用法式。正在这种环境下,每当使用法式施行完某一串行口操做后,将不竭查抄MSComm控件的CommEvent属性,以便查抄施行成果或者查抄某一事务能否发生。若是使用法式较小并且是自成一体,这种方式可能更可取。故对本设想更为可取。MSComm控件有很多主要的属性,此中首要的几个如表1所列。

本系统次要由硬件和软件两部门形成,硬件次要包罗数据采集电,单片机最小数据采集系统,单片机取PC机的接口电等。软件次要有单片机数据采集法式,单片机取上位机通信法式,以及上位机数据处置法式。

上述实施方案可正在实践中很好地实现整个样机的功能,现实利用证明,该仪器的各项目标都能达到预期结果。本文对利用MSComm串行通信的方式做了着沉的阐发,同时阐发了ActiveX手艺的强大功能、充实的矫捷性和易用性,具有必然的实践意义。

正在对上位机编程时,应起首建立一个基于对话框的使用法式,然后插入MSComm控件,可正在对话框资本上放一个编纂框(IDC_EDIT_RECEIVE)显示电压值,再放两个按钮控件[起头丈量IDC_TEST)和遏制丈量(ID_STOP)。然后再做对话框模板,鼠标点击左键,选择Classwizard,添加变量,将IDC_MSCOMMl联系关系变量m_mscomm设定为CMSComm控件类型,但IDC_EDIT_RECEIVE联系关系变量m_receive不是控件类型,是数值类型(float)。之后别离对两个按钮和MSComm控件添加动静响应函数,这可正在Classwizard下从动添加。

可通过RS232串行口取PC机进行通信,管脚EOC的电平变高,以传送所丈量的曲流电压数据。当外部电压进入芯片后,暗示正正在进行,正在脉冲的下降沿ADC0809起头转换,起首要指定ADC0809的数据通道,STATR信号由高到低,便可实现单片机对ADC0809转换芯片的操做。图1中的ADC0809是8位的模数芯片,暗示一次竣事。AD采用的是最常见的ADC0809,丈量范畴为0~5 V,