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

📄 串口.frm

📁 一个简单的RF卡读卡号的VB程序
💻 FRM
📖 第 1 页 / 共 3 页
字号:
      Begin VB.Label Label8 
         BackColor       =   &H00E0E0E0&
         Caption         =   "S_CLK"
         BeginProperty Font 
            Name            =   "Arial"
            Size            =   12
            Charset         =   0
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   375
         Left            =   840
         TabIndex        =   5
         Top             =   1080
         Width           =   1095
      End
      Begin VB.Label Label9 
         BackColor       =   &H00E0E0E0&
         Caption         =   "M_EXYNC"
         BeginProperty Font 
            Name            =   "Arial"
            Size            =   12
            Charset         =   0
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   375
         Left            =   3360
         TabIndex        =   4
         Top             =   1320
         Width           =   1455
      End
      Begin VB.Label Label10 
         BackColor       =   &H00E0E0E0&
         Caption         =   "S_EXYNC"
         BeginProperty Font 
            Name            =   "Arial"
            Size            =   12
            Charset         =   0
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   375
         Left            =   3360
         TabIndex        =   3
         Top             =   480
         Width           =   1455
      End
      Begin VB.Label Label11 
         BackColor       =   &H00E0E0E0&
         Caption         =   "M_TIME"
         BeginProperty Font 
            Name            =   "Arial"
            Size            =   12
            Charset         =   0
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   375
         Left            =   6000
         TabIndex        =   2
         Top             =   1200
         Width           =   1455
      End
      Begin VB.Label Label12 
         BackColor       =   &H00E0E0E0&
         Caption         =   "S_TIME"
         BeginProperty Font 
            Name            =   "Arial"
            Size            =   12
            Charset         =   0
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   375
         Left            =   6000
         TabIndex        =   1
         Top             =   1080
         Width           =   1455
      End
   End
   Begin MSCommLib.MSComm com1 
      Left            =   10080
      Top             =   8040
      _ExtentX        =   1005
      _ExtentY        =   1005
      _Version        =   393216
      DTREnable       =   -1  'True
      InputLen        =   1
      RThreshold      =   1
      BaudRate        =   1200
      SThreshold      =   1
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Dim switch    '时序板工作标志
Dim s_falg    '状态检测标志

'接受来自C51的串口数据,进行状态检测
Private Sub com1_OnComm()
  Dim intnum

  intnum = com1.Input
  
  If s_flag = 0 Then      '可以检测
  
   If switch = 0 Then     '目前是主时钟电路工作
   
      Select Case intnum
    
        Case 0
          Shape1(0).FillColor = RGB(255, 0, 0)
        Case 2
          Shape1(2).FillColor = RGB(255, 0, 0)
        Case 4
          Shape1(4).FillColor = RGB(255, 0, 0)
      End Select
      
   End If
  
   If switch = 1 Then     '目前是备时钟电路工作
   
     Select Case intnum
    
      Case 1
        Shape1(1).FillColor = RGB(255, 0, 0)
      Case 3
        Shape1(3).FillColor = RGB(255, 0, 0)
      Case 5
        Shape1(5).FillColor = RGB(255, 0, 0)
     End Select
    
    End If
  
  End If
End Sub

'选择速高比后,才可以进行选择侧摆角度
Private Sub Combo1_click()
  Combo2.Enabled = True
End Sub
'选择完速高比和测摆角度后,才可以发送
Private Sub Combo2_click()
  Command1.Enabled = True
End Sub

'速高比、测摆角的发送
Private Sub Command1_Click()
    '常量定义
    Const pi = 3.14159265358979
    '变量定义
    Dim tint, ww As Single
    Dim tcod, tsen As Integer
    Dim he, she
    
    '积分时间计算与速高比发送
    ww = Val(Combo2.Text)
    
    If Combo1.Text = "7.08/500" Then
      
      tint = 10.128 / ((11) * Cos(ww / 180 * pi) * (7.08 / 500))
      
      com1.Output = "0" + Combo2.Text
  
   '在下面两个速高比条件下,仅进行了计算,未模拟发送
    ElseIf Combo1.Text = "7.08/600" Then
    
      tint = 10.128 / ((11) * Cos(ww / 180 * pi) * (7.08 / 600))
    
    ElseIf Combo1.Text = "7.08/450" Then
      
      tint = 10.128 / ((11) * Cos(ww / 180 * pi) * (7.08 / 450))
      
    End If
    
    '积分时间显示
    Text2.Text = Left(CStr(tint), 5)
        
    '控制码解算
    tcod = Val(Text2.Text) * 1000
    tsen = tcod / 20.8 - 128 - 2048 - 950
      
    '控制码显示
    he = Hex(tsen)
      
      If Len(she) < 10 Then
        For i = 1 To 4 - Len(he)
         he = "0" + he
        Next
      End If
      
    '16进值显示
    Label6.Caption = "HEX:" + Right(CStr(he), 3)
      
    '转换为2进值
    she = hex2bin(Right(CStr(he), 3))
    
    '2进值显示
    Label5.Caption = "BIN:" + she
      
    Shape1(6).FillColor = RGB(0, 255, 0)
      Shape1(7).FillColor = RGB(255, 0, 0)
End Sub
'结束程序
Private Sub Command2_Click()

  com1.PortOpen = False
  End

End Sub

'软复位发送
Private Sub Command3_Click()

  com1.Output = "500"
  
