|
 
|
|
Home Page |
| Домашня сторінка |
Часы на микроконтроллере PIC16F887 с будильником, днем недели и резервным питанием
Крушневич С.П..
ВВЕДЕНИЕ.
Конструкция выходного дня. В один прекрасный выходной день
возникло сильное желание собрать часы на 7-ми сегментных индикаторах, с
указанием дня недели, будильником и главное... способные сохранять работу без
электричества (это после очередного кратковременного отключения света). Тут и на
радиорынок ехал, купил индикаторы и пошло-поехало
Паять или программировать?
Так как это конструкция выходного дня, я решил сделать всю схему на
макетной плате. Дабы минимизировать количество внешних компонентов, я установил
недорогой МК PIC16F887 (усовершенствованный аналог
PIC16F877A) и распаял все вокруг него.

Схема электрическая принципиальная
Схема получилась достаточно простая, так как вся логика
работы спряталась в прошивке.

Нажмите для увеличения
Энергонезависимость обеспечивает ионистор 1 Ф 5,5 В. Во
время испытаний ионистор успешно питал часы в течении суток. Так как вариант
питания от ионистора разрабатывался позже, я не учел возможного упрощения схемы
подачи питания и пришлось городить схему контроля напряжения питания на оптопаре
для того, чтобы вовремя погасить индикаторы. Анализ наличия напряжения питания я
провожу в функции динамической индикации, перед выводом очередного символа. Как
только я замечаю, что сигнал на ножке пропал, я сразу гашу все сегменты и
вспомогательные светодиоды. Далее в основной функции (когда приходит время) я
отправляю МК в режим спячки. Будет МК прерывание от таймера
TMR1 с интервалом в 2 сек. После увеличения значения числа секунд, в
основной функции снова проверяется наличие напряжения питания и МК снова
засыпает на 2 секунды.

Корпус
После долгих раздумий я решился на металлический корпус и
прозрачную переднюю панель.
Корпус оклеен самоклейкой

Описание
В нормальном режиме на часах отображается текущее время и день недели (светодиодным столбиком).
Нажатие на кнопку "Часы" переводит часы в режим установки часов, минут и дня недели. Выбор осуществляется кнопкой "часы", изменение - кнопками "+" и "-".
Нажатие на кнопку "Будильник" переводит часы в режим установки будильника. Вначале отображается состояние будильника "включенно-On" или "выключенно-OF", далее указывается часы и минуты срабатывания.
Прошивка для микроконтроллера PIC16F887
Прошивка от 17.10.2009, скачать .hex
Прошивка от 15.01.2011, Бетта версия. скачать .hex
1. Добавлена поддержка датчика температуры DS18B20. Сигнальный выход датчика следует подключить к ножке №2 микроконтроллера
и соеденить через резистор на 4,7 кОм с питанием МК. Температура отображается по нажатию кнопки "+".
Часы успешно эксплуатируются с 05.05.2009.
07.03.2011