Hola muchachos agradezco sus respuestas. He retomado con esta tarea ya que tuve que colgarla unos días.
DaYeS el primer programa que escribí no usaba interrupciones y no tenia habilitada las interrupciones, todo estaba desarrollado en el main y es ahí cuando "logre" lo de las xx en el hyperterminal. Este programa corre bien y sin errores en Proteus. el programa es:
#include <18f4550.h>
#fuses HS, NOWDT, NOLVP, NOBROWNOUT, NOPROTECT, PUT
#use delay(clock=20000000)
#use rs232(uart, baud=9600, xmit=PIN_D2, rcv=PIN_D3, BITS=8, stop=1, PARITY=N,ENABLE=PIN_D1 )
int8 buffer1;
void main()
{
while( TRUE )
{
buffer1=getc();
putc(buffer1);
}
}
Luego hice la prueba que sugirió rivale. Intente lo mismo pero con la interrupción de recepción de rs232, pero a este programa no pude ni hacerlo andar en Proteus.
#include <18f4550.h>
#fuses HS, NOWDT, NOLVP, NOBROWNOUT, NOPROTECT, PUT
#use delay(clock=20000000)
#use rs232(uart, baud=9600, xmit=PIN_D2, rcv=PIN_D3, BITS=8, stop=1, PARITY=N,ENABLE=PIN_D1 )
char dato;
#INT_RDA
void recepcion()
{
dato=getc();
putc(dato);
}
void main()
{
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
while(true)
{
output_toggle(PIN_D0);
delay_ms(100);
}
}
No puedo entender como algo que parecía sencillo se ha vuelto tan complejo. Les agradeceré cualquier sugerencia muchachos
Saludos