Comunicación serial RS232 «botones y leds», Pic C Compiler
Por
/
En esta sección aprenderás a realizar una comunicación serial RS232 con dos microcontroladores PIC. El objetivos es enviar datos por el puerto serial a un microcontroladores PIC para que encienda diferentes LED´s.
Comunicación serial RS232
La comunicación RS232 es un protocolo de comunicación asíncrono que define cómo los dispositivos deben transmitir y recibir datos y señales de control. Establece normas para la transmisión de señales de control, como el inicio y el fin de los datos, y también define los parámetros de los cables y conectores utilizados para la conexión.
Además, la comunicaciónRS232 permite una amplia gama de velocidades de transmisión de datos, lo que la hace adecuada para una amplia variedad de aplicaciones. La velocidad de transmisión de datos se puede ajustar según sea necesario para adaptarse a las necesidades específicas de una aplicación.
A pesar de la popularidad de otros estándares más modernos, como USB y Ethernet, la comunicaciónRS232 sigue siendo una parte importante de la industria tecnológica. Se utiliza en una amplia variedad de aplicaciones, desde la conexión de dispositivos industriales hasta la conexión de dispositivos de almacenamiento y la transmisión de datos de sensores y controladores.
En resumen, la comunicaciónRS232 es un estándar de comunicación serie que ha resistido la prueba del tiempo y sigue siendo relevante en la industria tecnológica de hoy en día. Aunque ha sido superado por otros estándares en muchos casos, sigue siendo una parte importante de la tecnología y se utiliza en una amplia variedad de aplicaciones.
Circuito de conexión
Programación PIC de transmisión
Inicialmente se establecen los parámetros de la comunicación RS232.
Para evitar enviar múltiples veces el estado del los botones, debemos guardar el estado presente y pasado del botón, utilizando la siguientes variables.
Cuando se reciben datos por el pin de recepción el programa detiene sus funciones para recibir los datos, el programa guarda los datos en la variable recibido[i] y termina la comunicación rs232 cuando recibe un carácter de salto de linea.
#int_rda
void rda_isr()
{
memset(recibido, 0, sizeof(recibido)); //limpia los registros de la varible
int8 i=0;
while(true)
{
recibido[i]=getc();//RECIBE EL CARACTER
if(recibido[i]=='\r')//busca el salto de linea \r
{
recibido[i]='\0';//fin de la cadena = caracter nulo \0
leds();
return;
}
i++;
}
}
La subrutina void leds() se coloca en el archivo.h del proyecto o en la parte superior del programa antes del #int_rda.
void leds()
{}
Se define una variable de caracteres que contienen el identificador del led que se encenderá o apagara.