Option Explicit

Dim Salida As Byte

Private Sub CmdGo_Click()

Dim i As Integer

Salida = 0

For i = Chk.LBound To Chk.UBound
    Salida = Salida + Chk(i).Value * 2 ^ i
Next

'Salida contiene el valor a enviar

MsgBox "Representacion en decimal : " & Salida
MsgBox "Caracter a enviar  :  " & Chr(Salida)
End Sub

Private Sub ENVIAR_Click()
 MSComm1.Settings = "9600,N,8,1"
   Dim Salida As Byte
   MSComm1.Output = Chr(Salida)
   MsgBox "El valor ha sido enviado satisfactoriamente"
End Sub

Private Sub conectar_Click()
  'comprueva que el puerto este cerrado para poder abrirlo
    If MSComm1.PortOpen = False Then
               'determina el puerto que  seleccionado
                    MSComm1.CommPort = 1
                    MSComm1.PortOpen = True
        Else
            MSComm1.CommPort = 2
        End If
        'determina: 9600-Velocidad en Baudios, N-No utiliza ninguna paridad,
        '8-Cantidad de bits de envio y recepcion por paquete,
        '1-Determina los bits de parada
        MSComm1.Settings = "9600,N,8,1"
        'lee todo el buffer de entrada para que quede vacio
                'Abre el puerto seleccionado
                Me.Caption = "Conectado por el puerto " & MSComm1.CommPort
    End Sub

Private Sub Desconectar_Click()
If MSComm1.PortOpen = True Then
        'cierra el puerto
        MSComm1.PortOpen = False
        Me.Caption = "Desconectado"
    End If
End Sub

Private Sub Form_Load()

Dim i As Integer

'Insertar números a los pulsadores

For i = Chk.LBound To Chk.UBound
    Chk(i).Caption = i
Next

End Sub

Private Sub MSComm1_OnComm()
MSComm1.Settings = "9600,N,8,1"
Select Case MSComm1.CommEvent
' Controlar cada evento o error escribiendo
   ' código en cada instrucción Case

   ' Errores
      Case comBreak   ' Se ha recibido una interrupción.
      Case comEventFrame   ' Error de trama
      Case comEventOverrun   ' Datos perdidos.
      Case comEventRxOver   ' Desbordamiento del búfer
                           ' de recepción.
      Case comEventRxParity   ' Error de paridad.
      Case comEventTxFull   ' Búfer de transmisión lleno.
      Case comEventDCB   ' Error inesperado al recuperar DCB.

   ' Eventos
      Case comEvCD   ' Cambio en la línea CD.
      Case comEvCTS   ' Cambio en la línea CTS.
      Case comEvDSR   ' Cambio en la línea DSR.
      Case comEvRing   ' Cambio en el indicador de
                     ' llamadas.
      Case comEvReceive   ' Recibido nº SThreshold de
                        ' caracteres.
      Case comEvSend   ' Hay un SThreshold
                     ' caracteres en el búfer
                     ' de transmisión.
      Case comEvEOF   ' Se ha encontrado un carácter
                     ' EOF en la entrada.
   End Select

End Sub
