没有合适的资源?快使用搜索试试~ 我知道了~
vb串口数据采集及曲线动态显示.docx
0 下载量 157 浏览量
2022-12-01
08:11:21
上传
评论
收藏 36KB DOCX 举报
温馨提示
试读
19页
vb串口数据采集及曲线动态显示.docx
资源推荐
资源详情
资源评论
串口数据采集及曲线动态显示
这个程序主要用到了串口通信和曲线画图
一.主要控件
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 HOOK(钩子)超级无敌详细用法(介绍)
hook 是 WINDOWS 提 供 的 一 种 消 息 处 理 机 制 , 它 使 得 程 序 员 可 以 使 用 子
过 程 来 监 视 系 统 消 息 , 并 在 消 息 到 达 目 标 过 程 前 得 到 处 理 。
下 面 将 介 绍 WINNDOWS HOOKS 并 且 说 明 如 何 在 WINDOWS 程序 中 使 用 它 。
关 于 HOOKS
使 用 HOOK 将 会 降 低 系 统 效 率 ,因为 它 增 加 了 系 统 处 量 消 息 的 工 作 量 。建 议 在
必 要 时 才 使 用 HOOK, 并 在 消 息 处 理 完 成 后 立 即 移 去 该 HOOK。
HOOK 链
WINDOWS 提 供 了 几 种 不 同 类 型 的 HOOKS; 不 同 的 HOOK 可 以 处 理 不 同 的 消
息 。 例 如 , WH_MOUSE HOOK 用 来 监 视 鼠 标 消 息 。
WINDOWS 为 这 几 种 HOOKS 维 护 着 各 自 的 HOOK 链 。HOOK 链 是 一 个 由 应 用
程 序 定 义 的 回 调 函 数 队 列 , 当 某 种 类 型 的 消 息 发 生 时 , WINDOWS 向 此 种 类 型
剩余18页未读,继续阅读
资源评论
黑色的迷迭香
- 粉丝: 712
- 资源: 4万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功