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

📄 vb源码.txt

📁 VB6.0小程序控制单片机P1口8位LED.很好用的
💻 TXT
📖 第 1 页 / 共 3 页
字号:
    Exit Sub
  Else
  '发送命令
  OUTdataA = "W" '
  OUTdataB = Chr(&H1)    'L8灭
  OUTdataC = Chr(&H8)    '高4位
  OUTdataD = Chr(&H0)    '低4位
  Call sendFirstbyte
  End If
  
End Sub

Private Sub Cmdflash_Click()
  
  Cmdsundry.Enabled = True
  Cmdsundry.BackColor = &H8000000F
  Cmdturn.Enabled = True
  Cmdturn.BackColor = &H8000000F
  Cmdflash.Enabled = False
  Cmdflash.BackColor = QBColor(12)
  Cmdpause.Enabled = True
  '发送命令
  OUTdataA = "W" '
  OUTdataB = "F" '
  OUTdataC = Chr(delaytime)
  OUTdataD = "\"
  Call sendFirstbyte
  
End Sub
Private Sub Cmdsundry_Click()

  Cmdflash.Enabled = True
  Cmdflash.BackColor = &H8000000F
  Cmdturn.Enabled = True
  Cmdturn.BackColor = &H8000000F
  Cmdsundry.Enabled = False
  Cmdsundry.BackColor = QBColor(12)
  Cmdpause.Enabled = True
  '发送命令
  OUTdataA = "W" '
  OUTdataB = "S" '
  OUTdataC = Chr(delaytime)
  OUTdataD = "\"
  Call sendFirstbyte
  
End Sub

Private Sub Cmdturn_Click()

  Cmdflash.Enabled = True
  Cmdflash.BackColor = &H8000000F
  Cmdsundry.Enabled = True
  Cmdsundry.BackColor = &H8000000F
  Cmdturn.Enabled = False
  Cmdturn.BackColor = QBColor(12)
  Cmdpause.Enabled = True
  '发送命令
  OUTdataA = "W" '
  OUTdataB = "T" '
  OUTdataC = Chr(delaytime)
  OUTdataD = "\"
  Call sendFirstbyte
  
End Sub
Private Sub Cmdpause_Click()

  Cmdpause.Enabled = False
  Cmdflash.Enabled = True
  Cmdflash.BackColor = &H8000000F
  Cmdsundry.Enabled = True
  Cmdsundry.BackColor = &H8000000F
  Cmdturn.Enabled = True
  Cmdturn.BackColor = &H8000000F
  '发送命令
  OUTdataA = "W" '
  OUTdataB = "P" '
  OUTdataC = "\"
  OUTdataD = "\"
  Call sendFirstbyte
  
