×
单片机 > 其他资讯 > 详情

第十节:(二)VB MSCOMM控件与单片机通信实现温度显示

发布时间:2020-07-10 发布时间:
|

     在上一部分中单片机程序,单片机将采集到的温度数据处理后,通过串行口发送出去,这一节专门讲解如何用VB6.0(企业版)调用MSComm控件接收数据、处理数据和显示数据。


第一步,打开VB软件,如下图所示。在新建工程对话框中选择[标准EXE习项]单击[打开习按钮]

接着出现如下图所示界面。


第二步, 单击 [工程一部件]菜单项, 打开[部件]对话框,弹出对话框如下图所示。


选择 [Microsotf Comm Control 6.0]控件列表项, 单击[确定]按钮, 如下图所示。


      然后可以看到在工具箱中增加了一个像电话的图标, 如下图箭头所指处, 这就是VB串行口通信所用的标准控件 ( MSComm )。

第三步, 单击[MSComm]控件, 并在窗体 Forml上拖出一个矩形,如下图所示,这时 MSComm控件就被添加到工程中了。


第四步, 一个矩形框,单击 [TextBox] 控件, 如下图左箭头所指处, 同上步骤在窗体 Forml 上拖出如下图右所示。


第五步, 双击[TextBox]控件或窗体无控件的空白处, 会打开代码编辑框, 如下图所示。

第六步, 在 Private Sub Form_load()函数中增加如下代码:

Private Sub Form_Load()

Text1(0).Enabled = False

Text2.Enabled = False

Text3.Enabled = False

Text2.Text = "单片机与PC端通信" & vbCrLf & "QQ:1371129880 " & vbCrLf & "博客:https://blog.csdn.net/qq_38351824"

 

MSComm1.Settings = "9600,n,8,1"    '波特率 9600bit/s  无校验  8位数据 1位停止位

MSComm1.CommPort = 5               '设定串口为1com,这里大家需要改为自己对应的com序号

MSComm1.InBufferSize = 8           '设置返回接收缓冲区的大小,以字符为单位

MSComm1.OutBufferSize = 2

If MSComm1.PortOpen = True Then MSComm1.PortOpen = False  '关串口

MSComm1.RThreshold = 4  '设置并返回产生oncomm事件的字符数,以字符为单位

'RThreshold         为1,接收缓冲区收到每一个字符都会使MSComm控件产生oncomm事件

MSComm1.SThreshold = 1

MSComm1.InputLen = 0  '设置从接收缓冲区读取的字数,为0读取整个缓冲区

MSComm1.InputMode = comInputModeText  '文本形式接收

If MSComm1.PortOpen = False Then MSComm1.PortOpen = True

MSComm1.InBufferCount = 0  '清空缓冲区

Me.Caption = "温度"

Text1(0).Text = "00.0"

End Sub

添加完的编辑框如下中上半部分所示。

第七步, 双击窗体内的 [ MSComm]控件, 向 [ Private Sub  MSComml_OnComm()]函数中添加接收数据代码,添    加完成后的编辑框如下图的下半部分所示。

Private Sub MSComm1_OnComm()

Dim rec As String

Select Case MSComm1.CommEvent

Case comEvReceive

rec = MSComm1.Input

Text1(0).Text = rec

MSComm1.InBufferCount = 0 '清空缓冲区

End Select

End Sub

第八步, 单击上按钮或直接按 [ F5]键运行程序。用串行口线连接 实验板和计算机, 即可在文本框中显示出当前环境温度值, 如下图所示。


 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
用3DA87C制作调频发射电路