Holas.
tengo un problema con el proteus q hasta ahora no he podido solucionar. estoy haciendo un programa (CCS) para comunicación RS232 que hace q el PIC16F877A transmita lo que recibe por TX, y si recibe un 'a' manda el PIN_B0 a '1'.
el problema es q siempre q simulo con proteus me aparece el siguiente warning:
(PIC16 ADC)PC=0x0072 ADC conversion clock period (1e-07) is possibly invalid for device clock frequency
leyendo por ahi, encontre q el tiempo de conversion (TAD) debe ser minimo de 1.6us
por ejemplo para un cristal de 20Mhz (Tosc=50ns), asi q debo de configurar a 32Tosc (1.6us) es decir ADCS1=1 ADCS0=0.
yo uso un cristal de 40Mhz, asi q con 32Tosc no me es suficiente, que puedo hacer???

ya intente omitir el warning y grabar mi programa al PIC, y aunque puedo apreciar q se envia y recibe data mediante LED's, los caracteres q aparecen en el hyperterminal no corresponden a los q pulso en el teclado, en lugar de ello aparecen caracteres extraños "|||||||"

Este es mi codigo:
//Archivo H del microcontrolador
#INCLUDE <16F877A.h>
//Configuración de trabajo general
#FUSES HS,NOWDT,NOPROTECT,NOLVP
#USE delay(clock=40000000)
#USE rs232(baud=9600, xmit=pin_c6, rcv=pin_c7)
#USE standard_io(B)
int q=0;
void MCU_init(){
setup_adc(ADC_CLOCK_DIV_32);
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
}
//Recepción Serial
#int_RDA
RDA_isr(){
q = getc();
}
void main(){
int i,j;
MCU_init();
while(1){
j = q=='a'? 1 : 0;
putc(q);
output_bit(PIN_B0,j);
delay_ms(500);
}
}