December 1974 Popular Electronics
Table of Contents
Wax nostalgic about and learn from the history of early electronics. See articles
published October 1954 - April 1985. All copyrights are hereby acknowledged.
Here is the final installment
in the "Basic Digital Electronic Course" series that ran in three issues of
Popular Electronics magazine. The first two parts laid the groundwork with
an introduction to binary, octal, and hexadecimal arithmetic, Boolean logic, AND,
OR and NOT gates, and some truth tables. Armed with those fundamentals, the authors
now dive into flip-flops, encoders and decoders, debouncing circuits for switch
inputs, integrated circuit (IC) types, and interconnect methods to design and build
a simple digital computer with a 7-segment LED display. Don't expect too much from
the computer since it was only three years earlier, in 1971, that Intel introduced
the world's first integrated microprocessor - the 4-bit model
processing unit (CPU).
See Part 1,
and Part 3.
Basic Digital Logic Course - Part 3
By H. Edward Roberts and David Bunnell
Part 3: Flip-Flops and How to Build a Very Low Cost computer Terminal
In Parts 1 and 2 of our short course in digital logic, published in October and
November, we discussed number systems, principles of logic, and some basic logic
circuits. This month we will talk about flip-flops and describe the design and construction
of a very low cost terminal (VLCT) for use with computers.
Once you understand the material presented here, you should find that designing
digital circuits - even complex ones - is mostly a matter of common sense and familiarity
with what each element does.
Fig. 1 - Switch analogy (A) and logic (B) of a flip-flop.
The flip-flop is the basic memory circuit used in digital electronics. It has
two stable states that can be simulated by the two-switch analogy shown in Fig.
1A. The switches are arranged in such a way that, if one is closed, the other must
be open, with control circuits determining the states.
The logic diagram of a toggle flip-flop is shown in Fig. 1B. When a pulse appears
at the toggle, or T, input, the Q and Q
(said "not-Q") outputs will change state. The small circle at the T input indicates
that, to toggle the flip-flop, the input must go from "high" (logic 1) to "low"
(logic 0). The other two inputs are labeled P for preset and C for clear. These
allow the flip-flop to be set to a specified condition no matter what was the previous
condition. For example, if a 0 is applied to the P input, the Q output would be
0. Bear in mind that the two outputs are complementary; that is, if Q is at 0, Q
will be at 1.
Semiconductor manufacturers make at least 50 different types of flip-flops. Do
not be intimidated by this number. The flip-flops are still flip-flops, and all
you need to understand any specific one is its data sheet, which you can obtain
from the manufacturer.
Designing a Computer Terminal
Combining what you now know about flip-flops with what you learned in Parts 1
and 2, you have the knowledge needed for designing a VLCT. In the following pages,
we will design a VLCT that will allow you to convert from octal to binary and back
to octal, decimal, or hexadecimal logic. Not only will the VLCT prove instructive
in terms of digital logic, it will also be invaluable for interfacing with other
digital devices. (In particular, it can be used with the Popular Electronics minicomputer
that will be introduced in the January 1975 issue.)
Fig. 2 - Logic flow diagrams of transmitter and receiver.
The VLCT performs seven functions: (1) converts the operator's octal input to
binary format; (2) eliminates any bounce that might be present in the key switches;
(3) loads the binary data into and retrieves it from a register and stores it until
transmission; (4) determines where each piece of data goes in the output register;
(5) transmits a "ready" signal after the third octal number is entered; (6) receives
and stores binary data from the computer; and (7) decodes this computer data in
either octal, decimal, or hexadecimal display format. The overall block diagram
of the terminal shown in Fig. 2 should be consulted whenever any question concerning
The complete logic diagram for the transmitter portion of the terminal is shown
in Fig. 3. The terminal employs transistor-transistor-logic, or TTL, devices - by
far the most widely used logic family. It has the following basic characteristics:
a logic 1 is any potential level between 2.4 and 5 volts, and a logic 0 is any potential
between 0 and 0.4 volt. A detailed discussion of TTL can be found in a number of
books devoted to the subject, but a brief explanation of how a typical TTL NAND
gate works is at the bottom of the page.
In Fig. 3 the key switches labeled 1 through 7 are grouped together at the upper
left, while the 0 key is located in the center of the diagram. NAND gates NG1, NG2,
and NG3 provide the encoding for key switches 1 through 7, while NG4 detects the
activation of any key.
Before any key switch is depressed, note that NG1, NG2, and NG3 have a 0 output
due to the 1 being applied to each of the four inputs. Note also that NG4 has a
0 output as a result of the 1-level signals applied to its four inputs.
Now, to understand the logic used, assume that key switch 3 has been depressed.
When this happens, one of the inputs of NG1 and NG2 is placed at logic 0 by grounding.
This forces both of these gates to have a logic 1 at their outputs. (A 0 output
of a NAND gate can occur only when all its inputs are a logic 1.) Keyboard output
lines B0, B1, and B2 then have the following conditions:
As you can see, the octal input has been converted to a binary code. Note also
that the output of NG4 has gone to a 1, signaling that keyboard activity has occurred.
Depressing key switch 0 causes the output of NG4 to go to 1, indicating that
keyboard activity has occurred. However, this signal will have no effect on NG1,
NG2, or NG3, all of whose outputs remain at 0. If you were to read the binary number
at B0, B1, and B2, it would still be 000 (binary zero). But there would be a signal
from activity gate NG4 to indicate that a switch closure has occurred.
Front view of the computer terminal.
Fig. 3 - Computer schematic diagram.
The problem with many keyboard switches is that they have a mechanical "bounce."
This bounce must be allowed enough time to damp out before attempting to load data
into the output-register flip-flops (FF3 through FF10). This delay is accomplished
in the debounce circuit in which NG5 and NG6 form an RS flip-flop - the simplest
form of flip-flops. To understand its operation, you need to realize that only one
input at a time can be activated by a 0. If a 0 is applied to both inputs at the
same time, the device will not operate as a flip-flop.
The activity line (output from NG4) goes
to a logic 1 if any key switch is depressed. This signal is fed through inverter
14 to one of NG5's inputs. A zero (0) into NG5 generates a one (1) at the gate's
output, which is then fed to one of NG6's inputs. Assuming that the other input
(pin 5) is also at 1, a 0 will appear at the output of NG6. If both inputs were
allowed to go to 1, the RS flip-flop would remain as set by the previous 0. If a
0 is applied to NG6 while a 1 is applied to NG5, the device will flip, causing a
0 output to be generated at NG5 and a 1 output at NG6.
The mechanical-bounce switch problem occurs whenever a mechanical device is interfaced
with digital electronics. The bounce time of the mechanical switch is very fast
(say, 10 pulses during a 10-ms interval), but it is exceedingly slow from an electronics
viewpoint, since each individual pulse can be detected. A debounce circuit, therefore,
should be included to remove any extraneous pulses.
The debounce circuit employed in the VLCT consists of an RS flip-flop made up
of NG5 and NG6 and a retriggerable monostable multivibrator (sometimes called a
single-shot multivibrator), SS1. The SS1 circuit is basically a form of unstable
flip-flop. When a trigger pulse is applied to it, the multivibrator changes states
only for a period determined by an external-time-delay network, which in this case
consists of C1 and R23 to yield a 10-ms delay. After the delay, SS1 switches back
to its initial state.
Let us trace a signal through the debounce circuit. With a 1 coming from the
output of NG4, the output of 14 is 0. This causes the RS flip-flop to change states,
with the S output going to 1. The logic-1 activity signal from NG4 is also fed to
the B (trigger) input of SS1, causing the multivibrator to go into its unstable
state for 10 ms and apply a 0 to the other input of the RS flip-flop - which is
a violation of the rules for this circuit. But the violation can be disregarded
because SS1 applies this signal for only 10 ms before control reverts back to the
activity input, which sets the S output of the flip-flop to 1. This signal is then
applied to one of the inputs of NG7, while the other input comes from SS1 which,
after 10 ms will apply a 1 to completely enable this gate and generating a 0 at
The 0 output is inverted by I5 to produce yhe "load" signal for the output register.
It is important to note that the load command did not occur until 10 ms after the
keyswitch was originally closed. This assumes that the switches will not be bouncing
for more than 10 ms. If there were any bouncing after the 10-ms delay, a longer
time constant would be needed at SS1 by selecting appropriate C1 and/or C2 values.
When the key switch is released, SS1 is reset and a "step" pulse is generated'
by NG8 for use by the sequence generator.
IC power connections.
Fig. 4 - Complete logic of the receiver with 7-segment readouts.
Fig. 5 - Schematic of power supply (A) and "ready" circuits to
be used when terminal feeds a computer (B).
To load eight bits of data into the output register with an octal keyboard, three
switches must be operated because each key depression generates only two or three
bits. For example, assume you want to load the octal number 365 into the output
register. The first step is to load the 3 into the first two bits, the 6 into the
next three bits, and the 5 into the bottom (least-significant) three bits. Note
that the first key depressed can use only two bits. This means that a 3 is the largest
digit allowable on the first key depression. The next two key positions can be any
IC Power Connections
The sequence generator consists of FF1, FF2, NG9 through NG14, and SS2. Let us
assume that at the beginning of the cycle FF1 and FF2 are both cleared so that the
Q output of each is 0 and the Q output is 1. Under these conditions, NG11 has a
1 at two of its three inputs. Now, when a load pulse occurs, caused by a key switch
depression, the third input goes to 1 and the output of NG11 goes to 0. After inversion
by NG15, a clock pulse is applied to FF9 and FF10 to cause the data on B0 and B1
to be loaded into FF9 and FF10.
When the key switch is released, a "step" pulse is generated at NG8 and is fed
to the C (clock) input of FF1, causing this flip-flop's Q output to go from 0 to
1; FF2 will be unaffected because the change is positive-going. When the next key
switch is depressed, NG10 will be the gate selected. This will load FF6, FF7, and
FF8 with data from the keyboard. When the switch is released, the step pulse will
again cause FF1 to change states. But this time, the change will be from 1 to 0
at the Q output.
The Q output of FF1 is now 0 and the Q output of FF2 is 1. This selects NG9,
which will load FF3, FF4, and FF5 on the next key switch depression.
When the 3 key is released, the step pulse will again cause the FF1/FF2 counter
to step, resulting in a 1 on both Q outputs. This is detected by NG12 and causes
SS2 to be triggered for 1 μs. Then SS2 clears FF1 and FF2 and transmits a "data-ready"
signal to the computer or other digital devices connected to the output. The CLEAR
button can be used to reset the counter in the event an error was made during entry.
The output register consists of FF3 through FF10. These eight flip-flops store
data until the three key entry sequences are completed. They are called data flip-flops,
or D flip-flops. Their function is to load the bit present at the D input whenever
the C (clock) line goes to 1. This data then appears at the Q outputs. The flip-flops
ignore anything on the D inputs unless the clock pulse is present.
The output display consists of light-emitting diodes LED1 through LED8. The LED's
glow whenever their respective data lines are at logic-1. This provides a binary
readout. It is these data lines that are coupled to the external computer or other
Shown in Fig. 4 is the receiver portion of the system, consisting of latches
IC13 and IC14 (each with four D flip-flops for a total of eight flip-flops); IC15,
IC16, and IC17 4-bit binary to 7-segment decoders; and DIS1, DIS2, and DIS3 7-segment
Assume that the transmitter drives the receiver directly (receiver inputs directly
connected to transmitter outputs). Each time the transmitter receives three key
switch operations during number entry, it transmits a "data-ready" signal to the
receiver. This signal is coupled to the LOAD inputs of quadrature latches IC13 and
IC14 and causes the eight input signals to be read into the two latches and stored.
The outputs of the latches are connected to the 7-segment decoders, each of which
consists of approximately 80 gates arranged to convert a 4-line binary signal into
a 7-segment drive signal for a numeric readout on the displays.
Since the system under discussion is octal-based, one of the inputs of each decoder
is not used. Therefore, each readout displays only the digits 0 through 7. If desired,
the fourth input can be used, resulting in a full decimal and hexadecimal format.
"Now, what do they mean by female connection?"
Shown in Fig. 5 is the power supply for the VLCT. The dc voltage from Ti and
the bridge rectifier consisting of D1 through D4 is applied to 5-volt regulator
IC19. (The +5-volt and ground lines go to the IC's as shown in the table.) The regulator
is current and temperature protected. Capacitor C4 filters the output of the bridge.
The VLCT requires about 500 mA of regulated current for the logic elements and
about 150 mA of unregulated current for the LED displays, both at 5 volts dc.
The VLCT is assembled on two double-sided printed circuit boards, too large to
be published. The actual-size foil patterns and component layouts can be obtained
by writing to the supplier noted in the Parts List. Carefully install the components
on the boards exactly as shown in the component-placement diagrams. Pay particular
attention to the polarities of the electrolytic capacitors, LED's, and rectifiers
and the orientations and indexing of the integrated circuits and 7-segment displays.
When soldering the component leads to the pc boards, use a low-power soldering
iron and fine solder. Be particularly careful to avoid solder bridges between closely
spaced foil conductors. Note also that the use of sockets or Molex Soldercons®
for the IC's and 7-segment displays is recommended but not absolutely necessary
It is good practice to handle the IC's as little as possible and to install them
as the last step in construction.
The terminal should be housed in a case that allows the display board to be viewed
easily through some form of window. Each LED (indicators for the output register)
should be identified by digit on the cover plate or lens filter as shown in the
Power transformer T1 should be mounted on the floor or bottom plate of the case,
while regulator IC19 goes on the rear wall, its case exposed to the outside.
The checkout procedure consists of making certain that the transmitter is connected
to the receiver and that power is delivered to both circuits. Once it is verified
that power is properly delivered to the circuits, depress three keys on the transmitter
and note that the displays indicate the proper sequence. This procedure checks all
transmitter and receiver logic.
How TTL Works (NAND example)
Transistor-transistor logic (TTL) is a positive-logic
system. The circuit of a typical gate, in this case one gate in a 7400 quadrature
NAND IC, is shown below.
If neither input of the gate is grounded, or both are connected to a positive-voltage
source, the base-collector junction of Q1 is forward biased so that current can
flow through R1 and the B-C junction of Q1 into the base of Q2. Transistor Q2 goes
into saturation, producing a voltage drop across R3. This provides a bias to turn
on Q3 and at the same time the voltage at the collector of Q2 drops.
For Q4 to conduct, its base must be at about 1.8 volts. The values of R2 and
R3 are selected so that, when Q2 is conducting, the voltage drop across R3 is high
enough to turn on Q3. But the voltage at the collector of Q2 is not high enough
to cause Q4 to conduct. The "0" output is then only a junction away from ground
(through Q3). Note that in this state, the output (via Q3 to ground) can sink a
reasonable amount of current-approximately 16 mA. This is why TTL is sometimes referred
to as "current-sinking logic."
If one or both inputs of the gate is grounded, Q1 conducts and its collector
voltage drops to near ground potential, cutting off Q2. Almost no current flows
through Q2's C-E junction, and the base voltage ofQ3 (voltage drop across R3) is
close to zero. Transistor Q3 then forms an open circuit. The collector of Q2 approaches
+5 volts, which causes Q4 to conduct. The output (1) is then a function of R4, the
C-B resistance of Q4, and the forward resistance of D1. The output voltage is then
about 3.5 volts.
In the regular TTL family, about 1.6 mA flows through any input grounding circuit.
In the event grounding is through a resistor, there will be a voltage drop across
the resistor. Because the maximum permissible low-state input voltage is about 0.8
volt, the external resistor cannot have a value in excess of 500 ohms, and any low
input connection must hold the input below 0.8 volt.
In some TTL devices, a protective diode is connected from each input to ground.
If a negative voltage (with respect to ground) greater than 0.6 volt is accidentally
applied to either input, the diodes conduct to protect the gate. The protective
diodes also prevent high-frequency ringing when long connection leads or sharp risetime
pulses are used.
The truth table for a two -input NAND gate is as follows:
The 0's and l's represent "low" or logic 0 and "high" or logic 1 conditions,
respectively. Note that the only time the output of the gate changes state from
its normal 1 output condition to 0 is when both inputs are "enabled" (have a 1 applied
to them simultaneously). If neither input, or only one input, is enabled, the output
of the gate remains at 1.
Posted September 20, 2019