www.pudn.com > CRC16_vb.rar > crc16.frm


VERSION 5.00 
Begin VB.Form Form1  
   AutoRedraw      =   -1  'True 
   Caption         =   "Form1" 
   ClientHeight    =   3090 
   ClientLeft      =   60 
   ClientTop       =   450 
   ClientWidth     =   4680 
   LinkTopic       =   "Form1" 
   ScaleHeight     =   3090 
   ScaleWidth      =   4680 
   StartUpPosition =   3  'Windows Default 
End 
Attribute VB_Name = "Form1" 
Attribute VB_GlobalNameSpace = False 
Attribute VB_Creatable = False 
Attribute VB_PredeclaredId = True 
Attribute VB_Exposed = False 
 
Option Explicit 
 
Dim uchCRCHi As Byte 
Dim uchCRCLo As Byte 
 
Private Sub Form_Load() 
Dim byteCRC(5) As Byte 
 
byteCRC(0) = &H10 
byteCRC(1) = &H6 
byteCRC(2) = &H0 
byteCRC(3) = &H0 
byteCRC(4) = &HB 
byteCRC(5) = &HB8 
 
Result_Crc16 byteCRC, 0, 6 
Print Hex(uchCRCHi) 
Print Hex(uchCRCLo) 
End Sub 
 
Private Sub Result_Crc16(ByVal puchMsgg As Variant, ByVal Start As Integer, ByVal leng As Integer) 
Dim uIndex  As Integer 
Dim auchCRCHi 
Dim auchCRCLo 
Dim i As Integer 
auchCRCHi = Array(&H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H1, &HC0, _ 
&H80, &H41, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, _ 
&H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, &H1, &HC0, _ 
&H80, &H41, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, _ 
&H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H0, &HC1, _ 
&H81, &H40, &H1, &HC0, &H80, &H41, &H1, &HC0, &H80, &H41, _ 
&H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H0, &HC1, _ 
&H81, &H40, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, _ 
&H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H1, &HC0, _ 
&H80, &H41, &H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, _ 
&H1, &HC0, &H80, &H41, &H1, &HC0, &H80, &H41, &H0, &HC1, _ 
&H81, &H40, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, _ 
&H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H1, &HC0, _ 
&H80, &H41, &H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, _ 
&H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H1, &HC0, _ 
&H80, &H41, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, _ 
&H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H1, &HC0, _ 
&H80, &H41, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, _ 
&H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, &H1, &HC0, _ 
&H80, &H41, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, _ 
&H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H1, &HC0, _ 
&H80, &H41, &H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, _ 
&H1, &HC0, &H80, &H41, &H1, &HC0, &H80, &H41, &H0, &HC1, _ 
&H81, &H40, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, _ 
&H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40) 
 
auchCRCLo = Array(&H0, &HC0, &HC1, &H1, &HC3, &H3, &H2, &HC2, &HC6, &H6, _ 
&H7, &HC7, &H5, &HC5, &HC4, &H4, &HCC, &HC, &HD, &HCD, _ 
&HF, &HCF, &HCE, &HE, &HA, &HCA, &HCB, &HB, &HC9, &H9, _ 
&H8, &HC8, &HD8, &H18, &H19, &HD9, &H1B, &HDB, &HDA, &H1A, _ 
&H1E, &HDE, &HDF, &H1F, &HDD, &H1D, &H1C, &HDC, &H14, &HD4, _ 
&HD5, &H15, &HD7, &H17, &H16, &HD6, &HD2, &H12, &H13, &HD3, _ 
&H11, &HD1, &HD0, &H10, &HF0, &H30, &H31, &HF1, &H33, &HF3, _ 
&HF2, &H32, &H36, &HF6, &HF7, &H37, &HF5, &H35, &H34, &HF4, _ 
&H3C, &HFC, &HFD, &H3D, &HFF, &H3F, &H3E, &HFE, &HFA, &H3A, _ 
&H3B, &HFB, &H39, &HF9, &HF8, &H38, &H28, &HE8, &HE9, &H29, _ 
&HEB, &H2B, &H2A, &HEA, &HEE, &H2E, &H2F, &HEF, &H2D, &HED, _ 
&HEC, &H2C, &HE4, &H24, &H25, &HE5, &H27, &HE7, &HE6, &H26, _ 
&H22, &HE2, &HE3, &H23, &HE1, &H21, &H20, &HE0, &HA0, &H60, _ 
&H61, &HA1, &H63, &HA3, &HA2, &H62, &H66, &HA6, &HA7, &H67, _ 
&HA5, &H65, &H64, &HA4, &H6C, &HAC, &HAD, &H6D, &HAF, &H6F, _ 
&H6E, &HAE, &HAA, &H6A, &H6B, &HAB, &H69, &HA9, &HA8, &H68, _ 
&H78, &HB8, &HB9, &H79, &HBB, &H7B, &H7A, &HBA, &HBE, &H7E, _ 
&H7F, &HBF, &H7D, &HBD, &HBC, &H7C, &HB4, &H74, &H75, &HB5, _ 
&H77, &HB7, &HB6, &H76, &H72, &HB2, &HB3, &H73, &HB1, &H71, _ 
&H70, &HB0, &H50, &H90, &H91, &H51, &H93, &H53, &H52, &H92, _ 
&H96, &H56, &H57, &H97, &H55, &H95, &H94, &H54, &H9C, &H5C, _ 
&H5D, &H9D, &H5F, &H9F, &H9E, &H5E, &H5A, &H9A, &H9B, &H5B, _ 
&H99, &H59, &H58, &H98, &H88, &H48, &H49, &H89, &H4B, &H8B, _ 
&H8A, &H4A, &H4E, &H8E, &H8F, &H4F, &H8D, &H4D, &H4C, &H8C, _ 
&H44, &H84, &H85, &H45, &H87, &H47, &H46, &H86, &H82, &H42, &H43, &H83, &H41, &H81, &H80, &H40) 
 
uchCRCHi = &HFF 
uchCRCLo = &HFF 
Do While (leng <> 0) 
    uIndex = uchCRCHi Xor puchMsgg(i) 
    uchCRCHi = uchCRCLo Xor auchCRCHi(uIndex) 
    uchCRCLo = auchCRCLo(uIndex) 
    i = i + 1 
    leng = leng - 1 
Loop 
'For i = Start To leng - 1 
'    uIndex = uchCRCHi Xor puchMsgg(i) 
'    uchCRCHi = uchCRCLo Xor auchCRCHi(uIndex) 
'    uchCRCLo = auchCRCLo(uIndex) 
'Next i 
 
End Sub