Raj from embedded-lab just informed us for his latest project. This time, he made a cool 2-wire keypad interface for microcontrollers, using a 555 timer. The theory of operation is simple. Each button, adds a different resistor to the RC network of the 555, hence making it oscillate at a different frequency. The microcontroller (Raj used a 16F628 PIC micro) then reads the frequency and determines which button was pressed. Complete documentation along with schematics and code here. Thanks [Raj] again!