📄 vb源码.txt
字号:
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 + -