This circuit uses a simple push-button to provide a push-on, push-off action. It is actually a bistable circuit, which operates by using the dead-band of a Schmitt trigger. The Schmitt trigger is made from two comparators, and a resistor chain within a 555.
The state of the switch is indicated by illumination of either a green or a red LED, driven by the bipolar output of pin 3. The switch-action is provided by a small 100mA relay, which is activated or deactivated from the open-collector output pin-7. This relay is used to drive any application circuit.
In case of the LED status be omitted, the relay could also be driven from pin-3, either directly or via a transistor. Actually, pin 3 is able to source much more current (200mA) than pin-7, and can be used to drive a much “stronger” relay.
When the push-button is open-circuit, the input pins 2 and 6 are clamped within 1/3 and 2/3 of the supply voltage (actually at half of the supply voltage) which happens to be the dead-band of the Schmitt trigger. At this state, the switch preserves its previous condition. To prevent the circuit to power-up on an unknown condition, a power-up reset may be applied with a resistor from supply to pin 4 and capacitor to ground.
When the button is pressed, C1 is charged or discharged from R3 (depends on the current output state), and flips the output to the opposite state before the charge is dissipated. Then, the circuit is clamped back into the neutral (dead) zone by resistors R4 and R5.
C1 and R3 values are chosen to provide approximately a 800ms response to compensate for button contact bounce.