A seven-segment display (SSD) is a display device packaged in a single IC chip and composed of a group of seven bar-shaped LEDs. Some seven-segment displays may come with a decimal point (DP). Different numbers and letters may be formed by powering selected LED elements. SSDs come in various packages and pin arranges.
Configurations
There are two basic configurations of seven-segment displays: common cathode (CC) and common anode (CA).
Common Anode
A common anode seven-segment display is one where the anode leads of all the LEDs are tied together. In a CA SSD, power must be supplied to anode that is common to all the segments. Appropriate segments can be lit up by applying ground to them.
Common Cathode
a Common cathode seven-segment display is one where the cathode leads of all the LEDs are tied together.
Basics
The various numbers (and possibly A-F) can be displayed by simply powering the correct segments by either connecting GND or Vcc.
Digit | BCD | 7-Segments | abcdefg | gfedcba | Display | Reference | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
D | C | B | A | a | b | c | d | e | f | g | |||||
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0x7E | 0x3F | ||
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0x30 | 0x06 | ||
2 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0x6D | 0x5B | ||
3 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0x79 | 0x4F | ||
4 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0x33 | 0x66 | ||
5 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0x5B | 0x6D | ||
6 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0x5F | 0x7D | ||
7 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0x70 | 0x07 | ||
8 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0x7F | 0x7F | ||
9 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0x7B | 0x6F | ||
A | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0x77 | 0x77 | ||
b | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0x1F | 0x7C | ||
C | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0x4E | 0x39 | ||
d | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 0x3D | 0x5E | ||
E | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0x4F | 0x79 | ||
F | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0x47 | 0x71 |
In-code decoding can be done easily using a simple lookup table such as the one below:
const unsigned char seven_seg_digits_decode_abcdefg[16]=
{
/* 0 1 2 3 4 5 6 7 */
0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B, 0x5F, 0x70,
/* 8 9 A B C D E F */
0x7F, 0x7B, 0x77, 0x1F, 0x4E, 0x3D, 0x4F, 0x47
};
const unsigned char seven_seg_digits_decode_gfedcba[16]=
{
/* 0 1 2 3 4 5 6 7 */
0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
/* 8 9 A B C D E F */
0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71
};