7 segment HEX bus display with EPROMs - Page 1
Forum section: electronics / projects

author: ChristofferB
author_rank: Frequent Contributor
timestamp: April 28, 2015, 11:18:16 am
content: For some reason, the regularly used logic families doesn't seem to include a 4bit binary to 7 seg. hex decoder. and for some reason, the standard BCD to 7seg. decodes the input A-F to more or less garbage - very niche symbols at least.So in the quest of getting a hex display for my data bus on a computer, I've come across a schematic of using an EPROM as a programmable logic, using A0-3 as 4bit input, and D0-7 as 7seg output. Seeing EPROMS being very cheap today, and me having a bucketful, that sounded like the solution! (Because microcontrollers is cheating).Has anyone tried this? and would one need to buffer the outputs to drive the 7seg display?--Christoffer

author: Alex Eisenhut
author_rank: Super Contributor
timestamp: April 28, 2015, 11:36:54 am
content: I think EPROM is cheating. You should use a diode matrix decoder. Hand wired.

author: bktemp
author_rank: Super Contributor
timestamp: April 28, 2015, 11:40:05 am
content: I have built this many years ago.It can display 2 digit numbers in dec or hex. It needs a clock to multiplex both digits. Anything from 50Hz to a few kHz is ok.If you are interested, here are the files:

author: ChristofferB
author_rank: Frequent Contributor
timestamp: April 28, 2015, 12:13:52 pm
content: Quote from: Alex Eisenhut on April 28, 2015, 11:36:54 amTouché. I actually tried that once, having a diode matrix and decoder emulate the lowest 16 bytes of an EPROM.After days of cursing the thing, having run out of diodes twice, and soldering iron burns on most fingers, I conclusively decided never to gothatold-school again:Quote from: bktemp on April 28, 2015, 11:40:05 amThanks! That was pretty much exactly what i was looking for! Nice how you did the multiplexing in the EPROM also. I'd feared an array of 2-1 multiplexers.

author: edpalmer42
author_rank: Super Contributor
timestamp: April 28, 2015, 03:44:42 pm
content: Why not just use the TIL311?Ed

author: ChristofferB
author_rank: Frequent Contributor
timestamp: April 28, 2015, 05:21:25 pm
content: Because they're forbiddingly expensive. The only place i can find them they charge 23 USD per. and I ultimately need atleast 6--Christoffer

author: SeanB
author_rank: Super Contributor
timestamp: April 28, 2015, 05:37:42 pm
content: If you are going to multiplex the display you will need buffers, to get the drive current high enough as most EPROMS do not have enough high drive ( TTL only, so 2mA max for most TTL, and 5mA for CMOS ones) though if you use the decoder with common anode displays you can go up to 20mA per output as sink current.If you do not want discrete transistors use some 4050 buffers, as they will drive 20ma happily.

author: edpalmer42
author_rank: Super Contributor
timestamp: April 28, 2015, 05:57:49 pm
content: Quote from: ChristofferB on April 28, 2015, 05:21:25 pmThere are multiple vendors on ebay selling them for ~$5 each or less in quantity.Ed

author: compet17
author_rank: Regular Contributor
timestamp: April 28, 2015, 07:17:51 pm
content: If you ask nice and pay the postage, I will send you some TIL311 for free. I have a box full of them

author: macboy
author_rank: Super Contributor
timestamp: April 28, 2015, 07:49:27 pm
content: Quote from: ChristofferB on April 28, 2015, 11:18:16 amYou may say that using a microcontroller is cheating, but I don't think so. Sure, the program is stupid simple - scan inputs, produce output, repeat forever. You can easily make it latching or transparent, you can add logic to multiplex more than one display. It is doing what microcontrollers do: convert specific inputs to specific outputs. It just happens to be a simple example of that task.Also, DS9368 is an IC that does what you want.

author: JoeN
author_rank: Frequent Contributor
timestamp: April 28, 2015, 07:54:25 pm
content: Quote from: Alex Eisenhut on April 28, 2015, 11:36:54 amI think you jest, but, Lancaster's TTL Cookbook disagrees. He gives examples of using both ROMs and multiplexers as logic circuits for this kind of work. For a multiplexer, you would unfortunately need 7 of them, one for each output to the display. A small ROM would work fine. A 256x16 ROM can decode two displays.Quote from: ChristofferB on April 28, 2015, 11:18:16 amThe reason is that this is a classic result of DON'T CARE for the inputs 1010-1111. The original logic table had Don't Cares for these inputs, and logic optimization to the fewest gates end up giving those symbols. Man did not choose them. The gods of Mathematics did.This project would also be a good place for you to teach yourself PAL (obsolete) or maybe a small CPLD like these:http://www.digikey.com/product-detail/en/5M40ZE64C5N/544-2717-ND/2499440(40 LEs)http://www.digikey.com/product-detail/en/5M80ZE64C5N/544-2715-ND/2499438(80 LEs)You could download Quartus and see how many 7 segments you can decode on each of these devices, I bet you can do at least 3 on the smaller and cheaper device, maybe more. Too bad none of them are DIPs. You can do it on PALs too which do come in DIPs.

