在好例子网,分享、交流、成长!
您当前所在位置:首页ASP 开发实例VB界面编程 → vb6.0 读取串口数据

vb6.0 读取串口数据

VB界面编程

下载此实例
  • 开发语言:ASP
  • 实例大小:0.02M
  • 下载次数:63
  • 浏览次数:536
  • 发布时间:2018-11-28
  • 实例类别:VB界面编程
  • 发 布 人:红豆杉
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 串口 vb 0 数据

实例介绍

【实例简介】

【实例截图】

from clipboard

【核心代码】

VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.UserControl comv 
   ClientHeight    =   5760
   ClientLeft      =   0
   ClientTop       =   0
   ClientWidth     =   5010
   ScaleHeight     =   5760
   ScaleWidth      =   5010
   Begin VB.CommandButton Command3 
      Caption         =   "清空数据重新接收"
      Height          =   1095
      Left            =   4320
      TabIndex        =   17
      Top             =   120
      Width           =   615
   End
   Begin VB.TextBox Text6 
      Height          =   375
      Left            =   3360
      TabIndex        =   16
      Top             =   960
      Width           =   855
   End
   Begin VB.CommandButton Command2 
      Caption         =   "开始接收"
      Height          =   375
      Left            =   3360
      TabIndex        =   15
      Top             =   5280
      Width           =   1215
   End
   Begin VB.PictureBox Picture2 
      BackColor       =   &H8000000E&
      Height          =   3255
      Left            =   0
      ScaleHeight     =   3195
      ScaleWidth      =   4875
      TabIndex        =   13
      Top             =   1320
      Visible         =   0   'False
      Width           =   4935
   End
   Begin VB.CommandButton Command1 
      Caption         =   "数据曲线显示"
      Height          =   375
      Left            =   1440
      TabIndex        =   12
      Top             =   5280
      Width           =   1455
   End
   Begin VB.Timer Timer1 
      Interval        =   100
      Left            =   4200
      Top             =   4080
   End
   Begin VB.TextBox Text5 
      Enabled         =   0   'False
      Height          =   270
      Left            =   3240
      TabIndex        =   7
      Top             =   4785
      Width           =   1575
   End
   Begin VB.TextBox Text4 
      Enabled         =   0   'False
      Height          =   270
      Left            =   600
      TabIndex        =   6
      Top             =   4785
      Width           =   1575
   End
   Begin VB.PictureBox Picture1 
      BackColor       =   &H8000000E&
      Height          =   3255
      Left            =   0
      ScaleHeight     =   3195
      ScaleWidth      =   4875
      TabIndex        =   0
      Top             =   1320
      Width           =   4935
      Begin VB.TextBox Text3 
         BorderStyle     =   0  'None
         Height          =   270
         Left            =   4560
         TabIndex        =   3
         Top             =   2760
         Width           =   255
      End
      Begin VB.TextBox Text2 
         BorderStyle     =   0  'None
         Height          =   270
         Left            =   2280
         TabIndex        =   2
         Top             =   600
         Width           =   255
      End
      Begin VB.TextBox Text1 
         BorderStyle     =   0  'None
         Height          =   270
         Left            =   120
         TabIndex        =   1
         Top             =   2760
         Width           =   255
      End
   End
   Begin MSCommLib.MSComm MSComm1 
      Left            =   3600
      Top             =   0
      _ExtentX        =   1005
      _ExtentY        =   1005
      _Version        =   393216
      CommPort        =   3
      DTREnable       =   -1  'True
      InBufferSize    =   1
      InputLen        =   1
      RThreshold      =   1
   End
   Begin MSComDlg.CommonDialog CD 
      Left            =   3720
      Top             =   480
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   393216
   End
   Begin VB.Label Label7 
      Caption         =   "第0个数据(max50)"
      Height          =   495
      Left            =   120
      TabIndex        =   14
      Top             =   5160
      Width           =   1335
   End
   Begin VB.Label Label6 
      Caption         =   "接受结果:"
      Height          =   375
      Left            =   0
      TabIndex        =   11
      Top             =   840
      Width           =   975
   End
   Begin VB.Label Label3 
      Caption         =   "接收数据:"
      Height          =   375
      Left            =   0
      TabIndex        =   10
      Top             =   240
      Width           =   975
   End
   Begin VB.Label Label5 
      Caption         =   "com口地址:"
      Height          =   375
      Left            =   2280
      TabIndex        =   9
      Top             =   4800
      Width           =   1095
   End
   Begin VB.Label Label4 
      Caption         =   "数据:"
      Height          =   375
      Left            =   120
      TabIndex        =   8
      Top             =   4800
      Width           =   735
   End
   Begin VB.Label Label2 
      Height          =   375
      Left            =   960
      TabIndex        =   5
      Top             =   840
      Width           =   3255
   End
   Begin VB.Label Label1 
      Height          =   375
      Left            =   960
      TabIndex        =   4
      Top             =   240
      Width           =   3255
   End
End
Attribute VB_Name = "comv"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Dim dat(0 To 20) As Integer
Dim test
Dim xiaoshu, check1, check2, i, j, k, count, flat As Integer
Dim x, y, r, rad As Single
Dim n
Dim dL As New Collection
Dim CL As New Collection
Dim DRW As New clsLineGraph

Public Sub load()
Dim temp
Dim i, j As Integer
                If count <> 0 Then
                res = MsgBox("当前数据数否保存?", vbYesNo)
                If res = 6 Then
                    Call store
                End If
                End If
CD.ShowOpen
i = 0
If CD.FileName <> "" Then
Open CD.FileName For Input As #1

Do While Not EOF(1)
For j = 1 To 3
Input #1, temp
If j = 1 Then
timenow(i) = temp
End If
If j = 2 Then
comad(i) = temp
End If
If j = 3 Then
data(i) = temp
i = i   1
End If
Next j
Loop
Close 1
count = i
Form1.Text4 = timenow(0)
Form1.Text5 = timenow(count - 1)
            Form1.Text1 = maxdata()
            Form1.Text2 = mindata()
            Form1.Text3 = avdata()
MsgBox ("数据读取完成!")
Command2.Enabled = False
End If
End Sub

Public Sub store()
Dim str As String
j = 0
g = count
  '      Open "data.txt" For Append As #1
   '               Print #1, "        时间     " & "   地址 " & "   数据"
    '    Close 1
        If count <> 0 Then
        str = Format(Now, "yyyymmddhhmmss") & ".txt"
        
        Open str For Append As #1
        Do While j <> g
                  Print #1, timenow(j) & "    " & comad(j) & "     " & data(j)
                  j = j   1
                  Loop
        Close 1
        
MsgBox ("完成数据储存!")
        Else
        MsgBox ("无数据,无法储存!")
        End If

End Sub


Private Sub Command2_Click()
If MSComm1.PortOpen = True Then
    MSComm1.PortOpen = False
    Command2.Caption = "开始接收"

Else
    Command2.Caption = "停止接收"
    MSComm1.PortOpen = True
        If count = 0 Then
        Form1.Text4.Text = Format(Now, "yyyy-mm-dd-hh:mm:ss")
    End If
    Call Draw(x - r, y)
End If

End Sub

Private Sub Command3_Click()

Command2.Enabled = True
                If count <> 0 Then
                res = MsgBox("当前数据数否保存?", vbYesNo)
                If res = 6 Then
                    Call store
                End If
                End If
count = 0
data(0) = 0
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Form1.Text1.Text = ""
Form1.Text2.Text = ""
Form1.Text3.Text = ""
End Sub

Private Sub MSComm1_OnComm()
temp = MSComm1.Input

'Private Function com(temp As Integer)

If temp = Chr(2) Then
 Label1.Caption = "start "
 Label2.Caption = " "
 xiaoshu = 0
 check1 = 0
 check2 = 0
 i = 1
