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