Author Topic: 7 Segment Display Driver for Hexadecimal  (Read 27457 times)

0 Members and 1 Guest are viewing this topic.

Offline Legion

  • Frequent Contributor
  • **
  • Posts: 357
7 Segment Display Driver for Hexadecimal
« on: April 08, 2014, 08:33:34 pm »
I was looking for an IC that would drive a 7 segment display with hex digits. I haven't been able to find any that are still made though. It's strange because they have 4 inputs, but the datasheets show no support for digits above 9. From google searches it looks like people use microcontrollers now, but I was hoping to do it with logic ICs.

Just seems like there's no reason that ICs like the 4511 couldn't display A - F.
 

Offline edavid

  • Super Contributor
  • ***
  • Posts: 3001
  • Country: us
Re: 7 Segment Display Driver for Hexadecimal
« Reply #1 on: April 08, 2014, 08:48:20 pm »
TIL311
Fairchild 9368, 9369, 9370, 9374
MC14493, MC14494, MC14495
MM74C917
ICM7218

Oops, missed the "still made".  Guess that just leaves the ICM7218, which is probably not what you want  :(

Good opportunity to learn how to use PLDs?
« Last Edit: April 08, 2014, 08:56:13 pm by edavid »
 
The following users thanked this post: oPossum

Offline David Hess

  • Super Contributor
  • ***
  • Posts: 11742
  • Country: us
  • DavidH
Re: 7 Segment Display Driver for Hexadecimal
« Reply #2 on: April 08, 2014, 09:40:07 pm »
The old standby is the 7447 series but of course they do not decode hexadecimal.  Some dedicated LED display drivers do though.  Maxim makes some.

You could also program a small EPROM or programmable logic device to do the decoding.  Either could even implement leading zero blanking.  The lowest cost solution might be to program a PIC microcontroller to do it.
 

Offline denelec

  • Regular Contributor
  • *
  • Posts: 167
  • Country: ca
Re: 7 Segment Display Driver for Hexadecimal
« Reply #3 on: April 08, 2014, 10:19:49 pm »
The lowest cost solution might be to program a PIC microcontroller to do it.

A agree with the microcontroller solution.  They are very cheap and you can configure the inputs and outputs to suit your needs.
If you are not familiar with the PICs, you can buy a PICAXE.
http://www.picaxe.com/
They are PIC microcontrollers programmable in simple, very easy to learn, BASIC language.  They are relatively cheap and you can learn to use them in a few hours.
 

Offline Macbeth

  • Super Contributor
  • ***
  • Posts: 2562
  • Country: gb
Re: 7 Segment Display Driver for Hexadecimal
« Reply #4 on: April 08, 2014, 10:21:58 pm »
Microcontroller and use multiplexing.

ETA: Too much PIC fanbois on this thread - consider AVR (or Arduino) instead.  :rant:

I feel I must point out Daves old rant here: http://www.eevblog.com/2010/02/22/eevblog-63-microchip-pic-vs-atmel-avr/  :box:
« Last Edit: April 08, 2014, 10:26:53 pm by Macbeth »
 

Offline denelec

  • Regular Contributor
  • *
  • Posts: 167
  • Country: ca
Re: 7 Segment Display Driver for Hexadecimal
« Reply #5 on: April 08, 2014, 10:55:06 pm »
Microcontroller and use multiplexing.

ETA: Too much PIC fanbois on this thread - consider AVR (or Arduino) instead.  :rant:

I feel I must point out Daves old rant here: http://www.eevblog.com/2010/02/22/eevblog-63-microchip-pic-vs-atmel-avr/  :box:
If you already know the AVR/Arduino, then it's the best choice.
For such a simple task, the best microcontroller will be the one requiring the least investment in time (learning curve) and money.
 

Offline N2IXK

  • Frequent Contributor
  • **
  • Posts: 705
  • Country: us
Re: 7 Segment Display Driver for Hexadecimal
« Reply #6 on: April 08, 2014, 11:35:19 pm »
Any insight into why the 7447/7448 weren't made to handle A-F outputs?  Did every manufacturer provide the same output definitions for A-F inputs. National's datasheet shows that the chip DOES provide unique output patterns, just not ones that produce A-F displays on a 7 segment display.
"My favorite programming language is...SOLDER!"--Robert A. Pease
 

Offline David Hess

  • Super Contributor
  • ***
  • Posts: 11742
  • Country: us
  • DavidH
Re: 7 Segment Display Driver for Hexadecimal
« Reply #7 on: April 08, 2014, 11:36:17 pm »
If you already know the AVR/Arduino, then it's the best choice.
For such a simple task, the best microcontroller will be the one requiring the least investment in time (learning curve) and money.

And the one with the correct packaging and minimum external support.  An AVR by itself would certainly qualify but not the whole Arduino board.
 

Offline David Hess

  • Super Contributor
  • ***
  • Posts: 11742
  • Country: us
  • DavidH
Re: 7 Segment Display Driver for Hexadecimal
« Reply #8 on: April 08, 2014, 11:42:15 pm »
Any insight into why the 7447/7448 weren't made to handle A-F outputs?  Did every manufacturer provide the same output definitions for A-F inputs. National's datasheet shows that the chip DOES provide unique output patterns, just not ones that produce A-F displays on a 7 segment display.
I remember asking that question in the past and getting an answer but I no longer recall what it was.  There was some justification but it may have just been "simplicity".

What I wonder now is why there was no alternative 4 bit binary to 7 segment hexadecimal decoder driver with a different TTL part number.

I see that someone has done this with a PIC:

http://picprojects.org.uk/projects/decoder7/
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 7509
  • Country: us
    • SiliconValleyGarage
Re: 7 Segment Display Driver for Hexadecimal
« Reply #9 on: April 08, 2014, 11:45:45 pm »
come come. really ? microprocessors ?
take a simple pal or gal. 16v8 can do it without blinking.

the reason for the wonky patterns is that it greatly reduced logic . the extra patterns are simply random 1 or 0.
when minimising the equations using a karnaugh map you could fill in whatever and flip those to 1 or 0 to maximise the size of the clouds in the map.

in those early chips every transsitor counted
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 

Offline edavid

  • Super Contributor
  • ***
  • Posts: 3001
  • Country: us
Re: 7 Segment Display Driver for Hexadecimal
« Reply #10 on: April 08, 2014, 11:47:26 pm »
What I wonder now is why there was no alternative 4 bit binary to 7 segment hexadecimal decoder driver with a different TTL part number.

I already mentioned the Fairchild 9368, 9369, 9370, 9374 TTL parts...
 

Offline David Hess

  • Super Contributor
  • ***
  • Posts: 11742
  • Country: us
  • DavidH
Re: 7 Segment Display Driver for Hexadecimal
« Reply #11 on: April 08, 2014, 11:51:42 pm »
What I wonder now is why there was no alternative 4 bit binary to 7 segment hexadecimal decoder driver with a different TTL part number.

I already mentioned the Fairchild 9368, 9369, 9370, 9374 TTL parts...

Did anybody ever second source them?  I do not remember them being readily available so it was easier to roll our own.
 

Offline David Hess

  • Super Contributor
  • ***
  • Posts: 11742
  • Country: us
  • DavidH
Re: 7 Segment Display Driver for Hexadecimal
« Reply #12 on: April 08, 2014, 11:54:53 pm »
come come. really ? microprocessors ?
take a simple pal or gal. 16v8 can do it without blinking.

They sure can but a PIC is less expensive and you could program it to generate a self timed multiplexed display and use the serial interface of your choice.

Quote
the reason for the wonky patterns is that it greatly reduced logic . the extra patterns are simply random 1 or 0.
when minimising the equations using a karnaugh map you could fill in whatever and flip those to 1 or 0 to maximise the size of the clouds in the map.

in those early chips every transsitor counted

I was considering drawing up a Karnaugh map to see if that was the reason.
 

Offline Legion

  • Frequent Contributor
  • **
  • Posts: 357
Re: 7 Segment Display Driver for Hexadecimal
« Reply #13 on: April 09, 2014, 02:29:56 am »
I was hoping to use this as an opportunity to mess around with logic ICs. Looks like it may not be possible unless I can find some NOS or pulls.
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5549
  • Country: us
Re: 7 Segment Display Driver for Hexadecimal
« Reply #14 on: April 09, 2014, 03:47:07 am »
I was hoping to use this as an opportunity to mess around with logic ICs. Looks like it may not be possible unless I can find some NOS or pulls.

You can do it with logic IC's down to the metal.
At the bottom of the post is the logic table from 0 to 15 and the segments that must be on.

Usually for this type of problems you have the input and the inverse of the inputs as 8 lines into the circuit.
Then do logic per segment. You can use not, and, or, nand, nor, xor, nxor, buffer the result via flip-flops and the output can be inverted if it makes more sense to turn segments off instead of on at the end.

Look for the less cases, for example segment a is off if
not((not i3) and (not i2) and (not i1)) and (i0)

xor ? or ?

not((not i3) and (not i1) and (not i0)) and (i2)

xor ? or ?

not((not i2) and (not i1)) and (i3) and (i0)

xor ? or ?

(not i2) and (i3 and i1 and i0)

xor ? or ?

(not i0) and (i3 and i2 and i1)


But this will require some gates and a lot of thinking :)

