Simple digital clock, displays hours, minutes, and seconds in either a 24h format.
Since there are not enough output pins to directly drive a 6x
7-segment displays, the data is shifted out serially using an internal 8-bit shift register.
The shift register drives 6-external 74xx596 shift registers to the displays. Clock and control
signals (serial_clk
, serial_latch
) are also used to shift and latch the data into the external
shift registers respectively. The time can be set using the hours_set
and minutes_set
inputs.
If set_fast
is high, then the the hours or minutes will be incremented at a rate of 5Hz,
otherwise it will be set at a rate of 2Hz. Note that when setting either the minutes, rolling-over
will not affect the hours setting. If both hours_set
and minutes_set
are presssed at the same time
the seconds will be cleared to zero.
Connect serial output to a 6x 8-bit shift registers to display the output on 6x 7-segment displays
shift registers, 7-segment displays
# | Input | Output | Bidirectional |
---|---|---|---|
0 | refclk | serial_data | |
1 | use_refclk | serial_latch | |
2 | fast_set | serial_clk | |
3 | hours_set | ||
4 | minutes_set | ||
5 | |||
6 | |||
7 |