切换到宽版
  • 5115阅读
  • 8回复

[C51]VB6简单实现 蓝牙串口电压监控 [复制链接]

上一主题 下一主题
离线kpj001
 
发帖
94
M币
19
专家
4
粉丝
12
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2013-08-22
单片机部分没改进,就是前几天做的这个 http://bbs.mydigit.cn/read.php?tid=650617
单片机ADC0/1 分别接 TL431 和 被测电压, 接蓝牙模块 传出字符串 "AD0=0512 AD1=1023"
PC接蓝牙接收器,可用超级终端看到上述字符串
准备编程实现电压历史状态显示,想来编程量不大,就选VB6好了。用到的控件就是MSComm32.ocx, VB6精简版下需要注册该控件和提供授权。
然后是熟悉字符串的函数,picture控件描图。。。这样软硬结合不错,比单学习编程有意思





以下为全部PC程序,VB6精简版编译通过.



'Picture1 长宽 6000x10000 (控件属性里设定)
'MSComm1.RThreshold = 20  (控件属性里设定)
Public T As Double                                                  'Time Axis
Public Vold As Double                                               'Previous V
Private Sub Form_Load()
MSComm1.CommPort = 6
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True                                             'MSComm32.ocx 控件初始化
Dim ComData As String                                               '串口读到的字符串
Dim AD0, AD1 As Double                                              '两个ADC的测量值
Dim V As Double                                                     '计算值
T = 0                                                               '时间轴的初始值

End Sub
Private Sub MSComm1_OnComm()                                        'MSComm控件在串口有数据收发自动执行该子程序,不用定时或循环
    Select Case MSComm1.CommEvent
    Case comEvReceive                                               '条件判断:串口数据接收
    ComData = MSComm1.Input                                         '获取字符串
    AD0 = Mid(ComData, 5, 4)                                        'Mid函数,取字符串中间的数字,条件是数字在字符串中的位置固定
    AD1 = Mid(ComData, 15, 4)
    V = AD1 / AD0 * 2.5                                             '计算值 (2.5是 TL431的 测量值)
  
    Text1.Text = ComData
    Text2.Text = Len(ComData)
    Text3.Text = AD0
    Text4.Text = AD1
    Text5.Text = V
    Text6.Text = Format(V, "00.000")                                '控制精度,只显示小数点后3位
    MSComm1.InBufferCount = 0
    End Select
    
    
    Picture1.ForeColor = RGB(0, 256, 0)                             '绿色波形,仿示波器
    Picture1.Line (T, 6000 - Vold * 1000)-(T, 6000 - V * 1000)      '连接两次线段形成连续波形
    Picture1.Line (T, 6000 - V * 1000)-(T + 50, 6000 - V * 1000)    '当前测量值画水平短线
        
    Vold = V
    
    If T = 0 Or T > 10000 Then
        T = 0
        Picture1.Cls                                                '清除图片框内容
        
        Picture1.ForeColor = RGB(0, 50, 0)                          '清屏后重画 浅绿色 标尺线, 颜色用RGB()函数表示
        Picture1.Line (0, 1000)-(10000, 1000)                       '画线, 注意坐标 0,0 是左上角
        Picture1.Line (0, 2000)-(10000, 2000)
        Picture1.Line (0, 3000)-(10000, 3000)
        Picture1.Line (0, 4000)-(10000, 4000)
        Picture1.Line (0, 5000)-(10000, 5000)
    End If
    
    T = T + 50
    
End Sub
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共5条打赏 ,M币+18 ,专家+1
关键词: RS232VB6电压

发帖
229
M币
405
专家
2
粉丝
16
只看该作者 1楼 发表于: 2013-08-23
请登录后查看
离线larblue

发帖
137
M币
339
专家
2
粉丝
8
只看该作者 2楼 发表于: 2013-08-23
请登录后查看
离线jinesc

发帖
2005
M币
5570
专家
9
粉丝
107
只看该作者 3楼 发表于: 2013-08-23
请登录后查看
本帖最近打赏记录:共1条打赏 ,M币+10
离线hy425

发帖
1782
M币
1030
专家
17
粉丝
239
只看该作者 4楼 发表于: 2013-08-23
回 楼主(kpj001) 的帖子
请登录后查看
离线gw168sh

发帖
132
M币
24
专家
2
粉丝
8
只看该作者 5楼 发表于: 2013-08-23
请登录后查看
离线ndust

发帖
135
M币
1660
专家
0
粉丝
7
只看该作者 6楼 发表于: 2013-08-24
请登录后查看
离线yishuizi

发帖
686
M币
1970
专家
5
粉丝
61
只看该作者 7楼 发表于: 2013-08-24
请登录后查看
离线ruiyudong

发帖
468
M币
4580
专家
2
粉丝
7
只看该作者 8楼 发表于: 2013-09-20
请登录后查看
快速回复
限80 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个