To get you started here is the truth table that you must achieve.
Then again you can always get a chip that does it for you :)

Code: [Select]
in   abcdefg
0000 1111110
0001 0110000
0010 1101101
0011 1111001
0100 0110011
0101 1011011
0110 0011111
0111 1110000
1000 1111111
1001 1110011
1010 1110111
1011 0011111
1100 1001110
1101 0111101
1110 1001111
1111 1000111

 
  - a
f| |b
g -
e| |c
  - d
[code]
« Last Edit: April 09, 2014, 03:54:14 am by miguelvp »
 

Offline Legion

  • Frequent Contributor
  • **
  • Posts: 357
Re: 7 Segment Display Driver for Hexadecimal
« Reply #15 on: April 09, 2014, 04:24:52 am »
You can do it with logic IC's down to the metal.
At the bottom of the post is the logic table from 0 to 15 and the segments that must be on.

Usually for this type of problems you have the input and the inverse of the inputs as 8 lines into the circuit.
Then do logic per segment. You can use not, and, or, nand, nor, xor, nxor, buffer the result via flip-flops and the output can be inverted if it makes more sense to turn segments off instead of on at the end.

Look for the less cases, for example segment a is off if
not((not i3) and (not i2) and (not i1)) and (i0)

xor ? or ?

not((not i3) and (not i1) and (not i0)) and (i2)

