0
点赞
收藏
分享

微信扫一扫

STC51入门笔记(郭天祥C语言)---第十节:(二)VB MSCOMM控件与单片机通信实现温度显示


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

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

STC51入门笔记(郭天祥C语言)---第十节:(二)VB MSCOMM控件与单片机通信实现温度显示_控件

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

STC51入门笔记(郭天祥C语言)---第十节:(二)VB MSCOMM控件与单片机通信实现温度显示_DS18B20介绍_02

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

STC51入门笔记(郭天祥C语言)---第十节:(二)VB MSCOMM控件与单片机通信实现温度显示_控件_03

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

STC51入门笔记(郭天祥C语言)---第十节:(二)VB MSCOMM控件与单片机通信实现温度显示_DS18B20程序讲解_04

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

STC51入门笔记(郭天祥C语言)---第十节:(二)VB MSCOMM控件与单片机通信实现温度显示_DS18B20时序_05

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

STC51入门笔记(郭天祥C语言)---第十节:(二)VB MSCOMM控件与单片机通信实现温度显示_DS18B20介绍_06

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

STC51入门笔记(郭天祥C语言)---第十节:(二)VB MSCOMM控件与单片机通信实现温度显示_DS18B20介绍_07

STC51入门笔记(郭天祥C语言)---第十节:(二)VB MSCOMM控件与单片机通信实现温度显示_DS18B20时序_08

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

STC51入门笔记(郭天祥C语言)---第十节:(二)VB MSCOMM控件与单片机通信实现温度显示_PC与单片机通信_09

第六步, 在 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 & "

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()]函数中添加接收数据代码,添    加完成后的编辑框如下图的下半部分所示。

STC51入门笔记(郭天祥C语言)---第十节:(二)VB MSCOMM控件与单片机通信实现温度显示_DS18B20介绍_10

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]键运行程序。用串行口线连接 实验板和计算机, 即可在文本框中显示出当前环境温度值, 如下图所示。

STC51入门笔记(郭天祥C语言)---第十节:(二)VB MSCOMM控件与单片机通信实现温度显示_PC与单片机通信_11

 

举报

相关推荐

0 条评论