用VB编写上位机

更新时间:2023-10-10 20:09:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

VB编写上位机实例 用VB编写上位机实例

16:14:22 UTC+0800Sun Apr 1 2007 用VB6.0编写第一个串口通信上位机程序

Visual Basic6.0是一个可视化窗口环境的编程软件,目前使用Visual Basic6.0可以快速简单编写单片机中的串口通信上位机程序。 电子制作 HPOO

下面我们以一个完整的通信试验为例子完成如何用Visual Basic6.0编写单片机串口通信程序。

打开安装好后的Visual Basic6.0主程序界面。选择“标准EXE”。如图1显示,建立Visual Basic的编程环境。

图1

在菜单的[工程]选项中选择[部件],如图2。把Visual Basic的串口通信控件Microsoft Comm control 6.0调入工作菜单。

图2

在打开[部件]对话框中,选择Microsoft Comm control 6.0的选项框,点击[确定]。图3

图3

可以在图示3中可以看通信控件Microsoft Comm control 6.0的文件是在C:\\WINNT\\system32\\MSCOMM32.OCX文件。

如果大家在首次调用通信控件Microsoft Comm control 6.0控件时无法在控件对话框中找到,请直接在系统目录中搜索名为MSCOMM32.OCX文件。然后通过浏览加入VB的工作界面中。添加完控件回到编程界面。如下图4。

图4

通过右边的菜单把一些必要的控件放在窗体中。然后点击窗体中的Timer控件按F4弹出属性窗口进行设置。其具体设置如下:

Timer定时器控件设置属性,(通过按F4键可弹出此窗口)

Mscomm通信控件参数属性设置(通过单击控件的右键属性可弹出此窗口)

本文用到的其他控件:CommandButton控件和TextBox控件按默认属性设置不变。 单片机编程器 HPOO

以上设置完成,回到编程窗体区中,任意双击。会显示Visual Basic的程序窗体的Load事件程序。在代码窗口中输入: 单片机编程器 HPOO Private Sub Form_Load() MSComm1.PortOpen = True

'窗体的加载时,就打开通信端口,通信端口的参数也可以在此指定 Timer1.Enabled = Timer1.Enabled '窗体的加载时,同时定时器控件事件 End Sub

这样设置目的是当程序在打开是,首先打开通信控件MSComm,注意这里的串口通信参数中的波特率设置是默认参数的。

即:波特率:9600bps;校验位:无;数据位:8位;停止位:1。 电子元件邮购网 双击定时器控件Timer1同样在定时器窗体的事件程序中,输入相关代码: Private Sub Timer1_Timer()

If MSComm1.InBufferCount > 0 Then

'程序检查输入缓冲区中是否有数据,若有数据 Text1.Text = Text1.Text + MSComm1.Input

'则将此数据读取后,指定给文本框的Text属性 End If End Sub

'此事件会在每一个Interval属性值的循环计数间隔内被调用一次,这样就可以一直读取串口中有无数据发送。定时器一直按设置速度循环读取串口数据。直到串口的程序缓冲区中有数据就把他发给Text1文本框显示出来。 杭州电子元件邮购网地址:www.hpoo.net 最后双击CommandButton控件 ,在弹出的程序窗口事件中输入如下代码: Private Sub Command1_Click() MSComm1.PortOpen = False '关闭通信端口 End

'结束系统 End Sub

在这个窗口中MSComm1.PortOpen = False是当程序停止或者关闭软件时都应该加上关闭串口。通过以上简单的代码就实现了VB串口接收程序。编辑完成后,我们通过Visual Basic菜单[文件]中的编译来生产可执行文件。如下图:

这样就产生完成程序整个步骤工作。下面将介绍通过单片机编程实现串口发送数据到上位机程序的窗口中显示出来。同时通过PROTEUS仿真软件的示波器来查看串口数据发送情况。

MSCOMM串口控件数据接收方式: 1、 在OnComm 事件中接收数据:

这种方式能充分MSCOMM控件的特性。OnComm 事件还可以检查和处理通讯错误;可以通过检查 CommEvent 属性的值来查询事件和错误;对于不定长数据以及对数据进行处理比较复杂的情况,此法不是很方便。 Private Sub MSComm_OnComm ()

Select Case MSComm1.CommEvent

'' 错误

Case comEventBreak '' 收到 Break。

Case comEventCDTO '' CD (RLSD) 超时。 Case comEventCTSTO '' CTS Timeout。 Case comEventDSRTO '' DSR Timeout。 Case comEventFrame '' Framing Error Case comEventOverrun ''数据丢失。

Case comEventRxOver''接收缓冲区溢出。 Case comEventRxParity'' Parity 错误。 Case comEventTxFull ''传输缓冲区已满。 Case comEventDCB ''获取 DCB] 时意外错误 '' 事件

Case comEvCD '' CD 线状态变化。

本文来源:https://www.bwwdw.com/article/4fsf.html

Top