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

📄 accrc.frm

📁 CRC16效验码计算,很方便计使用,在MODBUS通讯中比较有用
💻 FRM
字号:
VERSION 5.00
Begin VB.Form accrc 
   Caption         =   "CRC-16"
   ClientHeight    =   4260
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   6000
   LinkTopic       =   "Form1"
   ScaleHeight     =   4260
   ScaleWidth      =   6000
   StartUpPosition =   1  'CenterOwner
   Begin VB.TextBox Text6 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Left            =   2520
      TabIndex        =   26
      Text            =   "Text6"
      Top             =   3240
      Width           =   1095
   End
   Begin VB.TextBox Text5 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Left            =   480
      TabIndex        =   25
      Text            =   "3"
      Top             =   3240
      Width           =   1095
   End
   Begin VB.TextBox Text1 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   3
      Left            =   4440
      TabIndex        =   12
      Text            =   "58"
      Top             =   480
      Width           =   1095
   End
   Begin VB.TextBox Text1 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   2
      Left            =   3120
      TabIndex        =   11
      Text            =   "2"
      Top             =   480
      Width           =   1095
   End
   Begin VB.TextBox Text1 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   1
      Left            =   1800
      TabIndex        =   10
      Text            =   "90"
      Top             =   480
      Width           =   1095
   End
   Begin VB.TextBox Text1 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   0
      Left            =   480
      TabIndex        =   9
      Text            =   "1"
      Top             =   480
      Width           =   1095
   End
   Begin VB.TextBox Text1 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   4
      Left            =   480
      TabIndex        =   8
      Text            =   "58"
      Top             =   1320
      Width           =   1095
   End
   Begin VB.TextBox Text1 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   5
      Left            =   1800
      TabIndex        =   7
      Text            =   "58"
      Top             =   1320
      Width           =   1095
   End
   Begin VB.TextBox Text1 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   6
      Left            =   3120
      TabIndex        =   6
      Text            =   "58"
      Top             =   1320
      Width           =   1095
   End
   Begin VB.TextBox Text1 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   7
      Left            =   4440
      TabIndex        =   5
      Text            =   "58"
      Top             =   1320
      Width           =   1095
   End
   Begin VB.TextBox Text1 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   8
      Left            =   480
      TabIndex        =   4
      Text            =   "58"
      Top             =   2160
      Width           =   1095
   End
   Begin VB.TextBox Text1 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   9
      Left            =   1800
      TabIndex        =   3
      Text            =   "58"
      Top             =   2160
      Width           =   1095
   End
   Begin VB.TextBox Text1 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   10
      Left            =   3120
      TabIndex        =   2
      Text            =   "58"
      Top             =   2160
      Width           =   1095
   End
   Begin VB.TextBox Text1 
      Alignment       =   2  'Center
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   11
      Left            =   4440
      TabIndex        =   1
      Text            =   "58"
      Top             =   2160
      Width           =   1095
   End
   Begin VB.CommandButton Command2 
      Caption         =   "Command2"
      Height          =   495
      Left            =   4320
      TabIndex        =   0
      Top             =   3240
      Width           =   1095
   End
   Begin VB.Label Label3 
      AutoSize        =   -1  'True
      Caption         =   "Label3"
      Height          =   195
      Left            =   2520
      TabIndex        =   28
      Top             =   2880
      Width           =   480
   End
   Begin VB.Label Label2 
      AutoSize        =   -1  'True
      Caption         =   "数的个数"
      Height          =   195
      Left            =   720
      TabIndex        =   27
      Top             =   3000
      Width           =   720
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数据4"
      Height          =   195
      Index           =   3
      Left            =   4800
      TabIndex        =   24
      Top             =   240
      Width           =   450
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数据3"
      Height          =   195
      Index           =   2
      Left            =   3360
      TabIndex        =   23
      Top             =   240
      Width           =   450
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数据2"
      Height          =   195
      Index           =   1
      Left            =   2040
      TabIndex        =   22
      Top             =   240
      Width           =   450
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数据1"
      Height          =   195
      Index           =   0
      Left            =   720
      TabIndex        =   21
      Top             =   240
      Width           =   450
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数据5"
      Height          =   195
      Index           =   4
      Left            =   720
      TabIndex        =   20
      Top             =   1080
      Width           =   450
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数6"
      Height          =   195
      Index           =   5
      Left            =   2040
      TabIndex        =   19
      Top             =   1080
      Width           =   270
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数据7"
      Height          =   195
      Index           =   6
      Left            =   3360
      TabIndex        =   18
      Top             =   1080
      Width           =   450
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数据8"
      Height          =   195
      Index           =   7
      Left            =   4800
      TabIndex        =   17
      Top             =   1080
      Width           =   450
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数据9"
      Height          =   195
      Index           =   8
      Left            =   600
      TabIndex        =   16
      Top             =   1920
      Width           =   450
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数据10"
      Height          =   195
      Index           =   9
      Left            =   1920
      TabIndex        =   15
      Top             =   1920
      Width           =   540
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数据11"
      Height          =   195
      Index           =   10
      Left            =   3240
      TabIndex        =   14
      Top             =   1920
      Width           =   540
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数据12"
      Height          =   195
      Index           =   11
      Left            =   4800
      TabIndex        =   13
      Top             =   1920
      Width           =   540
   End
End
Attribute VB_Name = "accrc"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False


Private Sub Command2_Click()
Dim XMT(0 To 12)
Dim CT, CH, CL, C1, C2 As Integer  'CT判断低位,CH判断是否小于零,
Dim i, j, N As Integer
Dim CRCTMP

CRCTMP = &HFFFF
N = Text5.Text
For i = 1 To N
XMT(i) = "&H" & Text1(i - 1).Text   '&H表示16进制
Next i

For i = 1 To N
 CRCTMP = CRCTMP Xor (XMT(i))
  For j = 1 To 8
   CT = CRCTMP And &H1                     '和1求与看最后一位是不是0,
   If CRCTMP < 0 Then
     CH = 1
   Else
     CH = 0
     GoTo 180
   End If
       CRCTMP = CRCTMP And &H7FFF          '如果为负数,把最高位变为零
180:   CRCTMP = Int(CRCTMP / 2)
   If CH = 1 Then CRCTMP = CRCTMP Or &H4000
   If CT = 1 Then CRCTMP = CRCTMP Xor &HA001
  Next j
 Next i
 If CRCTMP < 0 Then
 CL = 1
 CRCTMP = CRCTMP And &H7FFF
 Else
 CL = 0
 End If
 C1 = CRCTMP And &HFF                       '高8位  因为相反
 C2 = (CRCTMP And &HFF00) / 256             '低8位
 If CL = 1 Then C2 = C2 Or &H80
 Text6 = Hex$(C1) & "/" & Hex$(C2)
 Label3.Caption = CRCTMP
End Sub

⌨️ 快捷键说明

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