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

📄 readme.txt

📁 基于非接触IC的卡的一个综合功能的实现
💻 TXT
字号:
'cntState为连接状态量,True为PC与读卡器处于连接状态,False为断开状态
Dim cntStatus As Boolean

'激活卡
Private Sub activeCard_Click()
    status = RFMifare_Select(cdsnr)
    ListBox.AddItem " "
    If status = 0 Then
        ListBox.AddItem "卡片激活成功!"
    Else
        ListBox.AddItem "卡片激活失败!"
    End If
End Sub

'呼叫卡按钮
Private Sub callCard_Click()
    callMode.Show 1
    If ans = 0 Then
        ListBox.AddItem "请重新输入命令!"
        Exit Sub
    End If
    If ycallmode = 2 Then
        ListBox.Clear
        ListBox.AddItem "呼叫操作取消!"
        Exit Sub
    End If
    status = RFMifare_Request(ycallmode, cdtype)
    ListBox.Clear
    ListBox.AddItem " "
    If status = 0 Then
        If cdtype = 4 Then
            ListBox.AddItem "呼叫成功!"
        End If
    Else
        ListBox.AddItem "呼叫失败!"
    End If
    
End Sub

'清屏按钮
Private Sub ClearScreen_Click()
    'MousePointer = 99
    ListBox.Clear
    'MousePointer = 0
End Sub

'连接按钮
Private Sub Cnt_Click()
    Dim Port As Long
    Dim mcmno As Long
    
    statue = AutoLinkCom(Port)
    ListBox.AddItem " "
    If statue = 0 Then
        status = RFMifare_Mcmno(mcmno)
        If mcmno = 17 Then
            ListBox.AddItem "连接成功!"
            'driver.enable = True
            
            '连接成功,按钮可用
            Cnt.Enabled = False
            ReadVer.Enabled = True
            Discnt.Enabled = True
            ClearScreen.Enabled = True
            Discnt.Enabled = True
            LightCtl.Enabled = True
            callCard.Enabled = True
            readCardNo.Enabled = True
            activeCard.Enabled = True
            downloadPwd.Enabled = True
            pwdAuth.Enabled = True
            readData.Enabled = True
            writeData.Enabled = True
            
            cntStatus = True
        Else
            ListBox.AddItem "请重新连接!"
        End If
    Else
        ListBox.AddItem "通信口连接失败!"
    End If
    If cntStatus = True Then
        cntlabel.Caption = "连接状态:连接"
    Else
        cntlabel.Caption = "连接状态:断开"
    End If
End Sub

'断开连接按钮
Private Sub Discnt_Click()
    
    status = UnLinkCom()
    If status = 0 Then
        ListBox.Clear
        ListBox.AddItem " "
        ListBox.AddItem "断开连接成功!"
        
        Cnt.Enabled = True
        ReadVer.Enabled = False
        Discnt.Enabled = False
        ClearScreen.Enabled = False
        Discnt.Enabled = False
        LightCtl.Enabled = False
        callCard.Enabled = False
        readCardNo.Enabled = False
        activeCard.Enabled = False
        downloadPwd.Enabled = False
        pwdAuth.Enabled = False
        readData.Enabled = False
        writeData.Enabled = False

        cntStatus = False
    Else
        ListBox.Clear
        ListBox.AddItem " "
        ListBox.AddItem "断开连接失败!"
    End If
    If cntStatus = True Then
        cntlabel.Caption = "连接状态:连接"
    Else
        cntlabel.Caption = "连接状态:断开"
    End If
End Sub

'下载密码
Private Sub downloadPwd_Click()
    Dim Ymima(6) As Byte
    Dim mode As Long
    If cdtype = 4 Then
        mimaflag = 1
        mima.Show 1
        If ans = 0 Then
            ListBox.AddItem "请重新输入命令!"
            Exit Sub
        End If
        cdpage = datasector
        mode = mimanum * 4
        For i = 0 To 5
            Ymima(i) = Val("&h" + Mid(Trim(mimacode), i * 2 + 1, 2))
        Next i
        status = RFMifare_LoadKey(mode, cdpage, Ymima(0))
        ListBox.Clear
        ListBox.AddItem " "
        If status = 0 Then
            ListBox.AddItem "密码传送成功!"
            ListBox.AddItem ""
        Else
            ListBox.AddItem "密码传送失败!"
        End If
    End If
End Sub

'退出按钮
Private Sub Exit_Click()

    '在程序退出之前,先检查PC是否已和读卡器断开
    If cntStatus = True Then
        MsgBox "仍然处于与读卡设备连接状态中,请先断开与读卡设备的连接!"
    Else
        End
    End If
End Sub

'窗体加载
Private Sub Form_Load()
    cntStatus = False
    Cnt.Enabled = True
    
    '按钮初始化为不可用
    LightCtl.Enabled = False
    ReadVer.Enabled = False
    Discnt.Enabled = False
    ClearScreen.Enabled = False
    callCard.Enabled = False
    readCardNo.Enabled = False
    activeCard.Enabled = False
    downloadPwd.Enabled = False
    pwdAuth.Enabled = False
    readData.Enabled = False
    writeData.Enabled = False
    
    
    cntlabel.Caption = "连接状态:断开"
