TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: sokoloko en 09 de Agosto de 2010, 18:11:15
-
Hola amigos,
Estoy empezando a programar un 16F84A con un codigo muy sencillo para ver como funciona. En la simulacion de Proteus va bien, pero programo el PIC correctamente y la placa fisicamente no hace.
#include <16F84A.h> //pic a utilizar
#fuses RC,NOWDT,NOPROTECT,PUT //Oscilador RC, No Watch Dog Timer, Power Up Timer,
#use delay (clock=4000000) //Fosc=4Mhz
#byte PORTA=0x05 // Dirección del PortA NO FUNCINA SI QUITO ESTO
//DECLARACIÓN DE VARIABLES
void main(){
set_tris_a(0x00); //puerto A como salida
do{
output_high(PIN_A0); //prende el led
delay_ms(1000); //espera un segundo (1000 ms)
output_low(PIN_A0); //apaga el led
output_high(PIN_A1); //prende el led
delay_ms(1000); //espera un segundo (1000 ms)
output_low(PIN_A1); //apaga el led
output_high(PIN_A2); //prende el led
delay_ms(1000); //espera un segundo (1000 ms)
output_low(PIN_A2); //apaga el led
output_high(PIN_A3); //prende el led
delay_ms(1000); //espera un segundo (1000 ms)
output_low(PIN_A3); //apaga el led
} WHILE (1);
}
Adjunto es esquema en Proteus a ver si es que esta mal el codigo, es esquema electrico....o a ver que puede ser por que ya no se que mas probar.
Saludos.
-
Si estas utilizando un cristal de 4Mhz, debes cambiar el fuse RC por XT
-
Además de lo que te comenta jhozate, no te olvides de poner el pin MCLR a positivo.
-
Por fin!!!!!
Gracias por la ayuda chicos, con las dos respuestas y sus correcciones me funciona a la primera!!! :-/ :-/ :-/ :-/
Y yo perdiendo muchas horas pensando que era tema de codigo :x
Ahora me surge una duda, mi proyecto final va ser con el PIC 16F628A y con este encabezado:
#include <16F628A.h>
#use delay(clock=4000000) // Reloj Micro = 4 Mhz
#fuses XT,NOWDT,MCLR,NOPROTECT,BROWNOUT,NOLVP
#use fast_io(B)
#use fast_io(A)
#BYTE port_A = 5
Este PIC tmb tiene MCLR y esa patilla es a la vez salida (RA5), si pongo esa patilla a +Vcc para que funcione y por lo que sea el codigo manda un cero a esa patilla......corto y PIC chamuscadito??? :?
Saludos y gracias de nuevo.
-
no, si lo designas como pin de mclr No hay problema ese pin no sera de salida/entrada. Solo tendras tus 4 bits para el puertoA
-
Gracias jhozate,
Osea que tal y como tengo en el encabezado el MCLR, solo tengo que en el esquema electrico unir esa patilla a positivo y ya esta, no??
Con ese cambio ya funcionaría sin problema y sin reloj externo. :mrgreen:
Muchas gracias.
-
Por las dudas pone una resistencia de 1 o 10K entre la patita MCLR y el positivo. Tal vez en un futuro la pongas como salida sin querer y la quemes.
saludos!!
-
Estupenda idea Gera!!! :-/ :-/
La pongo en practica en el diseño de la placa.
Saludos!!!!!