Loading ...
Sorry, an error occurred while loading the content.

Hex display with 7-seg LEDs

Expand Messages
  • Lee Hart
    I was brainstorming on ways to display hexadecimal on a 7-segment LED display. Yes, I know you could use a micro, but I was looking for retro solutions.
    Message 1 of 3 , Nov 27, 2010
    • 0 Attachment
      I was brainstorming on ways to display hexadecimal on a 7-segment LED
      display. Yes, I know you could use a micro, but I was looking for
      "retro" solutions.

      There were hex decoders "back in the day", but they are expensive hen's
      teeth today. I noticed that the standard 74LS247 BCD to 7-seg decoder
      (which displays 0-9) also displays a unique pattern for A-F. I wondered
      if some external logic could convert these into a readable A-F display.

      What I came up with adds an IC and some diodes. I thought I'd post it in
      case anyone is interested (or can improve on it). Here is the circuit
      for the "a" segment of the 7-segment LED display. View it with a
      fixed-width font like Courier:
      ____
      | a|---------------+
      A--|A b|-- |
      B--|B c|-- |
      C--|C d|-- |
      D--|D e|-- |
      | f|-- |
      |___g|-- |
      74LS247 four |
      _______ 1N4148 |
      A--|A 0(8)| diodes |
      B--|B 1(9)| |
      C--|C 2(A)|---|<-------+
      | 3(B)| |
      D--|G1 4(C)|---|<-------+
      +-o|G2 5(D)|-------->|--+ "a" segment of the LED
      +-o|G3 6(E)|---|<-------+
      | |___7(F)|---|<-------+
      gnd 74LS138

      Here's how it works: For 0-9, 74LS138 outputs 2-7 (corresponding to hex
      A-F) are all high. The high on D powers the anode of the "a" segment.
      The cathode of the "a" segment is controlled by the 74LS247 normally.

      For hex A-F, the 74LS247 displays unique patterns:

      hex lights segments
      --- ---------------
      A d e g
      B c d g
      C b f g
      D a d f g
      E d e f g
      F all segments off

      The 74LS138 has one of its outputs go low for each hex digit A-F. Diodes
      on these outputs select which extra LED segments to light for each
      digit. Segment "a" is to light for hex digits A, B, C, E, and F.

      Next, notice that the "a" segment needs to be OFF to display the hex
      digit "d". This is done by connecting the anode of the "a" segment LED
      to the "D" output of the 74LS138. For a hex "D", the "a" segment LED
      will therefore be off.

      I added an asterisk to the above table for each case where the "a"
      segment is lit by a diode to a 74LS138 output. And, a "-" shows where
      the "a" segment is forced off.

      hex lights segments
      --- ---------------
      A * d e g
      B c d g
      C * b f g
      D - d f g
      E * d e f g
      F *

      Note: The older 74LS47 is exactly like the 74LS247, except that it
      displays "6" and "9" without the "a" segment lit. This makes the "6"
      look like a lower case "b", so you couldn't tell the difference between
      a "6" and a "b". If you *had* to use the 74LS47 (had some in your junk
      box), you could add a diode on the 74LS138 "B" output to force the "a"
      segment on -- this makes "6" and "b" unique, but backwards (6 has no top
      segment, and b does).

      Anyway... the rest of the segments work the same. The "a" segment is the
      most complicated; the others turn out to be simpler. I'll just use the
      table above to show how they get wired. Again, "*" means you have a
      diode from the 74LS138 output to the cathode of the respective LED
      segment, and "-" means the anode of that LED segment connects to that
      74LS138 output.

      hex lights segments
      --- ---------------
      A * * * d e g
      B c d * * g
      C * - * * f -
      D - * * d * - g
      E * d e f g
      F * * * *

      The end result is 2 ICs and 16 diodes to create a hex display on a
      7-segment LED. Since you need access to the anodes as well as the
      cathodes of the LEDs, this scheme would be best with individual LEDs for
      each segment. If I were doing it, I'd use 3 LEDs in series for each
      segment; this produces a nice-looking dot-matrix display. Plus, the 3
      diodes neatly handle the 5v supply without series resistors.
      --
      Lee A. Hart | Ring the bells that still can ring
      814 8th Ave N | Forget the perfect offering
      Sartell MN 56377 | There is a crack in everything
      leeahart earthlink.net | That's how the light gets in -- Leonard Cohen
    • ted_rossin
      I put an ugly schematic of something like you describe in the files section back in march of 2009:
      Message 2 of 3 , Nov 27, 2010
      • 0 Attachment
        I put an ugly schematic of something like you describe in the files section back in march of 2009:

        http://f1.grp.yahoofs.com/v1/gJvxTNZ1g9Q9rAUYGJlOwT9nrAeel_E91iSzd8U8bL7K_Me00gUf3E9m7CWeNjDOVIx8QoKouyxzCIESlp5RGxVqc_kR6D1q/HexDisplay.pdf


        If the link is toast just look for HexDisplay.pdf

        I built this for my original Elf back in 1977 (maybe 1978) because I could not afford the expensive displays on a paperboy's pay!



        --- In cosmacelf@yahoogroups.com, Lee Hart <leeahart@...> wrote:
        >
        > I was brainstorming on ways to display hexadecimal on a 7-segment LED
        > display. Yes, I know you could use a micro, but I was looking for
        > "retro" solutions.
        >
        > There were hex decoders "back in the day", but they are expensive hen's
        > teeth today. I noticed that the standard 74LS247 BCD to 7-seg decoder
        > (which displays 0-9) also displays a unique pattern for A-F. I wondered
        > if some external logic could convert these into a readable A-F display.
        >
        > What I came up with adds an IC and some diodes. I thought I'd post it in
        > case anyone is interested (or can improve on it). Here is the circuit
        > for the "a" segment of the 7-segment LED display. View it with a
        > fixed-width font like Courier:
        > ____
        > | a|---------------+
        > A--|A b|-- |
        > B--|B c|-- |
        > C--|C d|-- |
        > D--|D e|-- |
        > | f|-- |
        > |___g|-- |
        > 74LS247 four |
        > _______ 1N4148 |
        > A--|A 0(8)| diodes |
        > B--|B 1(9)| |
        > C--|C 2(A)|---|<-------+
        > | 3(B)| |
        > D--|G1 4(C)|---|<-------+
        > +-o|G2 5(D)|-------->|--+ "a" segment of the LED
        > +-o|G3 6(E)|---|<-------+
        > | |___7(F)|---|<-------+
        > gnd 74LS138
        >
        > Here's how it works: For 0-9, 74LS138 outputs 2-7 (corresponding to hex
        > A-F) are all high. The high on D powers the anode of the "a" segment.
        > The cathode of the "a" segment is controlled by the 74LS247 normally.
        >
        > For hex A-F, the 74LS247 displays unique patterns:
        >
        > hex lights segments
        > --- ---------------
        > A d e g
        > B c d g
        > C b f g
        > D a d f g
        > E d e f g
        > F all segments off
        >
        > The 74LS138 has one of its outputs go low for each hex digit A-F. Diodes
        > on these outputs select which extra LED segments to light for each
        > digit. Segment "a" is to light for hex digits A, B, C, E, and F.
        >
        > Next, notice that the "a" segment needs to be OFF to display the hex
        > digit "d". This is done by connecting the anode of the "a" segment LED
        > to the "D" output of the 74LS138. For a hex "D", the "a" segment LED
        > will therefore be off.
        >
        > I added an asterisk to the above table for each case where the "a"
        > segment is lit by a diode to a 74LS138 output. And, a "-" shows where
        > the "a" segment is forced off.
        >
        > hex lights segments
        > --- ---------------
        > A * d e g
        > B c d g
        > C * b f g
        > D - d f g
        > E * d e f g
        > F *
        >
        > Note: The older 74LS47 is exactly like the 74LS247, except that it
        > displays "6" and "9" without the "a" segment lit. This makes the "6"
        > look like a lower case "b", so you couldn't tell the difference between
        > a "6" and a "b". If you *had* to use the 74LS47 (had some in your junk
        > box), you could add a diode on the 74LS138 "B" output to force the "a"
        > segment on -- this makes "6" and "b" unique, but backwards (6 has no top
        > segment, and b does).
        >
        > Anyway... the rest of the segments work the same. The "a" segment is the
        > most complicated; the others turn out to be simpler. I'll just use the
        > table above to show how they get wired. Again, "*" means you have a
        > diode from the 74LS138 output to the cathode of the respective LED
        > segment, and "-" means the anode of that LED segment connects to that
        > 74LS138 output.
        >
        > hex lights segments
        > --- ---------------
        > A * * * d e g
        > B c d * * g
        > C * - * * f -
        > D - * * d * - g
        > E * d e f g
        > F * * * *
        >
        > The end result is 2 ICs and 16 diodes to create a hex display on a
        > 7-segment LED. Since you need access to the anodes as well as the
        > cathodes of the LEDs, this scheme would be best with individual LEDs for
        > each segment. If I were doing it, I'd use 3 LEDs in series for each
        > segment; this produces a nice-looking dot-matrix display. Plus, the 3
        > diodes neatly handle the 5v supply without series resistors.
        > --
        > Lee A. Hart | Ring the bells that still can ring
        > 814 8th Ave N | Forget the perfect offering
        > Sartell MN 56377 | There is a crack in everything
        > leeahart earthlink.net | That's how the light gets in -- Leonard Cohen
        >
      • Lee Hart
        From: ted_rossin ... Almost exactly the same idea. Great minds think alike! :-) I like the trick of blanking the 6 of the 74LS47 with
        Message 3 of 3 , Nov 27, 2010
        • 0 Attachment
          From: ted_rossin <ted_rossin@...>
          > I put an ugly schematic of something like you describe in the files
          > section back in march of 2009:

          Almost exactly the same idea. Great minds think alike! :-) I like the trick of blanking the "6" of the 74LS47 with the RBI input. Your scheme uses more diodes, but allows a standard common anode display to be used.

          --
          Those who say it cannot be done should not interrupt the one who is
          doing it. -- Chinese proverb
          --
          Lee A. Hart, 814 8th Ave N, Sartell MN 56377, leeahart-at-earthlink.net
        Your message has been successfully submitted and would be delivered to recipients shortly.