Вы находитесь на странице: 1из 3

Schematic Diagram

One of the problems with a manual pulse generator is that any mechanical pushbutton
exhibits a phenomenon known as "contact bounce." Contact bounce is the term used to
describe the fact that physical contacts in a real-world switch or pushbutton do not simply
make contact or break contact when the switch is toggled or the button pushed. Instead,
the contacts are actually a bit flexible. When they initially touch, they bounce apart
slightly, then touch again. As they come apart, the same thing happens again as the
pressure holding them together is released. As a result, physical contacts may actually
make and break contact several times at each actuation. The result is multiple pulses for
each press of the button.

To prevent this phenomenon and obtain clean, single digital pulses, we need to include
with the switch a digital circuit that will react to the first contact closure, but will ignore
subsequent contact bounce. The classical way to accomplish this is to adapt a basic RS
latch for use with a single-pole, double-throw (SPDT) switch or pushbutton. The
resulting circuit is shown to the right.

One potential problem with this circuit is that we want to be able to use it with multiple
logic families in our experimental circuits. This means our gates must cover the voltage
requirements of CMOS gates and still have the current drive capabilities needed to
control RTL, DTL, and TTL gates. This is not possible with ordinary ICs in any logic
family, as they are designed only to interface with other ICs in the same family.
However, if we use an IC specifically designed to interface with other logic families, then
we can design our circuit to meet this requirement and provide a more generally usable
The schematic diagram to the right shows an alternate debouncing method, using two
inverters from a 4049 CMOS IC. This circuit makes practical use of two of the
characteristics of CMOS ICs: high gain transistors and high input impedance.

We know that we can cross-connect two inverters to form a latch circuit, but this
normally does not allow any external inputs. Each output forces the other input to a valid
logic state. CMOS ICs, however, have such high gain that the output tends to go to one
logic state or the other, even for very slowly-changing input signals.

We therefore simply cascade two inverters, and use a high-value resistor to pull the input
up to +5 volts. The inverter input, being CMOS, draws no current so we can use any
resistance value we need or want to. This resistor, which is 10 Megohms in our circuit,
forces the initial input to logic 1, so the Q output is logic 0 and Q' is logic 1 again.

Next, we add the .01µf capacitor shown in this circuit. This capacitor is discharged when
power is first applied, and cannot change its voltage instantly. Therefore, the input is
forced to start at logic 0, and the Q' output is initially logic 0. However, the capacitor now
charges towards +5 volts through the 10M resistor. At some point in the charging
process, the capacitor voltage will exceed the switching threshold of its inverter (Q), and
the Q output will therefore change state from a logic 1 to logic 0. This will immediately
force the second inverter to change state, and Q' will become a logic 1. The time required
for this is set by the RC time constant, which in this case is 10M × .01µf = 0.1 second.
The switching threshold may be anywhere from 30% to 70% of the supply voltage, but is
nominally at 50%, so switching will take place when the capacitor has charged halfway.
This means that our Q output will start in the ON state, and will change to OFF 0.693RC
seconds later, or about 0.07 second for our component values. The timing range will be
between 0.04 second and 0.11 second, which will still work satisfactorily.

The final step is to add a momentary-contact pushbutton, which will short out the
capacitor, and therefore discharge it, each time it is pressed. This will force the Q output
ON as long as the pushbutton is held, and allow it to turn OFF again 0.07 second after the
button is released. Q' will, as expected, be the inverse of Q.

The whole point of doing it this way is that contact bounce in the pushbutton cannot
affect the behavior of the circuit. This phenomenon lasts only for a few milliseconds,
which is not enough time for the capacitor to recharge enough to allow the Q output to
change state. As a result, each press of the button will produce one and only one output
pulse. Furthermore, the circuit will reset itself rapidly, so you can readily generate fast
manual pulses as needed. If your component tolerances happen to be extreme, you may
experience a bouncing effect. You will detect this as soon as you start using these pulser
circuits in other experiments. It is unlikely, but if you happen to beat the odds, you can
increase the value of the capacitor to eliminate the problem.