When is a 555 not a 555?
When it’s really a PIC!
The design of the DrACo/Z80 computer calls for a 555 timer (a great piece of paleotech, even if it still isn’t sure after 38 years whether it’s really a digital or analog part.) However, for running higher-speed programs on the DrACo, I wanted to have the option to, as Emeril might say, “kick it up a notch.” I figured that a PIC12F683 would do nicely, since it could be programmed to provide a nice, stable TTL clock output without any external components.
The only problem was, the PIC’s ground lead is on Pin 8 and its power lead is on Pin 1; the 555 has the opposite configuration. The solution? Possibly the single ugliest soldering job I’ve done in a long time (and that’s saying something, folks.)
Yet, it works — and is a nice, drop-in replacement for the 555, swapping the astable oscillator mode for a much faster 2MHz clock output.
This is also the single shortest program I’ve ever written for a PIC:
org 0x00
banksel OSCCON
movlw 0x70
movwf OSCCONgoto $
It sets the clock to 8MHz, then sits in a single-instruction loop and contemplates its navel. So, for that matter, when is a PIC not a PIC? When it’s not doing any computing at all — but just providing a 2MHz CLKOUT signal.
But sometimes, the smaller the MCU, the more creative the applications. I’ve heard of people using microcontrollers in fireworks to provide split-second timing for the pyrotechnics. At 30 cents each for something like the 10F200, it only sounds crazy until you think about it.
…and yeah, this project could have been very easily done with a less expensive PIC — but 12F683s are so versatile that I keep a couple dozen of them on hand for various things. They’re like digital LEGO…