From WikiChip
seven-segment display

7 Segment LED.jpg

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.

Dialog-warning-yellow.svg This article may contain examples using specific pins. Your device pinout may differ. Always consult your datasheet.

Configurations

Common Anode SSD
Common cathode SSD

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

Further information: Representing Letters

The various numbers (and possibly A-F) can be displayed by simply powering the correct segments by either connecting GND or Vcc depending on your configuration. The usage of displaying various words on a 7-segment display is possible but is generally highly discouraged.

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 0 7 segment display labeled.svg
1 0 0 0 1 0 1 1 0 0 0 0 0x30 0x06 1
2 0 0 1 0 1 1 0 1 1 0 1 0x6D 0x5B 2
3 0 0 1 1 1 1 1 1 0 0 1 0x79 0x4F 3
4 0 1 0 0 0 1 1 0 0 1 1 0x33 0x66 4
5 0 1 0 1 1 0 1 1 0 1 1 0x5B 0x6D 5
6 0 1 1 0 1 0 1 1 1 1 1 0x5F 0x7D 6
7 0 1 1 1 1 1 1 0 0 0 0 0x70 0x07 7
8 1 0 0 0 1 1 1 1 1 1 1 0x7F 0x7F 8
9 1 0 0 1 1 1 1 1 0 1 1 0x7B 0x6F 9
A X X X X 1 1 1 0 1 1 1 0x77 0x77 A
b X X X X 0 0 1 1 1 1 1 0x1F 0x7C b
C X X X X 1 0 0 1 1 1 0 0x4E 0x39 C
d X X X X 0 1 1 1 1 0 1 0x3D 0x5E d
E X X X X 1 0 0 1 1 1 1 0x4F 0x79 E
F X X X X 1 0 0 0 1 1 1 0x47 0x71 F

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
};

Hardware Decoders/Drivers

New text document.svg This section is empty; you can help add the missing info by editing this page.