Else
   If temp = Chr(3) Then
   Label1.Caption = Label1.Caption   " over"
   check1 = dat(1)
   
   For j = 2 To 8
   check1 = dat(j) Xor check1
   
   Next j
   check2 = ansii_hex(dat(9)) * 16   ansii_hex(dat(10))
        If check1 = check2 Then
            xiaoshu = dat(8) - 48
            n = (dat(2) - 48) * 100   (dat(3) - 48) * 10   (dat(4) - 48) * 1   (dat(5) - 48) * 0.1   (dat(6) - 48) * 0.01   (dat(7) - 48) * 0.001
            For j = 1 To 3 - xiaoshu
            n = n * 10
            Next j
            

            
            angle = (n * 180 / 1000) * rad
            If flat = 1 Then
            a = n / 10
            CL.Add Int(a)
            DRW.Draw
            Else
            'n = Val(Mid(Label1.Caption, 3, 6))
            'xiaoshu = Asc(Mid(Label1.Caption, 9, 1)) - 48
            
            Call Draw(x - (r - 100) * Cos(angle), y - (r - 100) * Sin(angle))
            End If
            
            Label2.Caption = " 数据正确接收成功:" & n
            Text4.Text = n
            Text6.Text = n
            data(count) = n
            
            Form1.Text1 = maxdata()
            Form1.Text2 = mindata()
            Form1.Text3 = avdata()
            Form1.Text5 = Format(Now, "yyyy-mm-dd-hh:mm:ss")
            
            timenow(count) = Format(Now, "yyyymmddhhmmss")
            comad(count) = MSComm1.CommPort
            count = count   1
            Label7.Caption = "第" & count & "个数据(max50)"
            If count = 50 Then
                res = MsgBox("系统预设保存数据个数(50)不足,是否将现有数据保存到文件,并开始新的采集?", vbYesNo)
                If res = 6 Then
                
                    Call store
                    count = 0
                Else
                    End
                End If
            End If
                
        Else
            Label2.Caption = "校验失败,数据有误"
        End If
        Text5.Text = MSComm1.CommPort
   Else
    dat(i) = Asc(temp)
    i = i   1
    Label1.Caption = Label1.Caption   temp
   End If
End If

End Sub




Public Function ansii_hex(a As Integer) As Integer
If a > 58 Then
ansii_hex = a - 65   10
Else
ansii_hex = a - 48
End If
End Function

Private Sub Command1_Click()
If flat = 0 Then
flat = 1
Set DRW.DataCollection = CL
Set DRW.PictureBox = Picture2
Do: CL.Add 0: Loop While CL.count < 200

    DRW.GridColor = &H808000
    DRW.GridVisible = True
Picture1.Visible = False
Picture2.Visible = True
Command1.Caption = "电压表显示"
    DRW.PicBackground = vbBlack
    DRW.PicForeground = vbGreen
For j = 0 To count - 1
CL.Add (data(j) / 10)
DRW.Draw
Next j

Else
flat = 0
Command1.Caption = "数据曲线显示"
Picture1.Visible = True
Picture2.Visible = False
Call Draw(x - r   100, y)

End If
End Sub

'Private Sub Timer1_Timer()
'If k <> 12 Then
'com (test(k))
'k = k   1
'Else
'Timer1.Enabled = False
'k = 0
'End If
'End Sub

Private Sub UserControl_Initialize()
Timer1.Enabled = False

x = Picture1.ScaleWidth / 2   Picture1.Left
y = Picture1.ScaleHeight   Picture1.ScaleTop - 200
r = Picture1.ScaleWidth / 2 - 200
rad = Atn(1) / 45

    
flat = 0
count = 0
k = 0

test = Array(2, 43, 48, 49, 50, 51, 48, 49, 51, 49, 57, 3)

End Sub

Public Sub Draw(ByVal dx As Single, ByVal dy As Single)

            Picture1.Cls
            Picture1.Circle (x, y), r, vbBlack
            Picture1.Line (x, y)-(dx, dy), B
            Text1.Text = 0
            Text2.Text = 500
            Text3.Text = 1000
End Sub

Public Function maxdata() As Double
max = data(0)
For p = 1 To count - 1
If max < data(p) Then
max = data(p)
End If
Next p

maxdata = max
End Function

Public Function mindata() As Double
min = data(0)
For p = 1 To count - 1
If min > data(p) Then
min = data(p)
End If
Next p
mindata = min
End Function

Public Function avdata() As Double
con = data(0)
For p = 1 To count
con = con   data(p)
Next p

av = con / (count   1)

avdata = av
End Function

标签: 串口 vb 0 数据

实例下载地址

vb6.0 读取串口数据

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警