发送协议,大循环套小循环:66 7E 66 7E 66 7E 66 7E.... 67 6A 6C 67-->66 7E 66 7E 66 7E 66 7E ....67 6A 6C 67-->66 7E 66 7E 66 7E 66 7E ......67 6A 6C 67-->66 7E 66 7E 66 7E 66 7E .....67 6A 6C 67 67 7E(大循环完成最后是67 7E) 
1、举例,发送66的协议是: 
                    ReDim buff_out6(8)
                    Dim buff_out6() As Byte
                    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    其他的诸如7E、6A等等都是一样的。 
2、举例:调用Text设定的时间 
               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
以上的发送的协议在一个command7(开始为“开”状态,点击“开”就执行,此时显示“关”状态,手动点击“关”或者大循环时间到,再发送个67与7E,回到“开”状态),程序示意如下: 
Private Sub Command7_Click()
                If Shape5.BackColor = &HFF Then
                    Shape5.BackColor = &H80FF80
                    Command7.Caption = "关"  '实际上command7的状态是开启,只是显示可以关闭
                    .....'大循环
                Else
                    Shape5.BackColor = &HFF
                    Command7.Caption = "开"'实际上command7的状态是关闭,只是显示可以开启
                    .....'67、7E
                End If
End Sub

解决方案 »

  1.   

    这样只能一个一个的发送上面的协议,小循环大循环都执行不了,而且发送时间也不能修改: 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