Led clock circuit board
Somewhere in the middle of the eighties, when I was studying, I joined the ECA: the Eindhoven Computer Association, a microcomputer club in Eindhoven. Although I am not a member anymore, they still exist and have now been active for more than 25 years . Being situated in Eindhoven, the club obviously had close links with Philips, and regularly obtained surplus supplies of components of various kinds. I remember that these components could be bought for fl 0.10 (10 guider cents) a piece on every Tuesday evening. At one time they had a batch of LEDs in various shapes and colors. In those days a LED was not quite the common component it is today. The availability of these LEDs in these beautiful colors and nice shapes suggested the idea for a clock with an analog clock face.
Normally, I never bother about making a printed circuit board for my circuits. I prefer working on these cheap prefabricated pertinax breadboard cards. However, for the circular face of my LED clock I had no other alternative than to etch a PCB (Fig. 1). I made it in the summer of 1987, and after I had placed the LEDs and finished the wiring, I put it into a drawer. There it was forgotten due to more pressing projects (girls and examinations).
Both for the anodes as well as for the cathodes, drivers with discrete transistors have been used. The two resistors of 330 ohm in the anode drivers set the current through the LEDs and hence their brightness. The left 330 ohm resistor (connected to rows A...E) sets the current through the seconds and minutes LEDs while the right LED (connected to row F) sets the current through the hours LEDs. You will have to determine the proper value of these resistors experimentally. The value of 330 ohm is just a starting value and depends on the exact supply voltage, and the color of the LEDs used. Especially the resistor for the hours LEDs will be much smaller, typically something in the range of tens of ohms.
The 16F84 processor used here is a little bit out dated and no longer in production. I used it because of the simple fact that I had it lying around. The more modern 16F628 is pin compatible and will perform equally well. The 16F628 controller requires some minor software modifications. The source and hex files for both the 16F84 and the 16F628 have been included in the download section at the bottom of this page. The 16F84 has too few I/Os to address all the anode and cathode drivers directly (Fig. 3). A 74HC563 8 bits latch was used to extend the number of outputs by another 8 bits at the expense of a latch enable signal taken from port A. The eight outputs from the latch, together with the lowest 4 bits of port B from the PIC drive address the cathode drivers. Since only one of the anode rows is switched on at any given moment, a HEF4028 1-of-10 decoder could be used to activate one of the six rows using only 3 bits (A0...A2). These bits are connected to the higher 4 bits of port B. To prevent unwanted illumination of LEDs during the multiplexing of data to the 74HC563, I/O bit A3 from port A is used to completely disable all the anode drivers.
A distinct feature of this clock is the mechanical bell which strikes the hours. For this bell I have used the bell salvaged from an old analog telephone (Fig. 5), but any doorbell with the interrupter removed will do. The characteristic ping is obtained by energizing the bell from a charged capacitor rather than from the 12V power supply. The 15 kohm resistor charges the 10 uF electrolytic capacitor in less than half a second. When the transistor is switched on, the charge in the capacitor is dumped in the bell coil.