xor ? or ?

not((not i2) and (not i1)) and (i3) and (i0)

xor ? or ?

(not i2) and (i3 and i1 and i0)

xor ? or ?

(not i0) and (i3 and i2 and i1)


But this will require some gates and a lot of thinking :)

To get you started here is the truth table that you must achieve.
Then again you can always get a chip that does it for you :)

Code: [Select]
in   abcdefg
0000 1111110
0001 0110000
0010 1101101
0011 1111001
0100 0110011
0101 1011011
0110 0011111
0111 1110000
1000 1111111
1001 1110011
1010 1110111
1011 0011111
1100 1001110
1101 0111101
1110 1001111
1111 1000111

 
  - a
f| |b
g -
e| |c
  - d
[code]

Alright. Sounds like fun. I have a bunch 7400 and 4000 series chips laying around, should be able to do it.
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5549
  • Country: us
Re: 7 Segment Display Driver for Hexadecimal
« Reply #16 on: April 09, 2014, 05:27:02 am »
cool  8)

I did simplify the logic for segment a in this crude LTspice schematic.



Edit: of course this wont light the led, it's just to demonstrate the logic, since the model only outputs about 790mv when on.
« Last Edit: April 09, 2014, 05:36:16 am by miguelvp »
 

Offline edavid

  • Super Contributor
  • ***
  • Posts: 3001
  • Country: us
Re: 7 Segment Display Driver for Hexadecimal
« Reply #17 on: April 09, 2014, 05:31:13 am »
I don't think gates are the right way to go here - you could at least use 74151s.  You could also start with a 7447 or 74247 and just fix up the incorrect outputs - I think that would save a couple of packages.  If you use a 7447, don't forget to add the tails on the 6 and 9.
 

Offline SL4P

  • Super Contributor
  • ***
  • Posts: 2154
  • Country: au
  • There's more value if you figure it out yourself!
Re: 7 Segment Display Driver for Hexadecimal
« Reply #18 on: April 09, 2014, 05:48:21 am »
Where is the hex data coming from?
If already a micro - you could pump it out to a shift register - to drive the 7-segments from a '595 or similar... ?!
Don't ask a question if you aren't willing to listen to the answer.
 

Offline David Hess

  • Super Contributor
  • ***
  • Posts: 11742
  • Country: us
  • DavidH
Re: 7 Segment Display Driver for Hexadecimal
« Reply #19 on: April 09, 2014, 05:51:57 am »
I might use a 74154 4-to-16 line decoder or pair of 74138 3-to-8 line decoders and an array of transistors.
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5549
  • Country: us
Re: 7 Segment Display Driver for Hexadecimal
« Reply #20 on: April 09, 2014, 05:53:54 am »
True that, if the BCD to 7 segment turns off the segments for cases A-F, then you can use the 0-9 of a decimal 7 segment and add the logic decoding for the A-F cases.

On an FPGA you can just draw this using minimal fabric, but that's overkill.

But learning how to deal with this things directly at the gate level, even if not efficient is really fun and educational, and maybe even frustrating enough to feel empowered when it finally works.
 

Offline GK

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: 7 Segment Display Driver for Hexadecimal
« Reply #21 on: April 09, 2014, 08:26:44 am »
You don't need any gates to decode from decimal to 7-segment. That can be done just with diodes. For example:
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline MLXXXp

  • Frequent Contributor
  • **
  • Posts: 251
  • Country: ca
Re: 7 Segment Display Driver for Hexadecimal
« Reply #22 on: April 09, 2014, 05:36:46 pm »
Coincidentally, but a bit off topic: Yesterday, while looking through my parts for something else, I came across some HP 5082-7340 hex LED displays, unopened in the original packaging.
http://web.mit.edu/6.s28/www/datasheets/HP_led_display.pdf
I'll have to come up with some use for them.
 

Offline Legion

  • Frequent Contributor
  • **
  • Posts: 357
Re: 7 Segment Display Driver for Hexadecimal
« Reply #23 on: April 09, 2014, 05:37:02 pm »
You don't need any gates to decode from decimal to 7-segment. That can be done just with diodes. For example:

That would be a lot of diodes.
 

Offline David Hess

  • Super Contributor
  • ***
  • Posts: 11742
  • Country: us
  • DavidH
Re: 7 Segment Display Driver for Hexadecimal
« Reply #24 on: April 09, 2014, 05:55:23 pm »
You don't need any gates to decode from decimal to 7-segment. That can be done just with diodes. For example:

That would be a lot of diodes.

78 by my count but I would use transistors.  You end up with something like this but larger:
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf