# How to convert BCD to multi-digit 7-segment?

I have a BCD input in the form of 8 wires (eight bit number, up to 511 decimal) and I want to display it on a seven segment display.

I have found a product which has 4 1/2 digits and a converter, but according to the datasheet, there are only 4 BCD inputs (four bit number, up to 31 decimal). Am I reading the datasheet wrong?

I have also heard about multiplexing but I do not understand it.

The datasheet can be found here.
The product can be found here.

Thanks,

• In this module you sequentially display all 5 digits. You activate one transistor at a time (pins A,B,C,D,E) and provide a BCD number (I,J,K,L) for that digit. If you do that fast enough you won't see the displays blink. Look at the timing diagram on page 4. Commented Aug 6, 2015 at 14:22
• 8 wires is only enough for 0..255 decimal. Commented Aug 6, 2015 at 14:24
• BCD stands for "binary-coded decimal", in which groups of four wires are used to represent single decimal digits. Eight wires in BCD allows you to represent 00 ... 99. However, if your input is pure binary, eight wires can represent numbers from 0 to 255 (not 511). So, is your input binary or BCD? Commented Aug 6, 2015 at 14:40

You found a pretty nice display, it includes the BCD and to 7 segment for you; that way you can control the segments with four lines, not including the multiplexing.

I can't hold your hand using this, I'll give some input though.

You have a simplified diagram of how the display works here in the datasheet:

So the main signal pins that you have to use are A through E with L to I.

Like Alex said, you need to activate each transistor (A to E) one at a time, to turn on a single digit. Activate A to show Digit 5, activate C to show digit 2.

L through I controls what number is displayed on the digit that is activated. So if you want '5' on digit 2, set C HIGH and write "0101" to JKLI respectively.

The datasheet is nice enough to provide a reference:

So the idea is to turn on one of the digits for a short period of time, and display the number you want on that digit. Then cycle through the rest and set the correct binary value for the respective digit.

If you want "1234" displayed: activate A and drive "0100", activate E and drive "0011", activate D and drive "0010", activate C and drive "0001". The idea is you cycle through the 4 digits so fast that a user cannot tell they are being blinked. Which is called multiplexing.

Ok, that's a lot more help than I was planning on giving but I needed a quick break from work. Good luck.