Alphanumeric LED displays are available in several main variations.
The 7-segment numeric display remains the most common of these displays. Many devices including industrial controllers have displayed alpha characters on these displays and while acceptable for some characters (A, b, C, d, E, F, etc.) many characters were comically indecipherable without a code book from the manufacturers.
Less popular, but far superior when alpha characters have to be displayed, are the ‘starburst’ alphanumeric displays referred to as 14-segment and 16-segment characters (ignoring the DP). Starburst displays provide an economical way of showing the full 26-character Roman alphabet in upper case, as well as the numerals 0 to 9. The difference between the 14-segment and the 16-segment digit types is that the top and bottom bar is split on the 16-segment digit, improving the appearance of some characters.
Small displays use one die per display segment, while large displays may use two or more dice per segment to spread the light effectively and show reasonably uniform intensity across the segment.
7-segment (or “seven-segment) LED displays are commonly used to display digital information. Each segment consists of one or more LEDs and can be lit independently of all the others to form the digits 0 to 9. A limited range of alphabetic characters can also be formed but these are of mixed case and can be difficult to read.
The standard segment identification is shown in Figure 1 and segments are named A to G starting at the top and going clockwise with G being the centre segment.
Typically the displays have a common pin for all the LED anodes or cathodes. Eight pins will suffice for a true seven-segment display whereas nine are required for one with a decimal point.
Multiplexed 7-segment display
By multiplexing seven-segment displays the number of pins required to drive the displays can be reduced. In the scheme of Figure 4 the segments are driven high by the micro-controller. The required segments for digit 1 are set on lines A to G and Q1 strobed (turned on briefly). Then the required segments for digit 2 are turned on and Q2 is strobed, etc. The sequence is run quickly enough that all digits appear to be continuously lit due to persistance of vision.
When multiplexing displays in this manner it is normal to run at a current higher than nominal. This is acceptable because the segments will be powered for a maximum of 25% of the time – 25% duty-cycle.
Note that 32 segments can be controlled using only 12 outputs from the controller. This efficiency in hardware and PCB layout is what makes multiplexing so popular.
Reducing controller pins
By using a latch / decoder / driver such as the 4511 decoder (datasheet) the designer has many more options for display. By using the BCD decoder only four lines are required to drive the seven segments.
BL: blanking. Pull low to turn all segments off. Display: blank.
LT: lamp-test. Pull low to turn all segments on. Display: ‘8’.
LE: latch enable. Pull low to read the inputs and pass through to the seven segment outputs. Pull high to latch the outputs.
Note that BCD values above ‘9’ are considered void and the display will be blank. This renders the 4511 unsuitable for hexadecimal display.
The 4511 can source or sink current for the displays. See the datasheet for ratings.
Flicker-free 7-segment display
Figure 5 shows how to use a 4511 latch per digit. In this case the data for each digit is set up in turn on D0 to D3 and the digit’s /LE (latch enable) pin is pulled low. The seven-segment display will immediately update and will be latched when the /LE pin is pulled high again. This, for example, would allow the micro to handle other tasks without having to update the display until required. The D0 to D3 IO pins could even be used as inputs with suitable input resistors while the diplay update is not required.
Note that the display decimal points are not controlled by the 4511. This leaves the designer with several options:
No decimal point.
A fixed decimal point by wiring one of the DP pins to Vss.
Program controlled decimal point. This will require one extra controller output pin per decimal point.