I started this project one afternoon when I didn't have anything to do. The goal was to make a clock from the parts I had lying around (excluding microcontrollers). The result, as you can see below, is a clock built entirely from TTL ICs. It was a fun project and I learned a good bit from it. On this page I'll attempt to flesh out the details of the project.
13 - 74LS76 - Dual JK Flopflops
3 - 74LS00 - Quad 2-input NAND
2 - 74LS20 - Dual 4-input NAND
1 - 74LS04 - Inverter
2 - 74LS153 - Dual 4-input Multiplexer
1 - 74LS47 - 7 Segment Decoder
2 - LM555 - Timer
2 - Diodes
Some capacitors and Resistors
Here is a block diagram of the basic operations of the clock:
Time is kept based on a 60hz sine wave from mains. A series of frequency dividers divide the signal down to 1/60hz. The divided fequency is then used to trigger the clock counters, as shown in the diagram above.
I found the most interesting part of the whole project to be the multiplexing of the digits. The multiplexers take two control bits to select which data goes to the 7-segment decoder. There's also a decoder that takes the control bits and turns on the right digit at the right time. Initially I took the control bits from the two LSBs of the first counter. Alas, this wasn't fast enough as it caused the display to refresh at 15hz. I ended up using a 555 timer to generate a ~300hz clock to feed the multiplexer control logic.
I cut quite a few corners in this project due to the fact that I was working with what I had lying around. One of the biggest issues I had was with the power supply. Obviously, a regulator would have been my best bet. Since the power supply is unregulated the voltage would drop as the load increases. It was still pretty interesting to see watch the voltage decrease every time I added another chip.
The mechanism to set the time is as basic as it gets. To set the clock you plug the probe into the clock of the digit you're incrementing and hit the button. So, a pretty decent understanding is required to set the clock.