Fork me on GitHub

Project Notes

#318 555Timer/Bistable

Using the 555 timer as a bistable latch (debouncer).

Build

Notes

Ben Eater’s 8-bit computer yields more interesting circuits. Here I’m reproducing his bistable latch circuit based on the 555 timer.

How it Works

This circuit takes advantage of the fact that the trigger and reset pins provide direct access to the SR latch within the 555 timer that drives the output.

  • The trigger pin provides a SET input when it rises above the 33% division of the 5V input - 1.67V.
  • The reset pin provides an inverted (Active low) RESET input.

With pull-ups on both trigger and reset pins, the 555 is in a SET (output high) state.

A make-before-break single-pole double-throw switch is wired up to switch between grounding either the trigger and reset pin. This will toggle between SET and RESET, with debouncing since multiple pulses will effectively be ignored by the latch.

Performance

The switch throw is effectively debouned - and despite using it rudely, I haven’t been able to reproduce any bouncing input signals yet.

However when zoomed in very tightly on a rising edge, there is not a very clean swing. This appears to be cross-over distortion on the 555 output.

scope-trigger

Construction

Breadboard

Schematic

Build

Credits and References

About LEAP#318 555 Timer
Project Source on GitHub Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is my personal collection of electronics projects, usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting (IMHO!).

The projects are usually inspired by things found wild on the net, or ideas from the sources such as:

Feel free to borrow liberally, and if you spot any issues do let me know. See the individual projects for credits where due. There are even now a few projects contributed by others - send your own over in a pull request if you would also like to add to this collection.