problema comunicacion serie de pic con pc

Hola les comento mi problema, estuve buscando por el foro pero no encontre otro caso parecido:
Estoy intentando medir temperatura de un lm35 con un pic 16f876 y que el resultado aparezca en un lcd y en un pc a traves de una comunicacion serie, hice el programa en ccs, simule el circuito con el isis y en la simulacion todo funciona perfecto,a traves del Virtual terminal puedo ver la temperatura transmitida por la comunicacion serie y lo mismo con el lcd.
El problema surgio cuando monte el circuito, consigo ver los resultados en el lcd pero cuando intento ver en la pc a traves del Hyperterminal el mismo queda en blanco, no me muestra nada y ya vengo probando de todo y la verdad es que no se donde puede estar el problema, entiendo que el pic esta funcionando porque me muestra informacion en el lcd, por lo que sospecho que el problema debe estar en la comunicacion serie bien en la parte de hardware o en el software.
Estuve probando la lectura primero desde una notebook con Vista a traves de un conversor serie-usb con un chip prolific.Pensando que por ahi estaba el problema conecte el circuito en una pc de escritorio con puerto serie y xp y tuve el mismo resultado nada aparece en el hyperterminal. Una pista que tengo es que al apretar el boton reset del microcontrolador el cursor del hyperteminal deja de parpadear, como indicando quizas que de alguna forma hay alguna comunicacion. Revise la configuracion del hyperteminal (9600 baudios,8 bits,parity N,COM utilizado) y parece que por ahi no esta el problema. les dejo el programa y una imagen del circuito que monte con el max232 (la parte de comunicacion serie no es el circuito simulado es el real) teniendo en cuenta que los pines 16 y 15 del 232 estan a tension y masa respectivamente.
Como puedo saber si el max232 esta funcionando correctamente?
Puede haber algun problema con los capacitores? son de 1 microfaradio y 50 volts
Si alguien me pueda dar una mano me vendria bien, un abrazo!!!

#include <16f876.h>
#device adc=10
#fuses XT,NOWDT,NOPROTECT
#use delay(clock = 4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
#include <LCD_PORTBB.c>
void main () {
int16 q;
float p;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
for (;;
{
set_adc_channel(0);
delay_us(20);
q = read_adc();
p = q/2.048;
printf(lcd_putc,"\fADC = %4ld",q);
printf(lcd_putc,"\nTemperatura = %01.2fv",p);
printf("ADC =%4ld",q);
printf("Temperatura = %01.2fC\r",p);
delay_ms(100);
}
}
 

Adjuntos

  • Serie1.jpg
    Serie1.jpg
    169.4 KB · Visitas: 57
Última edición:
Todo parece indicar un problema de comunicaciones entre el PIC y la PC. Te suguiero que reprogrames el PIC con una aplicacion sencilla de comunicaciones
(por ejemplo, enviar un caracter Ascii) para que puedas conectarse sin problemas al PC. Una vez tengas dominada la comunicacion, regresas al proyecto incial pero ya sabes que el submodulo de comunicaciones seriales esta asegurado.
Salu2
 
Si lo haces simulando te sobra el conversor para empezar. Si abre el Pc el puerto comX tienes que tener otro en el PC, si no recuerdo mal. y conectar los dos exteriormente.
Saludos
 
Atrás
Arriba