End Sub

'灯控按钮
Private Sub LightCtl_Click()
    Dim mode As Long
    Dim actiontime As Long
    Dim intervaltime As Long
    Dim count As Long
    mode = 7
    actiontime = 30
    intervaltime = 30
    count = 3
    
    status = ALARM(mode, actiontime, intervaltime, count)
    If status = 0 Then
        ListBox.Clear
        ListBox.AddItem " "
        ListBox.AddItem "读控制软件版本号成功!"
    Else
        ListBox.AddItem " "
        ListBox.AddItem "读控制软件版本号失败!"
    End If
End Sub

'密码认证

Private Sub pwdAuth_Click()
    Dim mode As Long
    Dim sector As Long
    Dim blockno As Long
    mimaflag = 0
    If cdtype = 4 Then
        mimaflag = 0
        mima.Show 1
        If ans = 0 Then
            ListBox.AddItem "请重新输入命令!"
            Exit Sub
        End If
        cdpage = datasector
        mode = mimanum * 4
        If mimanum = 2 Then
            ListBox.Clear
            ListBox.AddItem "密码输入错误!"
            Exit Sub
        End If
        blockno = (datasector + 1) * 4 - 1
        status = RFMifare_Authentication(mode, cdpage, blockno)
    Else
        mimaflag = 1
        'ML10MIMA.show1
        If ans = 0 Then
            ListBox.AddItem "请重新输入命令!"
            Exit Sub
        End If
        mode = datasector
        If mode = 0 Then
            blockno = 6
        Else
            blockno = 8
        End If
        status = RFMifare_Authentication(mide, 0, blockno)
    End If
    ListBox.Clear
    ListBox.AddItem " "
    If status = 0 Then
        ListBox.AddItem "密码认证通过!"
    Else
        ListBox.AddItem "密码认证未通过!"
    End If
End Sub

'读卡号
Private Sub readCardNo_Click()
    Dim temp As String
    'Dim j As Integer
    ListBox.Clear
    ListBox.AddItem " "
    status = RFMifare_AntiColl(cdsnr)
    If status = 0 Then
        ListBox.AddItem "卡片序列号读取成功!"
        temp = "000000" + Hex(cdsnr)
        CardNo.Text = Mid(temp, Len(temp) - 7, 8)
        
    Else
        ListBox.AddItem "序列号读取失败!"
        CardNo.Text = ""
    End If
    
End Sub

'读数据
Private Sub readData_Click()
    If cdtype = 4 Then
    readflag = 1
        inputdata.Show 1
        cdblock = datasector * 4 + datablock
        Else
        ListBox.AddItem "未知卡型!"
        End If
        If ans = 0 Then
        ListBox.AddItem "请重新输入!"
        Exit Sub
    End If
    status = RFMifare_Read(cdblock, ReadBuff(0))
    ListBox.Clear
    ListBox.AddItem " "
    If status = 0 Then
        ListBox.AddItem "读数据块成功!"
        Dim atemp As String
        Dim atemp1 As String
        For i = 0 To 15
            atemp1 = Mid("00" + Hex(ReadBuff(i)), Len("00" + Hex(ReadBuff(i))) - 1)
            atemp = atemp + " " + atemp1
        Next i
        ListBox.AddItem atemp
    Else
        ListBox.AddItem "读数据失败!"
    End If
        
End Sub

'版本读取按钮
Private Sub ReadVer_Click()
    Dim mcmver(20) As Byte
    Dim temp As String
    Dim i As Byte
    status = DEVVER(mcmver(0))
    If status = 0 Then
        ListBox.Clear
        ListBox.AddItem " "
        ListBox.AddItem "读控制软件版本号成功!"
        temp = ""
        For i = 0 To 7
            temp = temp + Hex(mcmver(i))
        Next
        ListBox.AddItem temp
    Else
        ListBox.AddItem " "
        ListBox.AddItem "读控制软件版本号失败!"
    End If
    
End Sub

'写数据
Private Sub writeData_Click()
    Dim mima(6) As Byte
    Dim m1str As String * 32
    readflag = 0
    inputdata.Show 1
    cdblock = datasector * 4 + datablock
    If ans = 0 Then
        ListBox.AddItem "请重新输入命令!"
        Exit Sub
    End If
    For i = 0 To 15
        ReadBuff(i) = Val("&h" + Mid(Trim(dataVal), i * 2, 2))
    Next i
    status = RFMifare_Write(cdblock, ReadBuff(0))
    
    ListBox.Clear
    ListBox.AddItem ""
    If ans = 0 Then
        ListBox.AddItem "数据写入成功!"
    Else
        ListBox.AddItem "数据写入失败!"
    End If
    
        
End Sub

⌨️ 快捷键说明

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