⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 本程序利用VB实现了串口读取转速计的功能
💻 FRM
字号:
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form Form1 
   Caption         =   "RM-1501转速计"
   ClientHeight    =   3585
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   5460
   LinkTopic       =   "Form1"
   ScaleHeight     =   3585
   ScaleWidth      =   5460
   StartUpPosition =   3  '窗口缺省
   Begin VB.Timer Timer1 
      Enabled         =   0   'False
      Interval        =   1000
      Left            =   2565
      Top             =   2745
   End
   Begin MSCommLib.MSComm MSComm1 
      Left            =   4140
      Top             =   1935
      _ExtentX        =   1005
      _ExtentY        =   1005
      _Version        =   393216
      DTREnable       =   0   'False
      InputMode       =   1
   End
   Begin VB.CommandButton Command2 
      Caption         =   "读取数值"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   600
      Left            =   630
      TabIndex        =   2
      Top             =   2610
      Width           =   1455
   End
   Begin VB.CommandButton Command1 
      Caption         =   "结束系统"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   600
      Left            =   3375
      TabIndex        =   0
      Top             =   2610
      Width           =   1455
   End
   Begin VB.Label lblBatt 
      AutoSize        =   -1  'True
      Caption         =   "????"
      BeginProperty Font 
         Name            =   "Arial Black"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00000000&
      Height          =   345
      Left            =   2340
      TabIndex        =   9
      Top             =   2025
      Width           =   600
   End
   Begin VB.Label Label2 
      AutoSize        =   -1  'True
      Caption         =   "电池状态:"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   285
      Index           =   3
      Left            =   585
      TabIndex        =   8
      Top             =   2070
      Width           =   1425
   End
   Begin VB.Label lblType 
      AutoSize        =   -1  'True
      Caption         =   "????"
      BeginProperty Font 
         Name            =   "Arial Black"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00C000C0&
      Height          =   345
      Left            =   2340
      TabIndex        =   7
      Top             =   1395
      Width           =   600
   End
   Begin VB.Label Label2 
      AutoSize        =   -1  'True
      Caption         =   "获取方式:"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   285
      Index           =   2
      Left            =   585
      TabIndex        =   6
      Top             =   1440
      Width           =   1425
   End
   Begin VB.Label lblUnit 
      AutoSize        =   -1  'True
      Caption         =   "????"
      BeginProperty Font 
         Name            =   "Arial Black"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00FF0000&
      Height          =   345
      Left            =   2340
      TabIndex        =   5
      Top             =   765
      Width           =   600
   End
   Begin VB.Label Label2 
      AutoSize        =   -1  'True
      Caption         =   "现在单位:"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   285
      Index           =   1
      Left            =   585
      TabIndex        =   4
      Top             =   810
      Width           =   1425
   End
   Begin VB.Label Label2 
      AutoSize        =   -1  'True
      Caption         =   "现在速度:"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   285
      Index           =   0
      Left            =   585
      TabIndex        =   3
      Top             =   180
      Width           =   1425
   End
   Begin VB.Label lblRpm 
      AutoSize        =   -1  'True
      Caption         =   "????"
      BeginProperty Font 
         Name            =   "Arial Black"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H000000FF&
      Height          =   345
      Left            =   2340
      TabIndex        =   1
      Top             =   135
      Width           =   600
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

''''''''''''''''''''''''''''''''''''''''''''''
'结束系统的按钮
'利用End指令结束系统
'''''''''''''''''''''''''''''''''''''''''''''
Private Sub Command1_Click()
  End
End Sub

''''''''''''''''''''''''''''''''''''''''''''''
'读取数值的按钮
'这其中是将定时器的状态作转态
'''''''''''''''''''''''''''''''''''''''''''''
Private Sub Command2_Click()
   Timer1.Enabled = Not Timer1.Enabled
End Sub

Function Prova_1501() As Long  '下指令byout()给prova_1501,取回转速值
    Dim Rpm&, i%, Diver&
    Dim byin() As Byte
    byin() = MSComm1.Input
    For i = LBound(byin) To UBound(byin)
       If byin(i) = 13 Then       '显示0d,为起始byte
           If byin(i + 1) = 0 Then Diver = 1          '第2byte决定小数点位置
           If byin(i + 1) = 1 Then Diver = 10
           If byin(i + 1) = 2 Then Diver = 100
           If byin(i + 1) = 4 Then Diver = 1000
           '以下查看电池状态
           If (byin(i + 2) And &H1) = 1 Then
               lblBatt.Caption = "LOW!"
           Else
               lblBatt.Caption = "OK!"
           End If
           '以下查看单位
           If (byin(i + 3) And &H1) = 1 Then
               lblUnit.Caption = "RPM"
           ElseIf (byin(i + 3) And &H2) = 2 Then
               lblUnit.Caption = "m/min"
           ElseIf (byin(i + 3) And &H4) = 4 Then
               lblUnit.Caption = "ft/min"
           ElseIf (byin(i + 3) And &H8) = 8 Then
               lblUnit.Caption = "yd/min"
           ElseIf (byin(i + 3) And &H10) = &H10 Then
               lblUnit.Caption = "RPS"
           End If
           '以下查看方式
           If (byin(i + 4) And &H1) = 1 Then
               lblType.Caption = "Normal"
           ElseIf (byin(i + 4) And &H2) = 2 Then
               lblType.Caption = "MAX"
           ElseIf (byin(i + 4) And &H4) = 4 Then
               lblType.Caption = "MIN"
           ElseIf (byin(i + 4) And &H8) = 8 Then
               lblType.Caption = "AVERAGE"
           End If
           '以下计算转速
           Rpm = CLng((CLng(Val(byin(i + 6))) + CLng(Val(byin(i + 7))) * 256& _
               + CLng(byin(i + 8)) * 256& ^ 2 + CLng(byin(i + 9)) * 256& ^ 3) / Diver)  '第7,8,9,10byte决定rpm
             Prova_1501 = Rpm
           Exit Function
      End If
    Next i
End Function


''''''''''''''''''''''''''''''''''''''''''''''
'窗体的Load事件
'在此先打开通信端口
'''''''''''''''''''''''''''''''''''''''''''''
Private Sub Form_Load()
  MSComm1.PortOpen = True
End Sub



''''''''''''''''''''''''''''''''''''''''''''''
'定时器控件的Timer事件
'将Prova_1501的转速显示到Label控件里
'''''''''''''''''''''''''''''''''''''''''''''
Private Sub Timer1_Timer()
   lblRpm.Caption = Prova_1501
End Sub


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -