Hola
Te posteo un ejemplo que hice.
#include <16F873A.h>
#fuses XT, NOLVP, NOWDT
#use delay(clock=4M)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
#rom 0x2100={'1','2','3'}
int1 data_rdy = 0;
int8 dato[3] = "0";
#int_EXT
void envio_isr(void)
{
data_rdy = true;
}
void leer_dato(void)
{
int8 i=0;
for(i=0;i<=2;i++)
{
dato[i] = read_eeprom(i);
}
}
void main (void)
{
setup_adc(ADC_OFF);
setup_comparator(NC_NC_NC_NC);
ext_int_edge(L_TO_H);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
printf("Prueba RS232 \r\n");
while(true)
{
if(data_rdy)
{
data_rdy = false;
leer_dato();
printf("Dato %s \r\n", dato);
}
}
}
Adjunto el archivo en proteus.
Saludos