7,763
社区成员
发帖
与我相关
我的任务
分享
Private Sub Timer2_Timer()
Dim buff_out5() As Byte
If Dir("13.txt") <> "" Then
Dim Temp13 As String
Open App.Path & "\13.txt" For Input As #13
Line Input #13, Temp13
Close #13
End If
If Dir("14.txt") <> "" Then
Dim Temp14 As String
Open App.Path & "\14.txt" For Input As #14
Line Input #14, Temp14
Close #14
End If
If m_bytBuffOut5 = &H66 Then
m_bytBuffOut5 = &H7E
Me.Timer2.Interval = Temp14 * 1000
Else
m_bytBuffOut5 = &H16
Me.Timer2.Interval = Temp13 * 1000
End If
ReDim buff_out5(8)
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 0
buff_out5(0) = &HAA
buff_out5(1) = &HAA
buff_out5(2) = &HFF
buff_out5(3) = &H5
buff_out5(4) = m_bytBuffOut5 '不直接赋值,而从模块级变量得到经过Timer2设置的正确的值
buff_out5(5) = &H0
buff_out5(6) = &H0
buff_out5(7) = &H0
buff_out5(8) = &HFF
MSComm1.Output = buff_out5
End Sub
'定时器对此次微球筛选进行定时
Private Sub Timer3_Timer()
If Now() < m_StopTime Then Exit Sub '增加这个判断,对应command7里的Now
If MSComm1.PortOpen = False Then
Label1.Caption = "您的串口现在是关闭状态,请先打开串口"
Else
Label1.Caption = ""
If Shape5.BackColor = &HFF Then
Shape5.BackColor = &H80FF80
Command7.Caption = "关"
Me.Timer2.Enabled = True '加上这句
If Dir("13.txt") <> "" Then
Dim Temp13 As String
Open App.Path & "\13.txt" For Input As #13
Line Input #13, Temp13
Close #13
End If
Me.Timer2.Interval = Temp13 * 1000
m_bytBuffOut5 = &H66
Else
Shape5.BackColor = &HFF
Command7.Caption = "开"
Me.Timer2.Enabled = False '加上这句
Timer3.Enabled = False
Dim buff_out6() As Byte
Dim lngP6 As String
ReDim buff_out6(8)
MSComm1.Settings = "9600,N,8,1" ' 9600 波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.InputLen = 0 ' 当输入占用时,告诉控件读入整个缓冲区。
buff_out6(0) = &HAA
buff_out6(1) = &HAA
buff_out6(2) = &HFF
buff_out6(3) = &H5
buff_out6(4) = &H7E
buff_out6(5) = &H0
buff_out6(6) = &H0
buff_out6(7) = &H0
buff_out6(8) = &HFF
MSComm1.Output = buff_out6
lngP6 = GetTickCount 'API函数
Do
DoEvents
Loop Until GetTickCount - lngP6 > 100 Or MSComm1.InBufferCount > 10 '当等待时间超过100毫秒或串口接受缓冲区的数据达到10个字节时退出等待循环,这就是一个通信等待的过程。
End If
End If
Timer3.Enabled = False
End Sub
Private Sub Command7_Click()
If MSComm1.PortOpen = False Then
Label1.Caption = "您的串口现在是关闭状态,请先打开串口"
Else
Label1.Caption = ""
If Dir("15.txt") <> "" Then
Dim Temp15 As String
Open App.Path & "\15.txt" For Input As #15
Line Input #15, Temp15
Close #15
End If
Timer3.Interval = 500
m_StopTime = DateAdd("s", Val(Temp15 * 60), Now)
Timer3.Enabled = True
If Shape5.BackColor = &HFF Then
Shape5.BackColor = &H80FF80
Command7.Caption = "关"
Me.Timer2.Enabled = True '加上这句
If Dir("13.txt") <> "" Then
Dim Temp13 As String
Open App.Path & "\13.txt" For Input As #13
Line Input #13, Temp13
Close #13
End If
Me.Timer2.Interval = Temp13 * 1000
m_bytBuffOut5 = &H66
Else
Shape5.BackColor = &HFF
Command7.Caption = "开"
Me.Timer2.Enabled = False '加上这句
Me.Timer3.Enabled = False
Dim buff_out6() As Byte
Dim lngP6 As String
ReDim buff_out6(8)
MSComm1.Settings = "9600,N,8,1" ' 9600 波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.InputLen = 0 ' 当输入占用时,告诉控件读入整个缓冲区。
buff_out6(0) = &HAA
buff_out6(1) = &HAA
buff_out6(2) = &HFF
buff_out6(3) = &H5
buff_out6(4) = &H7E
buff_out6(5) = &H0
buff_out6(6) = &H0
buff_out6(7) = &H0
buff_out6(8) = &HFF
MSComm1.Output = buff_out6
lngP6 = GetTickCount 'API函数
Do
DoEvents
Loop Until GetTickCount - lngP6 > 100 Or MSComm1.InBufferCount > 10 '当等待时间超过100毫秒或串口接受缓冲区的数据达到10个字节时退出等待循环,这就是一个通信等待的过程。
End If
End If
End Sub
Option Explicit
Dim buff_out6() As Byte
Private Sub Form_Load()
Timer1.Interval = 1000
MSComm1.PortOpen = True
Timer2.Interval = 10000
ReDim buff_out6(8)
buff_out6(0) = &HAA
buff_out6(1) = &HAA
buff_out6(2) = &HFF
buff_out6(3) = &H5
buff_out6(5) = &H0
buff_out6(6) = &H0
buff_out6(7) = &H0
buff_out6(8) = &HFF
End Sub
Private Sub Timer1_Timer() '小循环
Static xunhuan As Long
xunhuan = xunhuan + 1
If xunhuan = 1 Then
buff_out6(4) = &H66
ElseIf xunhuan = 2 Then
buff_out6(4) = &H7E
ElseIf xunhuan = 3 Then
buff_out6(4) = &H67
ElseIf xunhuan = 4 Then
buff_out6(4) = &H6A
ElseIf xunhuan = 5 Then
buff_out6(4) = &H6C
End If
If xunhuan Mod 5 = 0 Then xunhuan = 0
MSComm1.Output = buff_out6
End Sub
Private Sub Timer2_Timer() '大循环
Static Dxunhuan As Long
Dxunhuan = Dxunhuan + 1
If Dxunhuan = 1 Then
buff_out6(5) = &H1
ElseIf Dxunhuan = 2 Then
buff_out6(5) = &H7E
ElseIf Dxunhuan = 3 Then
buff_out6(5) = &H67
ElseIf Dxunhuan = 4 Then
buff_out6(5) = &H6A
ElseIf Dxunhuan = 5 Then
buff_out6(5) = &H6C
End If
If Dxunhuan Mod 5 = 0 Then Dxunhuan = 0
End Sub
Option Explicit
Dim buff_out6() As Byte
Private Sub Form_Load()
Timer1.Interval = 1000
MSComm1.PortOpen = True
End Sub
Private Sub Timer1_Timer()
Static xunhuan As Long
ReDim buff_out6(8)
buff_out6(0) = &HAA
buff_out6(1) = &HAA
buff_out6(2) = &HFF
buff_out6(3) = &H5
buff_out6(5) = &H0
buff_out6(6) = &H0
buff_out6(7) = &H0
buff_out6(8) = &HFF
xunhuan = xunhuan + 1
If xunhuan = 1 Then
buff_out6(4) = &H66
ElseIf xunhuan = 2 Then
buff_out6(4) = &H7E
ElseIf xunhuan = 3 Then
buff_out6(4) = &H67
ElseIf xunhuan = 4 Then
buff_out6(4) = &H6A
ElseIf xunhuan = 5 Then
buff_out6(4) = &H6C
End If
If xunhuan Mod 5 = 0 Then xunhuan = 0
MSComm1.Output = buff_out6
End Sub
Option Explicit
Dim buff_out6() As Byte
Private Sub Form_Load()
Timer1.Interval = 1000
MSComm1.PortOpen = True
End Sub
Private Sub Timer1_Timer()
Static xunhuan As Long
ReDim buff_out6(8)
buff_out6(0) = &HAA
buff_out6(1) = &HAA
buff_out6(2) = &HFF
buff_out6(3) = &H5
buff_out6(5) = &H0
buff_out6(6) = &H0
buff_out6(7) = &H0
buff_out6(8) = &HFF
If xunhuan = 0 Then
buff_out6(4) = &H66
ElseIf xunhuan = 1 Then
buff_out6(4) = &H7E
ElseIf xunhuan = 2 Then
buff_out6(4) = &H67
ElseIf xunhuan = 3 Then
buff_out6(4) = &H6A
ElseIf xunhuan = 4 Then
buff_out6(4) = &H6C
End If
MSComm1.Output = buff_out6
xunhuan = xunhuan + 1
End Sub
buff_out6(0) = &HAA
buff_out6(1) = &HAA
buff_out6(2) = &HFF
buff_out6(3) = &H5
buff_out6(4) = &H66
buff_out6(5) = &H0
buff_out6(6) = &H0
buff_out6(7) = &H0
buff_out6(8) = &HFF
MSComm1.Output = buff_out6
buff_out6(0) = &HAA
buff_out6(1) = &HAA
buff_out6(2) = &HFF
buff_out6(3) = &H5
buff_out6(4) = &H66
buff_out6(5) = &H0
buff_out6(6) = &H0
buff_out6(7) = &H0
buff_out6(8) = &HFF
MSComm1.Output = buff_out6