The next building block needed is a counter, to keep track of time.
We need a decade counter for the units places of seconds/minutes/hours and a few smaller counters for the tens places of seconds/minutes/hours. A few more counters will be needed in timebase oscillator section to divide down to 1Hz.
There are a few options to consider:
- A ripple counter uses toggle flip-flops, which can be created by running the Q output of a D flip-flop through an inverter and back into its own D input. This requires
555s per counter, so a decade counter needs 12 555s.
- A ring counter uses D flip-flops, with their D inputs cascaded in a ring, and needs 1 DFF per state. Additional logic is required to make sure the ring gets reset to a consistent state. So somewhere over 2*n 555s are required, giving our decade counter 20+ 555s.
- A twisted (or Johnson) ring counter adds an inverter in the feedback path of the regular ring counter. With this, 2n states occur for every n DFFs. So
555s are required, giving our decade counter 11 555s.
A Johnson counter is the winner; even though it only saves 1 555 over the ripple counter, it is also synchronous, whereas the ripple counter is asynchronous. This is an advantage when it comes to stably decoding the state of the counter.
Here is our decade counter, then:

Exposing both O4 and !O4 will help to decode the counter, and also when we need to cascade into the clock inputs of the next counter down the line. And we can create longer or shorter counters by adding or removing additional DFF stages.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.