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. For Arduino version click here. 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.
In the following figure you can see the prototype board I was using to build the LCD Alarm Clock. Click the image to see higher resolution picture of the board.
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.