|
PC-Based
7-Segment Rolling Display
|
| It
is very interesting and convenient to be able to control
everything while sitting at your PC terminal. Here, a
simple hardware circuit and software is used to interface
a 7-segment based rolling display. The printer port of
a PC provides a set of points with some acting as input
lines and some others as output lines. Some lines are
open collector type which can be used as input lines.
The circuit given here can be used for interfacing with
any type of PC’s printer port. The 25-pin parallel port
connector at the back of a PC is a combination of three
ports. The address varies from 378H-37AH. The 7 lines
of port 378H (pins 2 through 8) are used in this circuit
to output the code for segment display through IC1. The
remaining one line of port 378H (pin 9) and four lines
of port 37AH (pins 1, 14, 16, 17) are used to enable the
display digits (one a time) through IC2. The bits D0,
D1 and D3 of port 37AH connected to pins 1, 14 and 17
of ‘D’ connector are inverted by the computer before application
to the pins while data bit D2 is not inverted. Therefore
to get a logic high at any of former three pins, we must
send logic 0 output to the corresponding pin of port 37AH.
Another important concept illustrated by the project is
the time division multiplexing. Note that all the five
7-segment displays share a common data bus. The PC places
the 7-segment code for the first digit/character on the
data bus and enables only the first 7-segment display.
After delay of a few milliseconds, the 7-segment code
for the digit/character is replaced by that of the next
charter/digit, but this time only second display digit
is enabled. After the display of all characters/digits
in this way, the cycle repeats itself over and over again.
Because of this repetition at a fairly high rate, there
is an illusion that all the digits/characters are continuously
being displayed. DISP1 is to be physically placed as the
least significant digit. IC1 (74LS244) is an octal buffer
which is primarily used to increase the driving capability.
It has two groups of four buffers with non-inverted tri-state
outputs. The buffer is controlled by two active low enable
lines. IC2 (75492) can drive a maximum of six 7-segment
displays. (For driving up to seven common-cathode displays
one may use ULN2003 described elsewhere in this section.)
The program for rolling display is given in the listing
DISP.C above. Whatever the message/characters to be displayed
(here five characters have been displayed), these are
separated and stored in an array. Then these are decoded.
Decoding software is very simple. Just replace the desired
character with the binary equivalent of the display code.
The display code is a byte that has the appropriate bits
turned on. For example, to display character ‘L’, the
segments to be turned on are f, e and d. This is equivalent
to 111000 binary or 38 hex. Please note that only limited
characters can be formed using 7-segment display. Characters
such as M, N and K cannot be formed properly. |
|
|
Click on the Image for its larger version
|