Ayuda con PIC16F876A

#1
Hola a todo el foro, en primer lugar comentar que no soy ningún gran experto con los PICs, pero llevo algunos pequeños proyectos desarrollados y la experiencia es bastante satisfactoria.

En estos momentos estoy estancado en un proyecto con un PIC16F876A, primero pensaba que el programa estaba mal hasta el punto que descubrí que el oscilador no estaba funcionando, comprobándolo con un osciloscopio.
Quitando trozos de código se a quedado en nada, activar y desactivar una salida, el oscilador funciona pero a los 21 segundos deja de hacerlo y la salina no se activa.

Os dejo las pocas instrucciones que quedan de código:

PHP:
#device PIC16F876A
#fuses XT, NOWDT, NOPUT, NOPROTECT
#use delay (clock=4000000)

void main()
{

set_tris_c(0x00);
   
   output_c(0x01);
   delay_ms(2000);
   
   output_c(0x00);
   delay_ms(2000);
}
Saludos
 
Última edición por un moderador:
#2
Recuerda siempre poner un bucle infinito que evite que el programa se salga de Main, de lo contrario el chip se seguira de largo ejecutando todo lo que encuentre hasta que se pierda definitivamente... aplicando esto tu programa quedaria como sigue:

PHP:
#device PIC16F876A
#fuses XT, NOWDT, NOPUT, NOPROTECT
#use delay (clock=4000000)

void main()
{

set_tris_c(0x00);

while (1){
output_c(0x01);
delay_ms(2000);

output_c(0x00);
delay_ms(2000);
}
}
 
#7
Hola Freny,

El cristal es de 4MHz, en el adjunto tienes el esquema, en estos momentos tengo conectado un led en el pin 11 de forma provisional, pues el proyecto es todo con señales analógicas y como no funciona empece en nuevo con solo una salida.

Saludos
 

Adjuntos

#8
Hola

En los fuses, cambia XT por HS. También añadiría el NOLVP por si acaso.

#fuses HS, NOWDT, NOPUT, NOPROTECT, NOLVP

Saludos
 
#9
Hola Freny,

Cambiado fuse XT por HS, añadido NOLVP.
El oscilador esta durante unos minutos en funcionamiento, luego cae y el tiempo ya no es constante varia entre minuto y medio y tres minutos y medio. La salida continua sin funcionar.

Saludos
 
Arriba