There are two types
of press button switch normally open (NO) and normally closed (NC). The
description
refers to the state
of the contacts when the switch button is not pressed. You press the button
and the contacts
will open and close
many times before finally staying in position. This is known as contact
bounce. Depending
on the switch construction,
this mechanical contact bounce can last up to 20 milliseconds. This isn't
a problem
for lamps, doorbells
and audio circuits, but it will play havoc to a fast switching logic circuit
or computer.
I have attempted
to create some contact bounce as shown below. The diagram is not very accurate
but it
serves its purpose:

The simplest method is to use a filter
circuit containing a resistor and capacitor. The time constant must
be at least 20ms to avoid contact bounce.
The general idea is shown below :
When SW1 is pressed and released the capacitor
will be charged and then discharged via the 10k resistor.
This may be OK for driving CMOS logic
IC's but TTL chips require a cleaner pulse. With the aid of a simple
monostable circuit a clean output pulse
can be achieved as shown below :
Another method is to use a Schmitt
trigger such as the CMOS 4093. The schmitt trigger ensures that a
clean output pulse will be produced.
Dedicated switch debouncer IC's now exist
and some are capable of debouncing up to four switch inputs
such as the
. Another example is shown in the switching
circuit area.