PIC Digital Clock Timer

his clock timer uses a PIC16F628 microcontroller to display 3 and 1/2 digit time and control an external load. The clock includes a calendar with leap year and optional daylight savings adjustments. The timer output can be set from 1 to 59 minutes and manually switched on and off. The clock also has a correction feature that allows an additional second to be added every so many hours to compensate for a slightly slow running oscillator.  The oscillator uses a common 32.768 KHz watch crystal and the frequency can be adjusted slightly with the 24pF capacitor on the right side of the crystal.

There are 7 displays that advance each time the 'D' switch is toggled. To make adjustments, set the RA5 switch to the "B" position and then toggle the E and F switches to advance the data in the hours or minutes digits. Then toggle the "D" switch to move to the next data. After the 7th display, it will go back to the top and display the current time. Or, just press the time switch 'C' to get to the top at anytime. When done setting everything up, set the RA5 switch to the "A" position so the data cannot be accendentally changed. You can still view everything with the "D" advance key, but the E an F switches will just turn on or off the alarm at RB7. I use it with an external transistor to switch on and off a radio.

PIC Digital Clock Timer Circuit Diagram


The 'Daylight savings' setting (in the 6th display in the minutes digits) is used to enable daylight savings time adjustments, one hour ahead on the 2nd sunday in March, and one hour behind on the first sunday in November. The entry will be either 0, 1, or 3.

0 = Daylight savings time disabled (default).
1 = Savings time enabled and current time is standard time.
3 = Savings time enabled and current time is daylight savings time.

The last 2 entries on the list (Year and Correction) is for the current year (1 to 4) (4 = Leapyear) so today's setting (2006) will be 2 since leapyear will be on year 4 which is 2 years from now. The correction setting will add a second every so many hours for fine adjustment to the oscillator frequency. My setting is 18 which adds a second every 18 hours. It's pretty accurate and only loses 3 seconds a month. You probably want to run it for a couple weeks to figure out what correction is needed for the crystal you have.

Switch functions:

RA0         (C switch)         =  Display Time
RA1         (D switch)         =  Advance to next data (alarm, calendar, etc)
RA2, RA3    (E and F switch)   =  Advance hours and minutes (in setup mode).
RA2, RA3    (E and F switch)   =  Toggle alarm output on/off (in run mode)
RA5 in the 'B' position (open) =  Setup Mode

Download asm file
Share this article

0 comments:

Post a Comment

 
Copyright © 2016 W3circuits.com • All Rights Reserved.
back to top