Many options exist to drive seven-segment LED displays, but most are limited
to low output currents. The approach described here uses one 74ALS374 or 74AS374
octal latch, wired as a shift register, per digit. The 74ALS374/74LS374 can
handle an output sink current of 24 mA per bit, and the 74AS374 can handle 48
mA per bit, suiting it for large bright displays.
Using this approach, you can not only generate the numbers 0 through 9, but also leading zero suppression, as well as the commonly used seven-segment Hex characters A through F. In fact, any other combination of seven segments not available to seven-segment decoder-type drivers can be generated. Since this design uses an eight-bit latch, the remaining bit can drive a decimal point.
The figure shows the circuitry for a two-digit,
common-anode display (MAN6710) that can be expanded to any number of digits.
Series resistors and the type of latch used limit the segment current. Because
not all manufacturers of the '374 specify output current limits in the same
way, you should refer to the specific manufacturer's data sheets.
You can interface this type of display to a microcontroller using one or two output pins. The one-pin MCU interface employs a pulse-width-encoded output per segment. "No data" is represented as a high level, and the data bit is represented as a low level for a period, which depends on the data.
Timing isn't critical, except for the transmission of the logic 1 low time.
With the circuit shown, the logic 1 low time should be between 2 and 10 s, and
it can easily be guaranteed if global interrupts are disabled during this time
only. All other timing has only minimum restrictions.
The DSD (Digital Signal Data) output will be low only if the DSC (Display Signal Clock) input is low for more than about 20 s. Since the '374 latch is clocked on the positive edge, the DSC positive edge then clocks the DSD output. Logic 0 will turn on a segment, and logic 1 will turn it off.
A lookup table in the MCU code is used to generate the desired display. U4
can be two sections of a 74HC14 or one 74LVC2G14/NC7WZ14. If two MCU output
pins are available, the U4 circuit can be eliminated and the DSC clocking and
DSD data are generated to meet the '374 timing specification.