串口数据采集及曲线动态显示
这个程序主要用到了串口通信和曲线画图
一. 主要控件
Msomm控件一个,两个timer控件,textbox控件,combo控件,picture控件,command控件
二.实现的功能能
1.串口采集数据
2.用曲线动态显示数据
3. 显示时间
4.鼠标点击读数(确定所点击位置的横纵坐标)
三.界面
四.程序
Dim T As Variant
Dim c As Variant
Dim Y As Integer
Private Declare Sub Sleep Lib "kernel32 " (ByVal dwMilliseconds As Long) 'API,用sleep实现延时
'延时函数
Function delay(number)
Call Sleep(number)
DoEvents
End Function
Private Sub Combo1_Click() '选择端口
If Combo1.Text = "COM1" Then
MSComm1.CommPort = 1
ElseIf Combo1.Text = "COM2" Then
MSComm1.CommPort = 2
ElseIf Combo1.Text = "COM3" Then
MSComm1.CommPort = 3
ElseIf Combo1.Text = "COM4" Then
MSComm1.CommPort = 4
Else
MSComm1.CommPort = 5
End If
End Sub
Private Sub Command3_Click() '停止采集
Timer2.Enabled = False
MSComm1.PortOpen = False
Command2.Caption = "打开串口"
End Sub
Private Sub Form_Load() '初始化
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputMode = 0
MSComm1.RThreshold = 1
MSComm1.SThreshold = 0
MSComm1.InBufferSize = 1024
MSComm1.OutBufferSize = 512
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
Combo1.AddItem "COM1"
Combo1.AddItem "COM2"
Combo1.AddItem "COM3"
Combo1.AddItem "COM4"
Combo1.AddItem "COM5"
Picture1.Scale (-100, 100)-(100, -100)
Command1.Caption = "采集数据"
Command2.Caption = "打开串口"
Timer1.Interval = 1000
Timer2.Interval = 1000
Timer2.Enabled = False
End Sub
Private Sub Command2_Click()
If Command2.Caption = "打开串口" Then
MSComm1.PortOpen = True
Command2.Caption = "关闭串口"
ElseIf Command2.Caption = "关闭串口" Then
MSComm1.PortOpen = False
Command2.Caption = "打开串口"
End If
End Sub
Private Sub MSComm1_OnComm() '触发事件
If MSComm1.InBufferCount > 0 Then
Text4.Text = MSComm1.Input
c = Val(Text4.Text)
delay (20)
End If
End Sub
Private Sub draw()
Picture1.FontSize = "15" '设置字体大小
Picture1.DrawWidth = 1
Picture1.ForeColor = QBColor(12)
Picture1.Cls
Picture1.Line (-88, -88)-(-88, 88) '纵坐标
Picture1.Line (-89, 86)-(-88, 88) '纵坐标箭头及y值
Picture1.Line (-87, 86)-(-88, 88)
Picture1.PSet (-86, 88)
Picture1.Print "y"
Picture1.Line (-88, 0)-(88, 0) '横坐标
Picture1.Line (86, 1)-(88, 0) '横坐标箭头及x值
Picture1.Line (86, -2)-(88, 0)
Picture1.PSet (88, -1)
Picture1.Print "x"
Picture1.DrawWidth = 4
Picture1.FontSize = 8
For Y = -80 To 80 Step 10
Picture1.PSet (-88, Y)
Picture1.Print (Y)
Next Y
T = -88
Timer2.Enabled = True
End Sub
Private Sub Picture1_MouseDOWN(Button As Integer, Shift As Integer, B As Single, A As Single) '"光标线读数"
Text1.Text = B
Text2.Text = A
End Sub
Private Sub Command1_Click() '开始采集
Call draw
End Sub
Private Sub Timer2_Timer() '画图
Picture1.DrawWidth = 1
Picture1.PSet (T, c), vbGreen
T = T + 0.5
If T > 88 Then
Call draw
End If
End Sub
Private Sub Timer1_Timer() '显示时间
Text3.Text = CStr(Time$())
End Sub
本文档为【vb串口数据采集及曲线动态显示】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。