Countdown Timer

It's a kitchen timer. Use it to time spaghetti, or maybe an egg. It uses two PICs, one acts as a keyboard encoder, the other drives the display and supports the timer functions. You key in the desired time and press '#'. It's accurate to 1/100th of a second, which can make all the difference I'm sure you'll agree.

You can buy something similar to this from Denkimono.

Block Diagram


The PIC16F84 doesn't have enough I/O lines to drive the display and keyboard so the keyboard encoding was done by one PIC and the display driving by another. The keyboard data was transferred to the display driver PIC over a single serial line. Even then there were not enough lines for the display driver PIC to drive the LED segments and select the display digit directly, so a 4 to 16 line decoder was used. This uses a 4-bit binary encoded input to select one of 16 outputs. This way the PIC was able to select each of six digits using only 4 output lines (3 to select the digit and 1 to latch the data to the decoder). 3 binary inputs decode to 8 outputs so one of the spare outputs was connected to the buzzer. The drawback with this is that the display and the buzzer cannot operate concurrently. This was turned into a 'feature' by flashing the display when the buzzer is sounding.

The keyboard, display and electronics are mounted (i.e. stuck on with gaffer tape) on a 6v lantern battery which so far has given a life of several years!


  1. Why use two weedy PICs instead of one big daddy PIC?
    I've got a huge tube of 16F84 parts that I want to use up. It also adds to the effect, don't you think?
  2. Where can I get the parts/tools for this?
    PIC programmer
    Everything else

More pictures: