Escrito originalmente por Karlss_Infante
Estoy trabajando en un proyecto donde quiero controlar ciertas salidas mediante un 16f876. El control se hará mediante una serie de variables guardadas previamente q mandará desde el PC un programa hecho en Visual Basic a través del puerto serie, con el protocolo RS232c.
El problema es q llevo ya un tiempo buscando y mirando cosas y no consigo hacer nada, necesitaria que me ayudaran a orientarlo o me dijeran donde puedo encontrar informacion o ejemplos q me pudieran servir de ayuda.
En un principio pense utilizar el Mscomm de Visual basic pero tengo entendido q solamente trabaja con código ASCIL, asi q no se si podre usarlo.
Gracias por la ayuda
Hola, Efectivamente el mscomm es un programa para visual muy sencillo que te recomiendo que utilices si eres principiante en eso de Visual, y no importa que mande código ASCII, con el PIC también puedes realizar las comparaciones, ahora bien te recomiendo que utilices el control de flujo por hardware, porque cuando mandes mas de un caracter desde la PC puede q el PIc tenga errores en la recepcion de datos; aqui te pongo un ejemplo de como puedes comparar caracteres en en el PIC, esta en ensamblador:
COMPARAR_ONLINE
-------------CALL RECIBIR_DATO_RX
------------- SUBLW "O"
------------- BTFSC STATUS,Z
------------- GOTO POSIBLE_ONLINE
------------- GOTO TERMINAR_CADENA
POSIBLE_ONLINE
------------- CALL RECIBIR_DATO_RX
------------- SUBLW "N"
------------- BTFSC STATUS,Z
------------- GOTO POSIBLE_ONLINE1
------------- GOTO TERMINAR_CADENA
POSIBLE_ONLINE1
------------- CALL RECIBIR_DATO_RX
------------- SUBLW "L"
------------- BTFSC STATUS,Z
------------- GOTO POSIBLE_ONLINE2
------------- GOTO TERMINAR_CADENA
POSIBLE_ONLINE2
-------------CALL RECIBIR_DATO_RX
------------- SUBLW "I"
------------- BTFSC STATUS,Z
------------- GOTO POSIBLE_ONLINE3
------------- GOTO TERMINAR_CADENA
POSIBLE_ONLINE3
------------- CALL RECIBIR_DATO_RX
------------- SUBLW "N"
------------- BTFSC STATUS,Z
------------- GOTO POSIBLE_ONLINE4
------------- GOTO TERMINAR_CADENA
POSIBLE_ONLINE4
------------- CALL RECIBIR_DATO_RX
------------- SUBLW "E"
------------- BTFSC STATUS,Z
------------- CALL FUE_ONLINE // Ejecutar Rutina deseada, Ejem. encender led"s de puerto b, etc
TERMINAR_CADENA
------------- RETURN
RECIBIR_DATO_RX
;VERIFICACION DE ERRORES EN LA RECEPCION SERIAL
------------- BTFSC RCSTA,FERR
------------- GOTO SALIR_ERROR
------------- BTFSC RCSTA,OERR
------------- GOTO SALIR_ERROR
------------- MOVF RCREG,W
------------- RETURN
SALIR_ERROR
------------- BCF RCSTA,CREN
------------- NOP
------------- NOP
------------- BSF RCSTA,CREN
------------- RETURN
Espero que te sirva de algo...............SALUDOS