|
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
|