прерывание по таймеру 1 вызывается каждую мс, в теле прерывания переменная мs (это миллисекунды) инкременируется пока не дойдет (не помню точно, где-то около) 59850 и щелкает переменную минут. Дальше минуты щелкают часы и т.д. 598050 вычислил посылая на писюк putch() из прерывания по таймеру 1и измеряя между ними промежуток, есть такой софт, по двум точкам интерполировал и получил 59850. Вот так и реализовал.