
This instructable can be accessed at the author's website - http://www.neatinformation.com/
If you link to this instructable from another website, please include a link to the Neat Information website.
This article is copyrighted and may not be reproduced without permission.
The project described in this article requires basic electronics skills and is provided for information purposes. Do not attempt to replicate it or use it for any purpose unless you've got the proper knowledge and skills.
The circuit is incredibly simple. There's just 10 parts - one 7 segment common cathode LED display, 7 resistors, one piece of hook-up wire, and a DB-25 male connector. It shouldn't cost more than $5 for the parts and you may already have them in your junk box. The resistor limits the amount of current that goes through the LED. The optimal value depends on LED's voltage and current, in my case 150 ohms.
Circuits like this have been used for practical applications - a counter to indicate the progress as a computer boots up, an indicator of the computer's performance level, etc.. I originally made this project primarily to learn a little bit more about electronics and my Apple II, but also because it's fun. I decided to rebuild the project for a current PC parallel port for nostalgia and also to show some of the principles used with early microcomputers.
In the early days of microcomputers we didn't have gigabytes of memory or terabyte hard drives. Every line of code was precious so programmers learned from the start to write efficiently. (My Apple II came with just 16K of RAM - less memory than a current high end calculator.) The efficiency even extended to hardware designs. Steve Wozniak came up with the revolutionary idea of using a single timing crystal. It generated signals both for the microprocessor and the color burst signal necessary for color video output. The memory was refreshed by the same circuit which controlled the video. Woz recognized that if he could do something in software rather than hardware it would save money in the long run. Once software is paid for it can be reproduced very inexpensively, in contrast hardware has to be purchased for each unit made.
I've seen a circuit for connecting a 7 segment display to a printer port that uses a chip specifically designed to convert incoming data into the correct signals for a 7 segment LED. All you have to do is send your data to the printer port. I'd rather save a chip and do the conversion through software.
I used a small solderless breadboard to assemble the circuit; in fact the same one which I used to build the same circuit for my Apple II experiments three decades earlier! (The resistors and 7 segment LED are new, I tossed away the old components many years ago).
Since this is just a prototype I didn't bother to insulate the exposed wires on the resistors. You should take care to ensure that the wires aren't shorting each other. (Nothing bad should happen if any of the resistors are shorted but the wrong LEDs will light up. I take no liabilities if something unexpected does happen or damage occurs for whatever reason.) The ground wire is insulated because it most certainly will cause problems if it's shorted to one of the data lines.
I use a Male to Female DB-25 extension cable so the solderless breadboard can be placed on my desk instead of on the back of the computer where the parallel port is located, but there's no reason it can't be attached directly to the printer port.
I created a lookup table which determines which LED segments will light up for each number. For example, the number 4 is generated by lighting segments B, C, F, and G. There are a couple of arbitrary choices though, in particular whether or not you want to include the top horizontal LED (A) in the number 6 or bottom LED (D) when displaying 9.
This table shows which LEDs will light for each number -
0 - A, B, C, D, E, F |
0 - 63 |
' LPT port 7 segment LED display ' Set 640x480 mode, 256 colors |
Home