End Sub
Private Sub Cmdofflink_Click()

  Cmdofflink.BackColor = QBColor(12)
  Cmdofflink.Enabled = False
  Cmdpause.Enabled = False
  Cmdflash.Enabled = False
  Cmdflash.BackColor = &H8000000F
  Cmdsundry.Enabled = False
  Cmdsundry.BackColor = &H8000000F
  Cmdturn.Enabled = False
  Cmdturn.BackColor = &H8000000F
  '''''''''''''''发送命令
  OUTdataA = "O"      '脱机首字符
  OUTdataB = "\"      '脱机MCU的地址
  OUTdataC = "\"      '待定
  OUTdataD = "\"      '待定
  Call sendFirstbyte
  Timer3.Enabled = False
  
End Sub

Private Sub cmdExit_Click()

  If Cmdofflink.Enabled = True Then
  
    OUTdataA = "O"      '脱机首字符
    OUTdataB = "\"      '脱机MCU的地址01H
    OUTdataC = "\"      '待定
    OUTdataD = "\"      '待定
    Call sendFirstbyte
  Else
    End
  End If
End Sub

Private Sub portswitch_Click()

  If MSComm1.PortOpen = True Then
     'MSComm1.PortOpen = False
     portled.FillColor = QBColor(8)
     portswitch.Caption = "打开串口"
     thing = "关闭串口"
     Call record
     Timer3.Enabled = False
     Cmdofflink.Enabled = False
     Cmdofflink.Value = True
     Cmdofflink.Enabled = False
     Cmdturn.Enabled = False
     Cmdsundry.Enabled = False
     Cmdflash.Enabled = False
     CmdAllbright.Enabled = False
     CmdAlldie.Enabled = False
     CmdL1bright.Enabled = False
     CmdL1die.Enabled = False
     CmdL2bright.Enabled = False
     CmdL2die.Enabled = False
     CmdL3bright.Enabled = False
     CmdL3die.Enabled = False
     CmdL4bright.Enabled = False
     CmdL4die.Enabled = False
     CmdL5bright.Enabled = False
     CmdL5die.Enabled = False
     CmdL6bright.Enabled = False
     CmdL6die.Enabled = False
     CmdL7bright.Enabled = False
     CmdL7die.Enabled = False
     CmdL8bright.Enabled = False
     CmdL8die.Enabled = False
     lablink.Caption = "连接断开!"
     lablink.ForeColor = QBColor(6)
     '增加发送命令通知MCU已关闭串口
  Else
     MSComm1.PortOpen = True
     portled.FillColor = QBColor(10)
     Cmdofflink.BackColor = &H8000000F
     portswitch.Caption = "关闭串口"
     thing = "打开串口"
     Call record
     Timer3.Enabled = True
     Cmdofflink.Enabled = True
     Cmdofflink.Enabled = True
     Cmdpause.Enabled = True
     Cmdturn.Enabled = True
     Cmdsundry.Enabled = True
     Cmdflash.Enabled = True
     CmdAllbright.Enabled = True
     CmdAlldie.Enabled = True
     CmdL1bright.Enabled = True
     CmdL1die.Enabled = True
     CmdL2bright.Enabled = True
     CmdL2die.Enabled = True
     CmdL3bright.Enabled = True
     CmdL3die.Enabled = True
     CmdL4bright.Enabled = True
     CmdL4die.Enabled = True
     CmdL5bright.Enabled = True
     CmdL5die.Enabled = True
     CmdL6bright.Enabled = True
     CmdL6die.Enabled = True
     CmdL7bright.Enabled = True
     CmdL7die.Enabled = True
     CmdL8bright.Enabled = True
     CmdL8die.Enabled = True
     signmsg = False
     '增加发送命令通知MCU已打开串口
  End If
  
End Sub

Private Sub relink_Click()

  If MSComm1.PortOpen = True Then
     MSComm1.PortOpen = False
     Timer3.Enabled = False
  End If
  Cmdofflink.BackColor = &H8000000F
  Cmdflash.Enabled = True
  Cmdflash.BackColor = &H8000000F
  Cmdsundry.Enabled = True
  Cmdsundry.BackColor = &H8000000F
  Cmdturn.Enabled = True
  Cmdturn.BackColor = &H8000000F
  Cmdpause.Enabled = False
  CmdAllbright.Enabled = True
  CmdAlldie.Enabled = True
  Cmdofflink.Enabled = True
  MSComm1.CommPort = 1
  MSComm1.PortOpen = True
  portled.FillColor = QBColor(10)
  portswitch.Caption = "关闭串口"
  ComboPort.ListIndex = 0 '显示“COM1”
  thing = "重新启动连接!"
  Call record
  '发送命令
  OUTdataA = "L"
  OUTdataB = "\"
  OUTdataC = "\"
  OUTdataD = "\"
  Call sendFirstbyte
  Timer3.Enabled = True
  signmsg = True
End Sub
Private Sub Cmdclear_Click()
  Textthing.Text = ""
  Textthingsave = ""
  Cmdclear.Enabled = False
  
End Sub
Private Sub ComboPort_Click()

  If MSComm1.PortOpen = True Then
    MSComm1.PortOpen = False
    MSComm1.CommPort = ComboPort.ListIndex + 1
    MSComm1.PortOpen = True
  Else
    MSComm1.CommPort = ComboPort.ListIndex + 1
  End If
End Sub

Private Sub Form_Load()
  
  ASCII_SOH = Chr(&H1)    '标题开始
  ASCII_ENQ = Chr(&H5)    '询问
  ASCII_ACK = Chr(&H6)    '承认
  ASCII_NAK = Chr(&H15)   '否定
  ASCII_ETX = Chr(&H3)    '本文结束
  ASCII_SYN = Chr(&H16)   '空转同步
  stationNum = Chr(&H1)   'MCUA地址
  signmsg = True
  startsign = True
  Timer1.Interval = 1000
  Timer1.Enabled = True
  delaytime = 2
  Timer2.Interval = 100 '500
  Timer2.Enabled = True
  Timer3.Interval = 3000  ''''每3秒检查通信状态
  Timer3.Enabled = True
  'Timer4.Interval = 500   '500ms检测LED状态
  'Timer4.Enabled = True
  MSComm1.Settings = "9600,n,8,1"   ' 设置波特率和发送字符格式
  MSComm1.CommPort = 1             ' 设置通讯串口
  MSComm1.InputMode = comInputModeBinary  '以二进制方式读数据
  MSComm1.InputLen = 0              ' 设置或返回一次从接收缓冲区中读取字节数,0表示一次读取所有数据
  MSComm1.InBufferSize = 8 ''''''''' 设置接收缓冲区8 Byte
  MSComm1.InBufferCount = 0
  MSComm1.OutBufferSize = 8 '''''''''设置发送缓冲区8 Byte
  MSComm1.OutBufferCount = 0
  MSComm1.RThreshold = 1           ' 每个字符到接收缓冲区都触发接收事件
  MSComm1.SThreshold = 1
  '''''''''''''LED按钮初始化''''''''''''''''''
  CmdL1die.Enabled = False
  CmdL2die.Enabled = False
  CmdL3die.Enabled = False
  CmdL4die.Enabled = False
  CmdL5die.Enabled = False
  CmdL6die.Enabled = False
  CmdL7die.Enabled = False
  CmdL8die.Enabled = False
  '''''''''''''''''''''''''''''''''''''''''''''''
  If MSComm1.PortOpen = True Then
     MSComm1.PortOpen = False
     MsgBox "端口已被占用!"
  Else
     MSComm1.PortOpen = True          ' 打开串口
     portled.FillColor = QBColor(10)
  End If
  If MSComm1.PortOpen = False Then
     portled.FillColor = QBColor(8)
     portswitch.Caption = "打开串口"
  Else
     portled.FillColor = QBColor(10)
     portswitch.Caption = "关闭串口"
  End If
  
  ComboPort.Text = "COM1"
  Cmdpause.Enabled = False
  j = 0
  linkerrorcount = 0
  LEDprocess = &HFF
  ledback1 = &HF
  ledback2 = &HF
  '''''''''''''''''''''''''''''
  outbuff(0) = ASCII_SOH
  outbuff(1) = stationNum
  outbuff(2) = ASCII_ENQ
  outbuff(7) = ASCII_ETX
  ''''''''''''''''''''''4字节数据
  OUTdataA = "L"
  OUTdataB = "\"
  OUTdataC = "\"
  OUTdataD = "\"
  Call sendFirstbyte ''''''''''''''