End Sub
'选择主时钟工作
Private Sub Command5_Click()
  s_flag = 1
  
  com1.Output = "600"
    
  '写主时钟工作标志
  switch = 0
  
  Command5.Enabled = False
  Command4.Enabled = True
  '检测灯设置
  Shape1(1).FillColor = RGB(255, 255, 255)
  Shape1(3).FillColor = RGB(255, 255, 255)
  Shape1(5).FillColor = RGB(255, 255, 255)
  Shape1(0).FillColor = RGB(0, 255, 0)
  Shape1(2).FillColor = RGB(0, 255, 0)
  Shape1(4).FillColor = RGB(0, 255, 0)


  s_falg = 0

End Sub
'选择备时钟工作
Private Sub Command4_Click()

  s_flag = 1
  
  com1.Output = "700"
  
  
  '写备时钟工作标志
  switch = 1
 
  Command4.Enabled = False
  Command5.Enabled = True
  '检测灯设置
  Shape1(0).FillColor = RGB(255, 255, 255)
  Shape1(2).FillColor = RGB(255, 255, 255)
  Shape1(4).FillColor = RGB(255, 255, 255)
  Shape1(1).FillColor = RGB(0, 255, 0)
  Shape1(3).FillColor = RGB(0, 255, 0)
  Shape1(5).FillColor = RGB(0, 255, 0)
  
     
  s_falg = 0

End Sub

Private Sub Command6_Click()
Shape1(7).FillColor = RGB(0, 255, 0)
Shape1(6).FillColor = RGB(255, 0, 0)
End Sub

'程序初始化
Private Sub Form_Load()

 '初始化combo1
 Combo1.AddItem ("7.08/500")
 Combo1.AddItem ("7.08/600")
 Combo1.AddItem ("7.08/450")
 
 Combo2.AddItem ("00")
 Combo2.AddItem ("01")
 Combo2.AddItem ("02")
 Combo2.AddItem ("03")
 Combo2.AddItem ("04")
 Combo2.AddItem ("05")
 Combo2.AddItem ("06")
 Combo2.AddItem ("07")
 Combo2.AddItem ("08")
 Combo2.AddItem ("09")
 Combo2.AddItem ("10")
 Combo2.AddItem ("11")
 Combo2.AddItem ("12")
 Combo2.AddItem ("13")
 Combo2.AddItem ("14")
 Combo2.AddItem ("15")
 Combo2.AddItem ("16")
 Combo2.AddItem ("17")
 Combo2.AddItem ("18")
 Combo2.AddItem ("19")
 Combo2.AddItem ("20")
 Combo2.AddItem ("21")
 Combo2.AddItem ("22")
 Combo2.AddItem ("23")
 Combo2.AddItem ("24")
 Combo2.AddItem ("25")
 Combo2.AddItem ("26")
 Combo2.AddItem ("27")
 Combo2.AddItem ("28")
 Combo2.AddItem ("29")
 Combo2.AddItem ("30")
 
 '置初始状态

 switch = 0      '默认主时钟电路工作
 s_flag = 0
  
 '设置串口工作状态
 com1.CommPort = 1
 com1.Settings = "1200,n,8,1"

 If com1.PortOpen = False Then
  com1.PortOpen = True
  com1.OutBufferCount = 0
  com1.InBufferCount = 0
 End If

  '检测灯设置
  Shape1(1).FillColor = RGB(255, 255, 255)
  Shape1(3).FillColor = RGB(255, 255, 255)
  Shape1(5).FillColor = RGB(255, 255, 255)
  Shape1(0).FillColor = RGB(0, 255, 0)
  Shape1(2).FillColor = RGB(0, 255, 0)
  Shape1(4).FillColor = RGB(0, 255, 0)
  
  Command5.Enabled = False

End Sub
'16进制转换为2进制函数
Public Function hex2bin(SourceHex As String) As String
     Dim StrTemp As String '临时的交换,也可不定义直接对SourceHex进行修改,如果SourceHex不再有用的话.
     Dim StrLen As Integer
     
     hex2bin = ""
     StrTemp = StrConv(SourceHex, 1)
     For i = 1 To Len(SourceHex)
     Select Case Left(StrTemp, 1)
     Case 0
     hex2bin = hex2bin + "0000"
     Case 1
     hex2bin = hex2bin + "0001"
     Case 2
     hex2bin = hex2bin + "0010"
     Case 3
     hex2bin = hex2bin + "0011"
     Case 4
     hex2bin = hex2bin + "0100"
     Case 5
     hex2bin = hex2bin + "0101"
     Case 6
     hex2bin = hex2bin + "0110"
     Case 7
     hex2bin = hex2bin + "0111"
     Case 8
     hex2bin = hex2bin + "1000"
     Case 9
     hex2bin = hex2bin + "1001"
     Case "A"
     hex2bin = hex2bin + "1010"
     Case "B"
     hex2bin = hex2bin + "1011"
     Case "C"
     hex2bin = hex2bin + "1100"
     Case "D"
     hex2bin = hex2bin + "1101"
     Case "E"
     hex2bin = hex2bin + "1110"
     Case "F"
     hex2bin = hex2bin + "1111"
     End Select
     StrTemp = Mid(StrTemp, 2, Len(StrTemp) - 1)
     Next i
     
     For i = 0 To 1       '去掉前面的两个零
     
     If Left(hex2bin, 1) = "0" Then
     hex2bin = Mid(hex2bin, 2, Len(hex2bin) - 1)
     End If
     
     Next

End Function


Private Sub Label24_Click()

End Sub

Private Sub Label25_Click()

End Sub

⌨️ 快捷键说明

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