Problema con PIC16F877A

#21
Buenas,
Ese comportamiento me suena a 'ruido'.
¿Seguro que tienes implementado un pull-up en todas las entradas?
Introduce un retardo de un segundo en el bucle, para ver cómo cambian los LED.
G.
 
#22
Si para algo sirven los simuladores de este tipo es para probar la lógica del programa, si en el te funciona, evidentemente la lógica esta bien pero debe fallar la implementación de lo virtual a lo real.

Puede ser desde un mal PCB(peor protoboard), configuración de los fusibles de programación del PIC, ruido en la alimentación y una larga sucesiones de etc.

Tu tienes el susodicho delante y seras quien resolverás o no, eliminando de a una las posibles causas hasta dar con el/los problema/s.

Ya te han indicado algunas cosas. Se mas especifico y descriptivo de que te hace el prototipo y que has hecho tu para resolverlo.

Ric.

Después de revisar el programa la lógica no esta bien ya que si se da la casualidad que tienes mas de un "sensor" a GND a la vez, no lo tienes contemplado y el resultado es incierto....en la simulación busca esa situación y veras el resultado.
 
Última edición:
#23
Adjuntaré el archivo en isis de proteus y el archivo hex que pide ricvebi.
Este es el resultado que se obtiene por no definir los fuses:
Fuses Default 16F877A.jpg
El Watch dog Timer se encuentra activo y debe resetearse cuando desborde generando un reset total del programa.
Por cierto, verifica tus sentencia TRIS con lo que usas en los puertos, pues están mal.
Y otra cosa. Por favor dale una buena leída a la hoja de datos del microcontrolador.
Haz de ello una costumbre antes de programar cualquier micro.
 

Arriba