Problema con PIC16F877A, programa en pic c compiler

#1
Hola a todos.
Tengo un problema con un código que creé en pic c compiler (el diagrama y el código están adjuntados), usando la opción de PIC WIZZARD, colocando la frecuencia a 20MHz. Se trata de un despertador, el programa lo creé a partir de lo que he aprendido en programación en c++.
En proteus el programa funciona perfectamente, pero cuando lo pruebo físicamente en el pic 16f877a; cuando ajusto el tiempo, el pic y la pantalla lcd se traban (deja de funcionar).
Hay algún problema con mi programa?
Cómo se puede solucionar?
Sería una mejor opción buscar un programa de despertador ya hecho (en pic c complier)?
Espero alguien pueda ayudarme con éste problema.
Muchas gracias por su atención.
 

Adjuntos

#2
no haces filtrado anti rebote de los botones?



es decir despues que leas una entrada, de uno de los pulsadores deverias esperar unos 100ms de retardo para desaparesca el rebote mecanico
 
Última edición:
#3
De hecho el pulsador suma 1 cada segundo, aún teniendo el pulsador oprimido.
Creo que era el lcd, ya no le sirve la luz.
Lo cambié por uno normal, que no tiene luz, pero ahora no me imprime bien (luego subo una foto para que se pueda ver como imprime el lcd). Sólo salen los segundos, el contador funciona bien, los pulsadores funcionan bien... sólo el lcd no imprime bien. Y cuando en el programa acomodo la posición los números que se imprimen en el lcd (al centro), pasan dos tres segundos y se traba el lcd y el pic, ambos dejan de funcionar (no quiero decir que ya no sirvan, siguen sirviendo).
 
#4
Una pregunta.
Alguien sabe cómo manejar display de 7 segmentos (un paquete de 4) desde el pic16f877a? De tal manera que impriman números o letras deacuerdo a las condiciones que se programen (como retardos o cuando halla o no halla entrada en algún pin, etc)
 
Arriba