Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

7 segment displays

  1. Sep 4, 2009 #1
    It is possible to control many 7 segment displays with one micro? I'm talking like 40 of them! If not are segment display micros expensive? Picture a wall of 7 segment displays with a bunch of numbers. I think this would be fun...
  2. jcsd
  3. Sep 4, 2009 #2
    Yes if you have a proper interface to the microcontroller.
  4. Sep 4, 2009 #3


    User Avatar
    Science Advisor

    You can multiplex them. You need 7 data pins for each segment and 1 data pin for each digit. If you want to drive 40 digits, you need 47 data pins. If one uC isn't enough, you can use as many as you need; you only need one free pin on each chip to send serial data between them. You could also use daisy-chained decade counters to control the common anode or cathode and let the uC generate the clock pulses for them and also to control the segments. Both schemes rely on strobing the displays at a high rate of speed so the eye is fooled into thinking they're all displaying digits at the same time; in reality, only one is displaying at a time.
  5. Sep 4, 2009 #4
    You can reduce the number of data pins even further if you encode the clock pulses for the 40 digits in BCD (7 data pins) and the 7 segments in BCD (4 data pins) and do the decoding (11 lines to 47 lines) at the display.
  6. Sep 4, 2009 #5
    Yes this sounds like what i want to hear :)

    Unfortunately its very technical. I have only recently learned how to control one 7 segment with a basic stamp...So multiplexing and all that jazz is a bit Chinese.

    Can anyone break this down into more theory than proper terms?

    As i understand, a 7 segment uses one pin to control each line segment. Sooo... how can i say display "9876" with only 11 pins? don't you need to contact 7 points on each digit to light up the segments?
  7. Sep 4, 2009 #6
    Hi Yportne-
    For "9876", on the segment BCD lines you send 1001, 1000, 0111, and 0110.
    And on the decade (clock) BCD lines you synchronously send 0001, 0010, 0011, and 0100.
    These are decoded from BCD to 7 segments and BCD to 40 decades at the display. You will also need to send a ground and VCC for the decoders.
    Bob S
    [Added note] The 7447 chip
    has the 4 line (BCD) to 7 segment decoder plus a blanking input to turn off all segments. .
    Bob S
    Last edited by a moderator: Apr 24, 2017
  8. Sep 4, 2009 #7
    Hook up the first 7 pins in parallel to all 4 led displays. If for instance, all 4 displays were ON, then they all would display the same digit coming from the microcontroller. The trick is not to turn on all the displays at the same time, but to turn them on and off in sequence very fast. You can use the remaining 4 pins to turn on or off each display independently.
  9. Sep 4, 2009 #8
    OOoooo i'm surprised how fast what yall said made sense...with the help of a googled tutorial I think i'm going to get this pretty soon...

    I'll keep yall posted if I run into any more questions, thanks for the help!

    By the way, anyone know where I can buy some 7-segment displays online? I just want to browse through the different kinds to see whats out there :)
  10. Sep 4, 2009 #9
    Last edited by a moderator: May 4, 2017
  11. Sep 4, 2009 #10
    Here is a block diagram of what I was thinking for the 40 decades. You would need one BCD to 7 segment decoder (plus line drivers maybe), and a BCD to 40 channel decoder for the decade clock.

    Attached Files:

  12. Sep 5, 2009 #11


    User Avatar
    Science Advisor


    I strongly urge anyone interested in electronics experimentation to browse through this store.
  13. Sep 5, 2009 #12
  14. Sep 5, 2009 #13


    User Avatar
    Science Advisor

    That's my other favorite electronics hobbyist site.
  15. Sep 6, 2009 #14


    User Avatar
    Science Advisor

    You might get into trouble trying to multiplex 40 7 segment displays by rapid switching.

    The displays would only get a 2.5% duty cylcle, so they would be turned off most of the time. They would be pretty dim and probably flickering.

    It might be better to use a latch, decoder, driver for each LED display so that you turn a display on and leave it on until the next time you refresh it.

    Something like this:

    So, you would connect all the latches to 4 BCD lines and turn them on one at a time with 40 individual drive lines that go to the latch enable lines on the chips.

    This way the displays would be at full brightness and there would be minimal problems with flickering displays.

    More interesting would be to put a lot of LEDs in a rectangular pattern and drive them as a matrix. This would allow alphabetic characters as well as numbers.
    I would like one of these to send greeting messages to drivers behind my car who are driving too closely. :)
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook