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

📄 frmenter.frm

📁 上位机界面的设计和程序
💻 FRM
字号:
VERSION 5.00
Begin VB.Form frmEnter 
   Caption         =   "Form2"
   ClientHeight    =   1245
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   4080
   LinkTopic       =   "Form2"
   ScaleHeight     =   1245
   ScaleWidth      =   4080
   StartUpPosition =   2  '屏幕中心
   Begin VB.CommandButton cmdCancel 
      Caption         =   "Cancel"
      Height          =   375
      Left            =   2400
      TabIndex        =   3
      Top             =   720
      Width           =   975
   End
   Begin VB.CommandButton cmdOK 
      Caption         =   "OK"
      Default         =   -1  'True
      Height          =   375
      Left            =   2400
      TabIndex        =   2
      Top             =   240
      Width           =   975
   End
   Begin VB.TextBox Text1 
      Height          =   375
      Left            =   240
      TabIndex        =   1
      Top             =   600
      Width           =   1215
   End
   Begin VB.Label Label1 
      Caption         =   "输入数据"
      Height          =   255
      Left            =   240
      TabIndex        =   0
      Top             =   240
      Width           =   975
   End
End
Attribute VB_Name = "frmEnter"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Public index As Integer   '按下的按钮序号
Const DEMO_CH451_CMD = &H56

Private Sub cmdCancel_Click()
    mEnterBuffer = ""          '放弃按钮
    Unload Me
End Sub

Private Sub cmdOK_Click()
    Dim ilen As Integer
    Dim mDemoReq As COMMAND_PACKET
    mEnterBuffer = Text1.Text
    If index <> -1 Then              '数码管对应的按键
        Dim mNumber As Byte
        If Text1.Text <> "" Then
            Dim mBcdCode1 As Byte
            Dim mLength As Long
            
            If mEnterBuffer = " " Then
                mBcdCode1 = &H10                 ' 空格
            ElseIf mEnterBuffer = "=" Then
                mBcdCode1 = &H13
            ElseIf mEnterBuffer = "." Then
                mBcdCode1 = &H1A
            Else
                mBcdCode1 = mCharToBcd(Left(mEnterBuffer, 1))
            End If
            ilen = Len(mEnterBuffer)
            If ilen >= 2 And Right(Left(mEnterBuffer, 2), 1) = "." Then
                mBcdCode1 = mBcdCode1 Or &H80
            End If
            If mBcdCode1 <> &HFF Then            '输入的字符有效
                mNumber = index    ' 如果IDC_N1至IDC_N8有序,则结果为0-7,分别对应于各个数码管按钮
                mNumber = 7 - mNumber
                mDemoReq.mCommandCode = DEMO_CH451_CMD
                mDemoReq.mCommandCodeNot = &HFF - DEMO_CH451_CMD
                mDemoReq.mParameter(2) = &H8 Or mNumber      ' CH451命令:加载字数据到指定数码管
                mDemoReq.mParameter(1) = mBcdCode1            ' 字数据,对应于BCD译码方式
                mLength = CONST_CMD_LEN    ' 命令包的长度
                On Error Resume Next
                If CH375WriteData(mIndex, mDemoReq, mLength) Then    ' 通过CH371发送数据,成功
                ' 如果输入时mLength大于8,则成功返回时,为了更加可靠,可以检查实际发送的长度是否符合
                     mEnterBuffer = Left(mEnterBuffer, 1) ' 字符串结束符,只要一个字符
                    frmMain.Command1(index).Caption = Left(mEnterBuffer, 1)  '设置按钮上的字符
                Else
                   MsgBox "CH375WriteData 失败!", vbCritical, "信息提示"
                End If
            Else
                MsgBox "请输入字符0-9,A-F或者空格", vbExclamation, "信息提示"
            End If
        Else
            MsgBox "请至少输入一个字符0-9,A-F或者空格", vbExclamation, "信息提示"
        End If
        index = 0
        Unload Me
    ElseIf index = -1 Then       '命令按钮触发
        If Len(mEnterBuffer) >= 3 Then    ' 已经输入数据,并且长度超过3位
           ReDim mBcdCode(2) As Byte
            mBcdCode(0) = mCharToBcd(Left(mEnterBuffer, 1))
            mBcdCode(1) = mCharToBcd(Right(Left(mEnterBuffer, 2), 1))
            mBcdCode(2) = mCharToBcd(Right(Left(mEnterBuffer, 3), 1))
            If mBcdCode(0) <> &HFF And mBcdCode(1) <> &HFF And mBcdCode(2) <> &HFF Then    ' 输入的三个字符都有效
                mDemoReq.mCommandCode = DEMO_CH451_CMD
                mDemoReq.mCommandCodeNot = &HFF - DEMO_CH451_CMD
                mDemoReq.mParameter(2) = mBcdCode(0)  ' CH451命令:高4位
                mDemoReq.mParameter(1) = mBcdCode(1) * &H10 Or mBcdCode(2) ' 低8位的字节数据
                mLength = CONST_CMD_LEN    ' 命令包的长度
                If CH375WriteData(mIndex, mDemoReq, mLength) Then    ' 通过CH375发送数据,成功
                    MsgBox "命令成功发送到CH451", vbExclamation, "信息提示"
                Else
                    MsgBox "CH375WriteData 失败", vbCritical, "信息提示"
                End If
            Else
                MsgBox "请输入3个字符0-9,A-F", vbExclamation, "信息提示"
            End If
        Else
            MsgBox "请至少输入3个字符0-9,A-F", vbExclamation, "信息提示"
        End If
        Unload Me
    End If
End Sub

Private Function mCharToBcd(ByVal iChar As String) As Byte ' 输入的ASCII字符
    Dim mBCD As Byte
    If iChar >= "0" And iChar <= "9" Then
        mBCD = iChar - "0"
    ElseIf iChar >= "A" And iChar <= "F" Then
        mBCD = Asc(iChar) - Asc("A") + &HA
    ElseIf iChar >= "a" And iChar <= "f" Then
        mBCD = Asc(iChar) - Asc("a") + &HA
    Else
        mBCD = &HFF
    End If
    mCharToBcd = mBCD
End Function

⌨️ 快捷键说明

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