title title title title

7-Seg Display

7-Segment Displays

The first thing to consider when working with 7-segment diplays is whether the LEDs in the package are common cathode or common anode. 7-seg displays connect together the leads of the LEDs on one side in one of these two approaches to minimize the wiring to the display. So there are two ICs in the TTL data books to accommodate this. The 74LS48 works with common cathode displays. The 74LS47 works with common anode displays. How they work is basically the same. The display usually has 10 pins. Pin 1 and pin 6 are most likely Vcc. In the common anode type, the ground comes through the LED segments. You'll need to have an external current limiting resistor on each segment when working with the older TTL chips. The segment pins usually start with pin 10 a "a" and progress as pin 9, "b", pin 8, "c", pin 7, "DP", pin 5, "d", pin 4, "e", pin 3, "g" and pin 2, "f."

When programming a microcontroller, use an byte array format as B[DP,a,b,c,d,e,g,f] or something similar to create patterns for the various numbers and where you want to use the decimal point (DP). Of course, always collect the datasheets for all the components you are going to use and get familiar with how each works. Some of the best chips have advanced feature and you will probably want to use them.

The Maxim company has two excellent chips to control 7-seg displays. The MAX7219 or 7222, the difference being the 7219 uses a basic RS232 styled bus and the 7222 uses a SPI bus to operate the chip. These chips can run eight 7-seg display digits with one chip. They can also be cascaded for more display digits or LED patterned light displays beyond the 7-seg layout. These chips also only need one current limiting resistor for the whole arrangement. It is chosen according to how much you have going on, so read the datasheet.

The programming interface API to run the Maxim chips is quite complex, so do youself a favor and use one of the smooth operating libraries to make it easy. I will use the LedControl library for the Arduino and a couple of others when working directly with the 7-seg digits.

The picture in the upper left shows two different circuit boards. The green one is a perf-board I mounted a couple of common anode digits. I used a 74LS247 to get it to work, because it was a common anode type. The 74LS47 and 74LS247 work the same way. The red board has a CD7219 chip on the back and works great with the LedControl library. The video is the best way to see how the software controls the boards.

Click here to see the video.