TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: sha en 24 de Septiembre de 2010, 07:29:51
-
Buenas a Todos.
Nunca hasta ahora había hecho programa de comunicación con pc.
El programa está echo con compilador ccs.
Si lo pruebo en proteus me funciona pero si lo pruebo en Hiperterminal o Siow no funciona la parte en la que leo el teclado y hago el eco.
Me vuelve a salir el texto inicial.
Mi programa es este:
#include <16F870.h>
#fuses XT,NOWDT,PUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP,NOCPD,NOWRT
#use delay (clock=4000000)
#use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7, parity=N, bits=8) //manejo del RS232
void main (void)
{
SET_TRIS_A(0xFF);
SET_TRIS_B(0x00);
OUTPUT_B(0x00);
printf("Interaccion PC->PIC");
printf("\r");
printf("\n");
printf("===================");
printf("\r");
printf("\n");
printf("Seleccione tecla:");
printf("\r");
printf("\n");
printf("1->Led on Verde");
printf("\r");
printf("\n");
printf("2->Led on Azul ");
printf("\r");
printf("\n");
while(true)
{
putc(getc()); // eco de lo que recibo
}
}
-
Seguramente tienes montado el MAX232,nos muestras tu circuito?
probablemente tienes un error en tu hardware, o en el hiperterminal o SIOW tienes que deshabitar la opción de control de flujo.
saludos.
-
Buenas.
Si que deshabilito la opción de control de flujo, el esquema es este:
-
...probablemente tienes un error en tu hardware...
Hola sha, como te ha mencionado Cryn, es muy probable que tengas un error de hardware. El programa habla de un PIC16F870 y en el plano se ve un PIC16F84. Por otro lado, en el programa tienes declarado xmit=PIN_C6 (el PIC16F84 no tiene puerto C) y en el plano figura como pin de transmisión RA0.
Con el circuito que muestras solo puedes transmitir datos a la PC, pero no podrás recibir.
Saludos!
-
Hola a todos.
El esquema que puse era en el que me basé.
El esquema es este:
-
Hola sha, en el último diagrama que subiste, figura un MAX232 con capacitores de 100nF; esto aplica para el modelo MAX232A. Revisa si tu MAX232 no tiene la 'A' al final, entonces debes usar capacitores de 1uF.
Saludos!
-
Hola a todos.
Ahora va peor que antes.
Ahora me hace lo de la imagen.
En Proteus si funciona.
No se.
Me funciona igual con 1uF que con 100nF de mal.
-
Tiene la pinta de que se está reseteando constantemente el pic, verifica que cuando grabas el pic no tengas habilitado el wdt, además colócale un capacitor de 100nf muy cerca de la alimentación del pic, entre VCC y VSS. Asegúrate que tu fuente de 5v esté bien filtrada y regulada.
Saludos
-
Gracias a todos por contestar.
Ya funciona el mini programa.
En principio no funcionaba por el tema de los condensadores.
Y lo que describí que me hacía en el último mensaje se debía a que estaba probando con una placa de pruebas y pensaba que a ambos lados de la placa los potenciales estaba comunicados, cosa que no es cierta, entonces no estaba bien alimentado y por eso fallaba. gracias a todos.