Hola, como ya dijeron por ahi, es hacer un eco para comprobar si estás recibiendo bien, mira yo hice uno sencillo que ha parpadear un led en PIN_C5, como un segundero y si recibe algo por el puerto le hace un eco, lo simulé en proteus asi que debe servir ya que no tengo un 18f... para probarlo, por si acaso te paso este código que hace es y lo pruebas... si tienes el proteus simula ahi con el virtual terminal....
#include <18F252.h>
#device adc=8
#use delay(clock=20000000)
#fuses NOWDT,WDT128,HS, NOPROTECT, NOOSCSEN, BROWNOUT, BORV42, PUT, STVREN, NODEBUG, NOLVP, NOWRT, NOWRTD, NOWRTB, NOWRTC, NOCPD, NOCPB, NOEBTR, NOEBTRB
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#byte port_c=7
#int_RDA
RDA_isr()
{ char x;
x=getc();
putc(x);
}
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_spi(FALSE);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
enable_interrupts(INT_RDA);
enable_interrupts(global);
port_c=0x00;
output_high(PIN_B5);
while(true)
{ output_high(PIN_C5);
delay_ms(500);
output_low(PIN_C5);
delay_ms(500);
}
}
te adjunto el hex por si acaso quieras hacer algo...