Discrete Logic Clock
Most digital clocks these days are made from microcontrollers, but I wanted an added challenge to use it using only logic chips trying to focus on using the TTL (74xx series) integrated circuits. So, my plan was to design and build a digital clock using only discrete logic. Since I wanted my clock to be relatively small I chose so only display Hours and Minutes, rather than hours, minutes and seconds. The clock will contain only discrete logic, no microcontrollers.
Before I designed my clock, I researched how clocks worked and explored what others had done. Most people seem to use microcontrollers, for a few reasons one being amount parts and amount of effort. The other designs I found used ripple counters. I went digging around finding out what a ripple counter was. A ripple counter is an Asynchronous (Doesn’t need a system clock) counter, that every time I get a signal on the clock pins ripples through the d-flip flops inside changing the output. each time the chip gets a pulse the ripple counter will increment the output value by one (in binary).
One part that I found common across most of them was a 32.768 kHz crystal. this seemed a perfect starting point, especially since 32768 is 2^15. in other words, if I divide the 32768 Hz signal by 2 15 times I will be left with a 1Hz signal, which is perfect because all clocks start with seconds. To divide a clock signal, I used ripple counters connected to continually divide the clock signal by 2 until the output signal was 1 Hz.
I began prototyping the 1-second segment using a CD4060. I know, not strictly TTL but this IC had a built-in oscillator amplifier and allowed me to divide by 2^14. Following this was 6 74HC93 chips which are ripple counters. these chips will increment themselves every time there is a pulse on their clock pin.
The first clock pin on the ripple counter straight after the CD4060 will be a 2Hz signal. This is because of 32768/2^14 = 2, So to get a 1 Hz signal, or in other words a tick every second you will need to divide the 1 Hz signal again by 2. The 74HC93 make this easy to do by having a separate clock pin (CP1), by feeding the output Q_0 into the CP1 pin the output on Q_1 will now be 1Hz. Now here is where things are up to you. If you want to display the second’s count you need to have an extra 74HC93 ripple counter making the total used 6. This is so you can have one ripple counter for each displayed digit.
The rest of the circuit is straightforward as the concept is very similar. The only difference is where you will connect the AND gates to reset the counters. I was making a 24-Hour clock, it would be simple to make a 12-hour clock two just by playing around with when the hour counters reset.
After all the counting the seconds, minutes and hours it might be useful to set the time. I did this by using a re-triggerable monostable multivibrator. This allowed me to press the button once and only allow the clock to increment by one. You can do this many ways, another one would be having the button link the crystal to the counter to increment it, but this would most likely always cause an overshoot. Below is the schematic for the rest of the clock.
The next step from here will be to prototype the design to make sure it works then design the circuit boards. Send me an email, or comment and let me know what you think!
It’s Finished. Check out the final product here!