• 全国 [切换]
  • 深圳市鼎达信装备有限公司

    扫一扫关注

    当前位置: 首页 » 新闻动态 » 真空技术 » 正文

    基于Labview串口通讯的虚拟数字电压表的设计

    放大字体  缩小字体 发布日期:2021-11-01 17:23:26    浏览次数:184    评论:0
    导读

    摘要:介绍了Labview环境下串口通讯的实现方法,利用89C51单片机作为下位机采集卡,进行数据采集,PC机作为上位机,二者之间通过串口实现数据通讯.为此,设计了单片机采集和通讯电路,编制了相应的C语言程序,该电路利用8位A/D转换器ADC0808采集电位器输出的电压信号,把转换出的数字量通过RS-232串口通讯送给上位机,同时在Labview开

    摘要:介绍了Labview环境下串口通讯的实现方法,利用89C51单片机作为下位机采集卡,进行数据采集,PC机作为上位机,二者之间通过串口实现数据通讯.为此,设计了单片机采集和通讯电路,编制了相应的C语言程序,该电路利用8位A/D转换器ADC0808采集电位器输出的电压信号,把转换出的数字量通过RS-232串口通讯送给上位机,同时在Labview开发平台上,设计了串口通讯、数据处理和电压显示的前面板和框图程序,开发了虚拟数字电压表.

    关键词:串口通讯; Labview; 单片机; 数据采集; 虚拟电压表

    Labview是由美国国家仪器公司推出的,主要面向计算机测控领域的虚拟仪器软件开发平台,是一种基于图形开发、调试和运行的集成化环境.设计利用单片机电路作为下位机前端数据采集电路,电路中的8位A/D转换器芯片ADC0808采集电压信号,把转换出的数字量通过RS-232串口通讯送给上位机,同时在上位机的Labview开发平台下,通过串口读取下位机上传的数据,并处理和显示电压值,从而设计出Labview环境下的基于单片机和PC机串口通讯的虚拟电压表.

    1 基于Labview的上位机信号处理和显示软件设计

    Labview虚拟仪器程序由前面板和框图程序组成,前面板是人机交互的界面,界面上有用户输入和显示输出两类控件;框图程序则是用户编制的程序源代码,以定义和控制在前面板上的控件输入和输出功能.图1为虚拟数字电压表的电压测量框图程序.

    图1的图形化框图程序是采用NI_VISA串口Serial函数来访问和控制串口的.VISA中的Serial函数库里包含 VISA Configure Serial Port、VISA Write、VISA Read、VISA Close 等子函数.设计用到的3个VISA串口子函数分别是VISA串口配置函数VISA Configure Serial Port、VISA 读取函数VISA Read和VISA关闭函数VISA Close[1-2].它们的图标分别如图2所示.

    VISA串口配置函数VISA Configure Serial Port的作用是完成串口参数的初始化设置,包括了串口资源名称,波特率,奇偶校验、数据比特、是否启用终止符等,图1中该函数连接了两个输入变量,变量名为“请选择串口名”和“波特率”,它们分别连在串口资源名称和波特率参数端子上,变量值由前面板上的相应控件来设定,另外该函数在是否启用终止符的端子上还连接了一个布尔常量,常量值为false,含义是不启用终止符,其它输入参数采用默认值.图1中VISA串口配置函数有两个输出端子,图标上面输出端子输出的是串口资源名称,下面输出端子输出的是错误码,输出端子向下游函数传递信息.

    VISA读取函数VISA Read有3个输入端子,图1中VISA Read图标的上面输入端子是前面VISA Configure Serial Port函数传递的串口资源名称,下面的输入端子传递的是错误码,意思是若前面的函数出错了,会往这里输入一个错误码,然后继续往下面传递,有错误码出现时程序是不会工作的.中间输入端子是每次从串口读取的数据字节数,文中设置的字节数常量是1.

    图1中VISA Read函数包含在While循环结构中,每次循环从串口读取1个字节,并从该函数的中间输出端子,以字符串的形式输出,每次循环的字符串只包含一个8位字符.VISA Read函数图标上面输出端子输出的是串口资源名称,下面的输出端子输出的是错误码,继续向下游函数传递信息.在前面板按下“停止”按钮,结束While循环.

    VISA关闭函数VISA Close的作用是当程序停止之前,必须要把使用的串口设备关闭,若不关闭,其他程序就不能使用该设备.

    从VISA Read输出的字符串,通过“字符串至字符数组转换”函数把字符串转换为字符数组,再通过“索引数组”函数,把第0元素从字符数组取出,这样就把每次While循环从串口采集的字符串格式数据转换成无符号字节数据,该数据再除以255,乘以5,就可得到图4所示电位器RV1输出的实测电压值,然后分别以仪表和波形图表的形式显示在前面板中.

    在While循环结构的外面,还有事件结构,在前面板按下“测量”按钮,“测量”控件的值被改变,引发事件,允许执行事件结构内部的While循环结构,于是开始测量电压,直到按下前面板中的“停止”按钮[3-4].

    图1的程序源代码所支持的虚拟仪器前面板如图3所示.

    图3 虚拟数字电压表的Labview前面板

    右击图3的前面板“仪表”,出现快捷菜单,选择“属性”,在“属性”对话框的“外观”选项中,打勾选中“显示数字显示框”,于是在前面板中出现电压当前值显示框.程序运行时,先在前面板设置串口资源名称为COM1,波特率为9600,再按“测量”按钮,电压值会以数值、仪表、波形图的形式实时显示出来.按下“停止”按钮,测量结束.

    2 基于单片机的下位机信号采集和通讯电路的软硬件设计

    图4所示硬件电路是以单片机AT89C51为控制核心,用8位逐次逼近型A/D转换器ADC0808来转换电位器RV1输出的模拟电压值,得到8位数字量,通过RS-232与PC机通讯,送给上位PC机处理[5].

    图4电路中单片机的晶振选择是11.0592MHz,是为了当波特率设为9 600 bps时,保证串行通讯的同步性能[6].由于单片机 RXD和 TXD引脚输出T TL电平与RS232串口发送的电平不一致,所以电路中需要一个电平转换器,这里选择了MAX232芯片,单5V供电.

    图4 单片机采集和通讯硬件电路

    根据图4的硬件电路,数据采集和通讯的软件编程思路是:通过AT 89C51定时器0方式2产生使P2.4引脚产生50kHz的方波作为ADC0808转换器的时钟信号,单片机P2.6引脚控制ADC0808的模数转换启动,通过查询ADC0808的引脚EOC,判断转换是否结束.若ADC0808的引脚OE置为高电平,则允许转换结果输出,并通过P0口送入单片机内部处理.

    单片机的串口通讯设置为方式1,10位异步收发,其中1位起始位,8位数据位,1位停止位,由定时器1的溢出率控制波特率.定时器1设置为8位计数初值自动重装的方式2工作模式,通过设置计数初值把串口波特率固定在9600bps,这与上位机Labview软件设置的波特率是一致的.

    程序清单和注释如下:

    #include<reg51.h>

    #define uchar unsigned char

    //声明单片机与模数转换芯片ADC0808的相连引脚

    sbit CLOCK=P2ˆ4;

    sbit EOC=P2ˆ5;

    sbit START=P2ˆ6;

    sbit OE=P2ˆ7;

    //声明暂存模数转换结果的变量

    uchar ADC_result;

    //定时器0中断子函数,产生50kHz的方波

    void pluse_int(void)interrupt 1

    {CLOCK=!CLOCK;}

    //主程序

    void main()

    {

    //设置定时器0和1的工作方式均为方式2

    TMOD=0x22;

    //设定定时器0的初值,为产生50kHz的方波

    T H0=0xf7;TL0=0xf7;

    //设定定时器1的初值,使串口通讯的波特率为9600bps

    T H1=0xfd;T L1=0xfd;

    //设定串口通讯方式为方式1,10位异步收发,波特率由定时器1控制

    SCON=0x50;

    //开放中断

    ES=1;ET0=1;EA=1;

    //定时器0和1启动

    T R0=1;T R1=1;

    while(1)

    {

    //启动ADC0808模数转换

    START=0;START=1;START=0;

    //判断转换是否结束

    while(EOC);

    while(!EOC);

    //转换后的8位数字量暂存在变量ADC_result

    OE=1;ADC_result=P0;OE=0;

    //把ADC_result中的数字量通过串口发送到PC机

    ES=0;

    SBUF=ADC_result;

    while(TI==0);

    TI=0;

    ES=1;

    }}

    3 结 语

    由于 Labview硬件采集卡昂贵,利用 Labview虚拟仪器软件,设计了基于51单片机硬件采集电路,具有成本低廉、配置灵活的优点.通过与通用电压表的对照测试,按本设计方法制作的虚拟数字电压表所测量的数据结果正确,达到了预期的设计目标.


     
    (文/小编)
    打赏
    免责声明
    • 
    本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:https://2024.dingdx.com/news/show.php?itemid=1807 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
    0相关评论
     

    © Copyright 深圳市鼎达信装备有限公司 版权所有 2015-2022. All Rights Reserved.
    声明:本站内容仅供参考,具体参数请咨询我们工程师!鼎达信作为创新真空产品研发制造商,我们提供海绵吸具,海绵吸盘,真空吸盘,真空发生器,真空泵,真空鼓风机,缓冲支杆,真空配件,真空吊具等等产品

    粤ICP备17119653号