Programación Específica > Microcontroladores
Problemas Con El 16f87
lalo_soft:
No tiene nada que ver el hecho de que la computadora no este corriendo el programa que le el dato que envias, tienes un error de concepto. Al encender el micro y si la rutina de transmision esta en la secuencia inicial de trabajo de tu programa la ejecuta y transmite el dato.Para conserguir lo que creo que esperas ,es escribir y ejecutar primero una rutina que cheque la recepcion de un dato ,para despues transmitir hacia el PC.
Al encerder el pic este debe esperar y luego Transmitir.
El Pc es que debe transmitir primero,no el PIC.
ijfa:
Hola ....te paso mi programa de prueba que tengo...ojala te sirva....esta en C...con el compilador CC5X....y funciona!!! 100% comprobado....aki va
--- Código: Text ---//------------------ Programa test RS232 -----------------------// El PIC envia un mensaje se saludo el cual se puede visualizar// a través del Hiperterminal de Windows//--------------------------------------------------------------- char data[20];void enviar_msg(){ char j; data[0]=0x48; // H data[1]=0x4f; // O data[2]=0x4c; // L data[3]=0x41; // A data[4]=0x0d; // CR - control de carro data[5]=0x0a; // LF - line feed j=0; while(1) { while(1) // Espera a que se vaya el dato { if(TXIF==1) break; // Cuando TXIF=1 se fue } TXREG=data[j]; // Envia el dato almacenado en data[j] j++; if(j==5) break; // Despues de enviar el ultimo parte de cero TXIF=0; }} void main(){// Se programan los bit correspondientes, el de TX y RX// corresponden la PORTC.B7 y PORTC.B6 respectivamente// el primero como salida y el segundo como entrada. TRISC=0x80; // 10 00 0000SPBRG=255; // 1200 8 N 1TXSTA=0x20;RCSTA=0x90;PIR1= 0x30; //HABILITA LA BANDERA QUE INFORMA QUE REGISTRO DE TX ESTA VACIO!!! while(1) { enviar_msg(); }}
Espero te sirva...saludos :hola:
karen81:
:) Gracias ijfa por tomarte el tiempo pero yo de C no se nada y menos de cc5x, y con respecto a lo anterior lo mismo me hace el pic a la hora de recibir se sale de la rutina de recepcion y ni siquiera le he mandado el dato por lo que deduzco que se me ha arruinado la parte rs232 del pic :(
Huguen_aus_Tirol:
No Karen, no se ha arruinado nada! Prueba como te dije, enviar repetidamente desde el PIC al PC; tiene que funcionar :lightsabre:
La PC no tiene que enviar nada al PIC para que este envie un dato al PC, asi como tienes tu programa...
Prueba, que tiene que funcionar!!
Saludos :hola:
Ah! Como handas con VB y este tema de la comunicación serie? En una de esas puedes darme una mano ;)
--- Citar ---yo de C no se nada
--- Fin de la cita ---
Error de sintaxis: "yo de C no C nada" :D :lol:
karen81:
:lol: pues logre solucionar mi problema, el problema estaba a la hora de quemar el programa uso winpic800 y en la parte de config habia que seleccionar:
XT quitar los cheques de las otras opciones y solo dejar MCLRE que es la del reset, lo demas se deja como esta, asi ya me funciono bien. y por cierto el circuito que estaba usando le quite la resistencia de 4.7K.
Huguen_aus_Tirol con respecto a:
--- Citar --- Ah! Como handas con VB y este tema de la comunicación serie? En una de esas puedes darme una mano
--- Fin de la cita ---
pues ya se mucho mas de esto asi que cualquier cosa por aqui andamos :)
Gracias por su ayuda :hola:
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa