[sci.electronics] Driver for Alphanumeric LED's

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.