Вашему вниманию предлагаются часы на МК PIC16F628A с точностью хода 30 секунд в год.
Сама схема:
Итак:
-Реализовано 2 режима отображения часы-минуты и минуты-секунды. Переключение кнопкой "Инкремент".
-При нажатии кнопки "Коррекция" часы переходят в режим коррекции секунд (секунды обнуляются кнопкой "Инкремент"). Следующее нажатие кнопки "Коррекция" переводит часы в режим коррекции минут (минуты увеличиваются кнопкой "Инкремент"). Ещё одно нажатие кнопки "Коррекция" - переход к коррекции часов (часы увеличиваются кнопкой "Инкремент"). Следующее нажатие кнопки "Коррекция" - возврат в режим отображения часов-минут.
-При нажатии кнопки "Будильник" часы переходят в режим отображения уставки будильника. В этом режиме кнопкой "Инкремент" включаем будильник. Включение подтверждается коротким звуковым сигналом и включается мигающая точка. Корректируется уставка будильника после нажатия кнопки "Коррекция". После первого нажатия - минуты, после второго - часы (увеличиваются кнопкой "Инкремент"). После третьего нажатия - переход в обычный режим.
-В часах реализована функция коррекции посредством подстройки константы (режим подстройки включается при удержании кнопки "Коррекция" дольше 1-й секунды). По умолчанию константа равна 1032 микросекунды в секунду. При отставании часов константу увеличиваем (кнопка "Инкремент") на величину отставания вычисленное в микросекудах за 1 секунду. Если часы спешат, константу уменьшаем (кнопка "Будильник") по тому же принципу.
-Возврат в обычный режим осуществляется из режимов коррекции через 3 минуты после последнего нажатия любой из кнопок.
-При срабатывании будильника подаётся звуковой сигнал, который отключается нажатием любой из кнопок или автоматически через примерно 4 минуты.
-При установке батареек соответственно схеме, часы продолжают идти при отключении от сети. Использованы 3 батарейки А3 для наручных часов.
Итак прошивка и исходник скачать
Да вот еще што в некоторых случаях может быть подсвечивание выключенных сегментов индикаторов.
Выглядит это подсвечивание вот таким образом:
Причина в том, что при переключении разрядов в программе динамической индикации(переключение идёт слева направо) транзистор разряда, выводимого на индикацию не успевал закрываться. Часть времени(несколько микросекунд) цифра следующего разряда отображалась в разряде предыдущем. Заметен этот недостаток на импортных ярких индикаторах.
Вот исправленная прошивка, скачать
Мой вариант:
Будут вопросы обращайтесь =)
|