Due to popular demand I’ve modified digital clock design to work with LCD display instead of 7-Segment LED as described in this post. All the capabilities of LED version have been maintained in current project. 1 sec pulses are still produced by Timer1 interrupt although external 32.768KHz crystal can be used for this purpose. However the main goal of all published designs is simplicity, the less external components the better. Still you can find more detailed explanation regarding different ways of producing 1Hz clock here. PIC16F877 was used as it has sufficient I/O to interface the display and buttons. Source code can be easily modified for other similar micro controllers. I was also considering connecting photo diode to A/D input and controlling the LCD back lighting according to ambient light, maybe I’ll implement it in the next revision.
Time and Alarm settings can be adjusted by pressing Time/Alarm and Min/Hour buttons. For example in order to set the time you’ll need to press Time while holding down Min/Hour buttons. I didn’t find any bugs during the testing however they may be hiding in the code. Source code can be downloaded here.