Часы - будильник на микроконтроллере PIC16F628A

Часы - будильник на микроконтроллере PIC16F628A с питанием от батареек


Этот вариант часов сделан таким образом, чтобы максимально упростить схему, снизить энергопотребление, и в итоге получить прибор, который легко помещается в кармане. Выбрав миниатюрные аккумуляторы для питания схемы, SMD - монтаж и миниатюрный динамик (например от нерабочего мобильного телефона), Вы можете получить конструкцию, размером чуть больше спичечного коробока.
Применение сверхяркого индикатора позволяет снизить ток, потребляемый схемой. Снижение тока потребления также достигается в режиме "LoFF" - индикатор погашен, при этом включена только мигающая точка младшего разряда часов.

Рис 1. Вид передней панели.
Часы - будильник на микроконтроллере PIC16F628A


Регулируемая яркость индикаторов позволяет выбрать наиболее комфортное отображение показаний (и опять же снизить энергопотребление).
В часах реализовано 9 режимов индикации. Переход по режимам осуществляется с помощью кнопок "плюс" и "минус". Перед выводом на индикацию самих показаний, на индикаторы выводится короткая подсказка названия режима. Длительность вывода подсказки - одна секунда. Применение кратковременных подсказок позволило достичь хорошей эргономичности часов. При переходах по режимам отображения (которых получилось достаточно много, для такого простого прибора, как обычные часы) не возникает путаницы, и всегда понятно, какие именно показания выведены на индикатор.

Рис 2. Режимы индикации.
Часы - будильник на микроконтроллере PIC16F628A


Коррекция показаний, выведенных на индикатор включается при нажатии на кнопку "Коррекция". При этом кратковременная подсказка выводится на 1/4 секунды, после чего корректируемое значение начинает мигать с частотой 2 Гц. Корректируются показания кнопками "плюс" и "минус". При длительном нажатии на кнопку, включается режим автоповтора, с заданной частотой. Частоты автоповтора нажатия кнопки составляют: для часов, месяцев и дня недели - 4 Гц; для минут, года и яркости индикатора - 10 Гц; для корректирующего значения - 100 Гц.
Все откорректированные значения, кроме часов, минут и секунд, записываются в EEPROM и восстанавливаются после выключения - включении питания. Секунды при коррекции обнуляются. Из всех режимов, кроме часы-минуты, минуты-секунды и LoFF организован автоматический возврат. Если в течение 10 секунд ни одна из кнопок не нажата, то часы переходят в режим отображения часов - минут.
Нажатием на кнопку "Вкл/Выкл буд." включается/выключается будильник. Включение будильника подтверждается коротким двухтональным звуком. При включенном будильнике светится точка в младшем разряде индикатора.
В режиме "Corr" на индикатор выведена корректирующая константа, начальное значение которой 5000 микросекунд в секунду. При отставании часов константу увеличиваем на величину отставания, вычисленное в микросекундах за одну секунду. Если часы спешат, то константу уменьшаем по тому же принципу.

Рис 3. Схема часов.
Часы - будильник на микроконтроллере PIC16F628A



Прошивки
Clock_4c_bat.hex Прошивка, полностью соответствующая выше приведенному описанию (обычный HEX формат)

Clock_4c_bat.sfr ( формат программатора ProgCode )


Clock_4c_01.hex Прошивка с изменённым расположением кнопок для платы-1 - укорочен от 1/10 до 1/20 сек. звук подтверждения
нажатия на кнопку ( обычный HEX формат)
Clock_4c_01.sfr ( то-же в формате программатора ProgCode)




+ +10 -
  • admin
  • 1
  • 6 564

Комментариев 1

  1. Офлайн
    Дмитрий
    Дмитрий 25 апреля 2017 11:25
    + 0 -

    Часы работают,но яркость отдельных сегментов не одинаковая.

VK:

Добавить комментарий

  • Яндекс.Метрика