We are using Microchip's PIC16F628 microcontrollers for it. The 16F628 is basically a better, cheaper, and pin compatible version of the PIC 16F84.
Check out Byron A Jeff's page: The 16F628: Why the 16F84 is now obsolete He also has a simple programmer schematic and a patched version of the Linux picprg software to go with it. (I'm using his THVP programmer, which BTW can be seen in the pictures below)
Here's a preliminary block diagram of the circuit.
B: 04 Apr 2003: Added the following schematic of the MCP:
Notes about above circuit schematic: Things missing in the schematic
- the wires that are used to let the Master PIC (IC1) talk via a serial "bit-banging"-type protocol to the other PICs
- the LEDs for the keys (design not completed yet)
- as indicated, only 3 7-segment displays are shown, but there are 16 in total
Things that already work on my breadboard (see below for pictures)
- serial protocol (RS-232) of master PIC with PC
- 16 7-segment displays driven via time-multiplex technique with the 4067
- serial protocol (bit-banging type) from master PIC to display PIC
- set each display via a terminal program from the PC
Not built/tested yet
- keyboard matrix (connected to IC3)
Update 20030424: Tested
- PS/2 Mouse Interface
- the idea is to use the quadrature encoders in the mouse as rotaries
- why: mice are cheap, I payed less that 2 Euros (~2USD) for a el-cheapo PS/2 mouse
- electronics already there
- only two pins per mouse necessary (= 2 rotaries)
- currently I have one PS/2 mouse connected to a PIC, working fine.
- TODO: decoding mouse state inside PIC, and sending updates to display; adding a second mouse