paulc@boulder.Colorado.EDU (Paul Connally) (06/21/89)
I have what seems to be a very simple problem, although my knowledge in this area is very limited. The problem is this: I have two 12 position switches that select settings on a High Voltage Electron Microscope (it's trivial what they control). What I want to do is connect a series of eight 14-segment alphanumeric LED's to each of them and then have each positon on each switch correspond to a different "canned" 8 character message. There will be a total of 12 different messages (one for each position on a switch. Both switches control the same 12 functions but independently). I am somewhat familiar with decoder/drivers for these displays and I thought of using a diode matrix, but my solution came out with about 500 diodes. It was suggested to me to use a single board CPU (such as an old Z80) with either a non-volatile RAM or an EPROM and tie the decoder/drivers to the memory bus. This solution seems feasible to me, but is a little beyond my knowledge to be cost/time effective. Another idea was to use an old PC we have and either use a D/A board or the serial/parallel ports somehow. If anyone knows of any solution or pointers to where I can find some information/books on this problem I would be greatly indebted. Please excuse my ignorance in this area (as I stated in the beginning, my knowledge of this is very limited). TIA, Paul p.s. - please e-mail me if possible, I seldom read this newsgroup. Paul Connally paulc@boulder.colorado.edu University of Colorado High Voltage Electron Microscope Lab MCDB - Box 347 "A higher potential for Boulder, CO 80309 better penetration."
mmm@cup.portal.com (Mark Robert Thorson) (06/22/89)
First, you need to encode the 12 switch outputs into a binary number. Two 74148's will do this. I suggest you arrange the alphanumeric displays in a matrix, such that there are separate drive lines for each segment and each digit. Some displays of this sort come in banks of 4 or 5 chars already wired up in this fashion. This means you will need to scan the display, lighting up one digit at a time. An oscillator driving a counter will do this. Because you have 12 possible messages (mapped to 4 bits) and 8 character positions (3 bits coming from the counter) you have seven bits which specify which segments are lit for any given message at any given time. These seven bits can be translated to the 14 segment drivers by two byte-wide EPROM's. Most EPROM's have more than seven address inputs. You can run additional bits from the counter into the EPROM for displaying longer messages, like 16 or 32 characters. This needn't require extra displays. For example, if you wanted to run a message Times-Square-style across a display (horizontal scrolling), you could hook up another oscillator/counter to some of the other address inputs. Each increment of this second oscillator would address the message as it would appear at each character position of scrolling. To make sure the message always begins scrolling from its initial position, the Enable Output lines from the "148's can be used to drive a monostable to clear the horizontal scrolling counter. This will cause scrolling to begin from the initial position every time the switch is turned. It will probably be easiest if you generate the EPROM code by writing a little program in Basic or whatever language suits you best for short hacks like these. This will also make it easier to change the messages, if you ever wish to.