more about digital clock
If you have read How Pendulum Clocks Work, you know that all clocks (regardless of technology) have a few required components:
A source of power to run the clock
In a pendulum clock, the weights or the springs handle this role.
An accurate timebase that acts as the clock’s heartbeat
In a pendulum clock, the pendulum and escapement handle this role.
A way to gear down the timebase to extract different components of time (hours, minutes, seconds)
In a pendulum clock, gears serve this role.
A way to display the time
In a pendulum clock, the hands and face serve this role.
A digital clock is no different. It simply handles these functions electronically rather than mechanically. So in a digital clock, there is an electrical power supply (either a battery or 120-volt AC power from the wall). There is an electronic timebase that “ticks” at some known and accurate rate. There is an electronic “gearing mechanism” of some sort — generally a digital clock handles gearing with a component called a “counter.” And there is a display, usually either LEDs (light emitting diodes) or an LCD (liquid crystal display).
High-Level View
Here is a quick overview of the components of a digital clock at a high level.
At the heart of the clock there is a piece that can generate an accurate 60-hertz (Hz, oscillations per second) signal. There are two ways to generate this signal:
The signal can be extracted from the 60-Hz oscillations in a normal power line. Many clocks that get their power from a wall socket use this technique because it is cheap and easy. The 60-Hz signal on the power line is reasonably accurate for this purpose.
The signal can be generated using a crystal oscillator. Obviously, any battery-operated clock or wristwatch will use this technique instead. It takes more parts, but is generally much more accurate.
The 60-Hz signal is divided down using a counter. When building your own clock, a typical TTL part to use is a 7490 decade counter. This part can be configured to divide by any number between 2 and 10, and generates a binary number as output. So you take your 60-Hz time base, divide it by 10, divide it by 6 and now you have a 1-Hz (1 oscillation per second) signal. This 1-Hz signal is perfect for driving the “second hand” portion of the display.
To actually see the seconds, then the output of the counters needs to drive a display. The two counters produce binary numbers. The divide-by-10 counter is producing a 0-1-2-3-4-5-6-7-8-9 sequence on its outputs, while the divide-by-6 counter is producing a 0-1-2-3-4-5 sequence on its outputs. We want to display these binary numbers on something called a 7-segment display. A 7-segment display has seven bars on it, and by turning on different bars you can display different numbers:
To convert a binary number between 0 and 9 to the appropriate signals to drive a 7-segment display, you use a (appropriately named) “binary number to 7-segment display converter.” This chip looks at the binary number coming in and turns on the appropriate bars in the 7-segment LED to display that number. If we are displaying the seconds,The output from this stage oscillates at a frequency of one-cycle-per-minute. You can imagine that the minutes section of the clock looks exactly the same. Finally, the hours section looks almost the same except that the divide-by-6 counter is replaced by a divide-by-2 counter.
Now there are two details left to figure out if you are building a real clock:
The clock as designed here does not understand that at 12:59:59 it is supposed to cycle back to 1:00. That is a messy little problem, and there are a couple of ways to solve it. One technique involves creating a little bit of logic that can detect the number 13 and reset the hour section back to 1 (not zero). Another technique involves using an adder. For our purposes, it is easier to deal in military time, because military time includes a zero hour.
We need a way to set the clock. Typically this is handled by gating higher-than-normal frequencies into the minutes section. For example, most clocks have “fast” and “slow” set buttons. When you press the “fast” button, the 60-Hz signal is driven straight into the minutes counter. When you press the “slow” button, a 1-Hz signal is driven into the minutes section. There are other possible techniques, but this one is the most common.
Building Your Own Digital Clock
The best way to understand the different components of a digital clock and how they work together is to actually walk through the steps of building your own clock. Here we will build just the “seconds” part of the clock, but you can easily extend things to build a complete clock with hours, minutes and seconds. To understand these steps, you will need to have read How Boolean Logic Works and How Electronic Gates Work. In particular, the electronic gates article introduces you to TTL chips, breadboards and power supplies. If you have already played around with gates as described in that article, then the description here will make a lot more sense.
The first thing we need is a power supply. We built one in the electronic gates article. That time, we used a standard wall transformer that produced DC (direct current) power and then regulated it to 5 volts using a 7805. For our clock, we want to do things slightly differently because we are going to extract our 60-Hz timebase from the power line. That means that we want an AC rather than a DC transformer, and we will use a part called a bridge rectifier to convert the AC to DC. Therefore, we need the following parts for our power supply:
Part name Jameco part #
12-volt AC transformer 115602
Bridge rectifier 103018
7805 5-volt regulator (TO-220 case) 51262
Two 470-microfarad electrolytic capacitors 93817
5.1-volt zener diode 36097
1-K-ohm resistor 29663
A few notes on the parts used:
The difference between the AC transformer we are using here and the DC transformer we used in the article on gates is that the AC transformer preserves the 60-Hz sine wave found in 120-volt household current. If you want to use your volt-ohm meter to measure the voltage of an AC transformer, be sure you use an AC voltage range rather than a DC range.
We use the bridge rectifier to convert the AC to DC. One of the terminals on the rectifier will be marked with a “+” — from that you can find the minus and AC inputs. There is no polarity to an AC transformer, so it does not matter which transformer lead you connect to which AC lead of the rectifier.
The 7805 and capacitors are wired just like they were in the electronic gates article.
The resistor and the zener diode extract a 60-Hz signal from the transformer’s sine wave. A diode is a one-way valve for electrons. A zener diode is also a one-way valve, but it also passes electrons in the other direction if they are above a certain voltage. The zener diode therefore turns a 10-volt sine wave into a clipped wave oscillating between 0 and 5 volts. This is perfect for clocking the TTL counters. The 1-K-ohm resistor makes sure that the current to the zener diode is limited so we do not burn out the diode. The diode will have a band painted on one end — this band should be the end connected to the resistor.
To create the rest of the clock you will need:
At least four 7490 or 74LS90 chips
At least two 7447 or 74LS47 binary-to-7-segment converters
At least 20 resistors for the LEDs in the 7-segment displays (330 ohms would be fine.)
Some normal LEDs
At least two common-anode (CA) 7-segment LED displays (Jameco part # 17208 is typical.)
Breadboards, wire, etc. (See this page for a complete list.)
The number of chips, resistors and LEDs you need depends on how many digits you are interested in implementing. Here we will discuss only seconds, so the “at least” numbers are correct.