7 seconds a minute is 11.6% error, probably not a crystal error but the code.

Changing timer zero's count is very funky to do as there is a built-in two instruction cycle delay before it starts counting again. The last timer I built (2% accuracy using a resonator) uses a Timer 2 as the time beat. Timer 2 is preferable as it has a compare value; I have the same clock (1MHz) and load PR2 with 250 so I get a steady evenly spaced interupt every .25 miliseconds without having to reload any registers.

That's kind of fast for once a sec updating but you also have pre and post scaler to work with.


BTW, what processor are you using? Microchip says "your search 12F625 did not match any documents. please refine your search."