End Sub

Private Sub MScomm1_OnComm()

  Select Case MSComm1.CommEvent
    Case comEvReceive
    
      inbuff = MSComm1.Input
    
      If inbuff(0) = &H16 Then  'SYN'每发送8字节就有收到7个“空转同步”握手标志用作检测单片机串口是否已经准备接收
                             '''''发送下一字节'
        If j <= 7 Then         '没收到8个字节
          j = j + 1
          MSComm1.Output = outdata(j) '发送下一字节数据''''''''
          If j = 7 Then               '发送完8字节
            j = 0
          End If
          Exit Sub                     '退出子程序
        Else
          j = 0
          thing = "接收超过8字节" ''报故障
          Call record
        End If
      '''''''''''不是8字节间的握手标志(已发送8字节数据)
      Else
        j = 0
        
        indata = Chr(inbuff(3)) + Chr(inbuff(4)) + Chr(inbuff(5)) + Chr(inbuff(6))
        If inbuff(0) <> &H1 Then          '没收到SOH
          thing = "没收到SOH"             ''报故障
          Call record
          Exit Sub                        '退出子程序
        ElseIf inbuff(7) <> &H3 Then      '没收到ETX
           thing = "没收到ETX"            ''报故障
           Call record
           Exit Sub                       '退出子程序
          ElseIf inbuff(2) = &H15 Then    '收到NAK
             'thing = "发送:" + outdata(3) + outdata(4) + outdata(5) + outdata(6)
             'Call record
             'thing = "接收:" + indata
             'Call record
             'thing = "发送数据产生冲突!" ''报故障
             'Call record
             Call resendFirstbyte
             Exit Sub                     '退出子程序
            ElseIf inbuff(2) <> &H6 Then  '没收到ACK
               thing = "没收到ACK和NAK"   ''报故障
               Call record
               Exit Sub                   '退出子程序
              Else                        '收到ACK
                                          '收到SOH+ACK+ETX
         End If
         
'''''''''''''''''''''''''''''''''''' 接收4字节数据区
        Select Case indata
        
       '-------------系统初始化----------------
       ''''连接成功信号
          Case "RL\\"

            startsign = False
            OUTdataA = "S"  '发送 开始信号
            OUTdataB = "\"
            OUTdataC = "\"
            OUTdataD = "\"
            Call sendFirstbyte
            linkerrorcount = 0
            lablink.Caption = "连接正常!"
            lablink.ForeColor = QBColor(2)
       ''''就绪信号
          Case "R" & "R" & Chr(inbuff(5)) & "\"
            
            ledback1 = inbuff(5)
            Call ledreback
            linkerrorcount = 0
            thing = "系统已就绪"
            Call record
       '-------------脱机运行/退出系统------------
       ''''脱机成功信号
          Case "RS\\"
          
            linkerrorcount = 0
            If MSComm1.PortOpen = True Then
              Timer3.Enabled = False
              If MSComm1.PortOpen = True Then
                MSComm1.PortOpen = False        '''''关闭串口
              End If
              portled.FillColor = QBColor(8)

⌨️ 快捷键说明

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