74LS47: the BCD to 7-segment decoder/driver, live
The 74LS47 is a BCD-to-seven-segment decoder/driver: it turns a 4-bit BCD digit on D C B A into the seven segment signals a to g for a common-anode display, with active-low outputs, so a LOW output lights its segment. It adds a lamp test (LT), leading-zero blanking (RBI and RBO) and a blanking input (BI). This live circuit follows its function table, with a display that lights wherever an output is LOW.
Each segment output is a function of the four input bits, written here as its minimal sum of products (for example, segment e is lit for C'A' + BA'), so the decoder itself is 16 shared AND terms feeding seven OR chains. Two details give the chip away: it draws 6 and 9 without tails (6 has no top segment and 9 no bottom one, while the generic BCD to 7-segment decoder on this site draws both tails), and inputs 10 to 14 show five odd symbols that TI's datasheet calls "unique symbols to authenticate input conditions", while 15 is blank. The control inputs are all active low. LT = 0 turns every segment on, to test the display. RBI = 0 blanks the digit when it is 0 and pulls RBO low, so chaining RBO of one digit to RBI of the next suppresses leading zeros, as in 0042 shown as 42. BI = 0 turns everything off, whatever the other inputs say, which is also how you dim a display by pulsing it. On the chip BI and RBO share one wire-AND pin; here they are a separate input and output. The outputs are open collector, and per the datasheet the SN74LS47 sinks up to 24 mA at up to 15 V, enough to drive LED segments through resistors. All 128 combinations of LT, RBI, BI and D C B A are checked against the datasheet's function table before the page is built. The live circuit opens showing 0, with LT, RBI and BI high.
Open this circuit in the lab →
What you need
- 4× NOT: D', C', B' and A'
- 20× AND + 18 OR: each segment's minimal sum of products over D C B A (16 product terms, shared between segments)
- 2× NOR + 1 AND: zero detect: the input is 0000
- 2× AND: ripple blanking, LT AND NOT RBI AND zero, which blanks the digit; RBO is its inverse
- 1× OR: blank = NOT BI OR ripple blanking
- 7× OR: lamp test: a segment is on when NOT LT or its decode is 1
- 7× NAND: the active-low outputs a to g: NAND(on, NOT blank)
- 5× NOT: NOT RBI, NOT BI, NOT LT, NOT blank and RBO
- 7× NOT: drive the display, which lights a segment where its output is LOW, like a common-anode display
Step by step
- Place the BCD inputs
D,C,B,A(D is the most significant bit), the control inputsLT,RBIandBI, probesatogandRBO, and a 7-segment display. - Decode each segment from the function table as a minimal sum of products, for example
e = C'A' + BA'andc = D'C + C'B' + C'A. - Add the controls: OR each decode with NOT LT for the lamp test, and form
blank = NOT BI + LT RBI' (DCBA = 0000), withRBO = NOT (LT RBI' zero). - Make each output active low:
out = NAND(on, NOT blank), and drive the display through inverters. - Step D C B A from 0000 to 1111 and watch the digits, the tailless 6 and 9 and the five symbols; then try LT = 0, BI = 0, and RBI = 0 with the input at 0000.
74LS47 function table
| Input | D C B A | Lit segments | a b c d e f g (0 = lit) |
|---|---|---|---|
| 0 | 0 0 0 0 | a b c d e f | 0 0 0 0 0 0 1 |
| 1 | 0 0 0 1 | b c | 1 0 0 1 1 1 1 |
| 2 | 0 0 1 0 | a b d e g | 0 0 1 0 0 1 0 |
| 3 | 0 0 1 1 | a b c d g | 0 0 0 0 1 1 0 |
| 4 | 0 1 0 0 | b c f g | 1 0 0 1 1 0 0 |
| 5 | 0 1 0 1 | a c d f g | 0 1 0 0 1 0 0 |
| 6 | 0 1 1 0 | c d e f g | 1 1 0 0 0 0 0 |
| 7 | 0 1 1 1 | a b c | 0 0 0 1 1 1 1 |
| 8 | 1 0 0 0 | a b c d e f g | 0 0 0 0 0 0 0 |
| 9 | 1 0 0 1 | a b c f g | 0 0 0 1 1 0 0 |
| 10 (symbol) | 1 0 1 0 | d e g | 1 1 1 0 0 1 0 |
| 11 (symbol) | 1 0 1 1 | c d g | 1 1 0 0 1 1 0 |
| 12 (symbol) | 1 1 0 0 | b f g | 1 0 1 1 1 0 0 |
| 13 (symbol) | 1 1 0 1 | a d f g | 0 1 1 0 1 0 0 |
| 14 (symbol) | 1 1 1 0 | d e f g | 1 1 1 0 0 0 0 |
| 15 (symbol) | 1 1 1 1 | none (blank) | 1 1 1 1 1 1 1 |
| BI = 0 | any | none | 1 1 1 1 1 1 1 |
| RBI = 0, LT = 1 | 0 0 0 0 | none, and RBO = 0 | 1 1 1 1 1 1 1 |
| LT = 0 (BI high) | any | all (lamp test) | 0 0 0 0 0 0 0 |
74LS47 pinout
| Pin | Name | Pin | Name |
|---|---|---|---|
| 1 | B | 9 | e |
| 2 | C | 10 | d |
| 3 | LT (active low) | 11 | c |
| 4 | BI/RBO (active low) | 12 | b |
| 5 | RBI (active low) | 13 | a |
| 6 | D | 14 | g |
| 7 | A | 15 | f |
| 8 | GND | 16 | VCC |
Segments are named a (top) clockwise to f, with g in the middle. Rows 0 to 15 assume LT, RBI and BI high (RBI only matters at 0000). The table, the 16-pin DIP pinout and the drive figures are from TI's SN54LS47/SN74LS47 datasheet (SDLS111), checked 2026-10-25. The 74LS48 has active-high outputs with internal pull-ups instead, for common-cathode displays.
You can also read the full theory in the lesson on decoders. Prefer to build it yourself from scratch? Open the digiwleea lab and place the gates on the canvas, or start from the logic gate simulator.
Build more parts from gates
Each of these is one step from a transistor to a working CPU. Build every gate from CMOS transistors and work all the way up in the free digiwleea lab, with the free theory reference alongside.
Open the 74LS47 BCD to 7-segment decoder in the lab →Frequently asked
What does the 74LS47 do?
It converts a 4-bit BCD digit (inputs D, C, B, A) into the seven segment signals a to g for a common-anode 7-segment display. Its outputs are active low and open collector, so they sink current to light each segment, and it adds lamp test, ripple blanking for leading zeros and a blanking input.
Is the 74LS47 for common anode or common cathode displays?
Common anode. Its outputs go LOW to light a segment, pulling current through the segment from the shared anode. For a common-cathode display, use an active-high decoder such as the 74LS48.
What do LT, RBI and BI/RBO do on the 74LS47?
LT (lamp test) low turns all segments on. RBI (ripple blanking input) low blanks the display when the input is 0 and drives RBO low, so chained digits suppress leading zeros. BI low blanks the display regardless of the other inputs; BI and RBO share one pin.
Why do 6 and 9 look different on a 74LS47?
The 74LS47 draws 6 without its top segment and 9 without its bottom segment (no tails). TI's 74LS247 is the version that draws both digits with tails.
What does the 74LS47 show for inputs above 9?
Inputs 10 to 14 show five distinct symbols made of the lower and middle segments, and 15 turns every segment off. The datasheet describes them as unique symbols so that invalid inputs can be recognized.