author: ChristofferB
author_rank: Frequent Contributor
timestamp: April 28, 2015, 08:03:21 pm
content: Of course using a microcontroller isn't actually cheating, just in the sense that i try to keep my designs and projects as 70's as possible (early 80's is ok, too), and so i will try to avoid introducing more modern parts when i can. And when the main system is a small computer, it seems a bit wasteful to dedicate an entire microcontroller to such a simple task. It could probably be done in a PAL or GAL just as easily.

author: JoeN
author_rank: Frequent Contributor
timestamp: April 28, 2015, 08:17:38 pm
content: Here is something I did a while back. A 555 (small IC) feeds a string of five 4-bit counters. The lower 4 bits of the counter selects one of 16 14 segment displays through a 74LS154 decoder (huge chip). Next four bits act as a scroll delay and display impression maker. Last 12 bits is the address of the first character to display. The adder string (3 ICs) adds the first 4 bits (display select) to the current character and that character is looked up on the TEXT EPROM (smaller ROM) which gets the next ASCII character. That ASCII character is looked up on the CHARSET EPROM (larger ROM) which gives the correct 14 bits for the segments for that character and it is lit on the display (via resistor array - 2 ICs). So for the first 256 clock cycles the characters at memory location 0-15 are displayed on displays 0-15 and this is repeated 16 times. For the next 256 clock cycles the characters at memory location 1-16 are displayed on displays 0-15 and this is repeated 16 times, it all repeats until the counter rolls over and the message is replayed. The result is that it scrolls the text on the TEXT EPROM.

author: Dataman19
author_rank: Newbie
timestamp: July 13, 2017, 11:18:50 pm
content: bktmp...Can you send me the program to upload to the 27C256 EPROM for this Hexadecimal Display Decoder?..Thanks

author: Fungus
author_rank: Super Contributor
timestamp: July 14, 2017, 05:57:43 am
content: Quote from: edpalmer42 on April 28, 2015, 05:57:49 pmThis is where you could use a microcontroller - to emulate old/expensive/hard-to-find chips.I wouldn't call it cheating if you repurposed a 14-pin uC for things like this, the spirit is the same.

author: matseng
author_rank: Frequent Contributor
timestamp: July 14, 2017, 06:10:53 am
content: My diode character rom for 14-segment "starburst" displays. A..Z 0..9 and a a few other symbols.

author: JoeN
author_rank: Frequent Contributor
timestamp: July 14, 2017, 06:28:45 am
content: matseng, I like your protoboard, I use a lot of those and get them from Tayda. Best value out there:http://www.taydaelectronics.com/prototyping-board-142x74mm.htmlI like your bypassing. Do you expect it to run fast enough someday that it will actually matter?My little project further up the thread works find with no bypassing at all because the clock runs at like 1Khz. If you are close enough to DC it doesn't matter too much, I have found out accidentally. I just didn't know better when I built it.Love these boards (the micro on this project is properly bypassed 3x 100nf)...

author: matseng
author_rank: Frequent Contributor
timestamp: July 14, 2017, 06:51:33 am
content: Quote from: JoeN on July 14, 2017, 06:28:45 amI actually lived within walking distance to Tayda's office in Bangkok when I did that project... Tayda have a lot of nice and decently priced stuff, so when I stay in Bangkok I usually order from them. When I'm in Kuala Lumpur I order from Element14/Farnell in Singapore that will courier the parts overnight to me across the border between Singapore and Malaysia for free - with no minimum order value! Now that's a nice service. ;-)It's really not the speed of the clock but rather the speed of the transitions/edges of the pulses in the circuit that matters the most. I just throw in decoupling caps by habit everywhere. In most cases one-offs will work perfectly fine without them though - as evidenced by the thread here with the huge cpu contraption built on a handful of solderless breadboards where the guy had removed all decoupling caps and it still worked ;-)

author: Ian.M
author_rank: Super Contributor
timestamp: July 14, 2017, 06:55:22 am
content: +1Its nice to see a diode matrix with the diodes vertical. Personally, I'd have used thicker wire to cross-connect the cathodes..Decoupling caps are only a few cents each, but you can waste hours or days chasig a glitch caused by their absence. Leaving them out is foolish.N.B. For a Hex decoder diode matrix, you only use half as many diodes if you use diode present to code segment off, rather than the more usual segment on. (34 vs 71). As you ideally should have a buffer after the diodes to get even brightness, the inverted logic isn't a problem.

author: Moshly
author_rank: Regular Contributor
timestamp: July 14, 2017, 08:56:00 am
content: You need some of Ben's wisdom ->

author: David Hess
author_rank: Super Contributor
timestamp: July 15, 2017, 11:31:03 am
content: With some cleverness, a 28 pin $1.02 PIC16F57 can drive from 2 to 4 multiplexed 7-segment plus decimal point displays from 2 to 4 separate 4-bit inputs; 25 cents per display is going to be difficult to beat. As appealing as separate decoders are, I would go this route simple because of its low cost.An EEPLD is another possibility but it would be more expensive than a PIC16F57.For non-bus use, I tend to drive 7-segment displays from an SPI port which the PIC16F57 lacks.

author: westfw
author_rank: Super Contributor
timestamp: July 17, 2017, 02:22:50 am
content: QuoteWell, yeah. But your microcontroller is smaller, cheaper, easier to program, has better drive capability, and uses less power, so you have to be careful how you define "wasteful."