La comunicación RS232 se ha vuelto obsoleta en cuanto a computadoras se refiere, pero en el mundo de la electrónica sigue siendo un protocolo muy popular.
Código receptor:
Es por eso que dedicamos este post a un ejemplo de comunicación serial entre 2 PIC16F877a (un emisor y un receptor), para ello los programas se han escrito en C con el compilador CCS y simulado en ISIS de PROTEUS.
Al puerto B del microcontrolador emisor se le han conectado entradas lógicas, los cuales se muestran en el puerto B del receptor. Ambos microcontroladores tienen un cristal de 20MHz y usan su módulo serial por hardware.
Al puerto B del microcontrolador emisor se le han conectado entradas lógicas, los cuales se muestran en el puerto B del receptor. Ambos microcontroladores tienen un cristal de 20MHz y usan su módulo serial por hardware.
Esquemático y simulación.
Código emisor:
#include "16f877a.h"
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
int main( void ){int dato;while(1){ dato=input_b(); //Recibimos un entero de 8 bits (Puerto B). putc(dato); //Mandamos el dato por el puerto serial. delay_ms(1000); //Hacemos un retardo}return 0;}
Código receptor:
#include "16f877a.h"
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8)
int main( void ){
int dato;
while(1){
if(kbhit()){ //Revisamo si hemos recibido algo por el puerto serial.
dato=getc(); //Recibimos un dato de 8 bits
output_b(dato);//Mostramos el dato en el puerto B
}
}
return 0;
}
Esta es la configuración típica utilizada, estos mismos programas se pueden usar si en lugar de un cable se utiliza un módulo Bluetooth serial,ya que el protocolo es transparente para el micro.
Durante la simulación es muy conveniente que el micro nos mande mensajes, así como en un programa de PC normal con la ayuda de la función
Descargar códigos y simulación aquí.
Durante la simulación es muy conveniente que el micro nos mande mensajes, así como en un programa de PC normal con la ayuda de la función
printf(), para este caso se puede conectar la terminal virtual de ISIS a la línea TX del micro que nos va a mandar la información y, con un simple printf() el programa va a mandar esa cadena por el puerto serial.Descargar códigos y simulación aquí.








