РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Теги статьи: Часы

Студенческие часы на PIC18F452.

Автор: TripleKill
Опубликовано 07.12.2010

Как-то раз я перепутал учебные университетские недели, и из-за этого сильно опоздал на лабораторную. Потом я её сдал, но с тех пор захотел сделать напоминалку, которая бы показывала день недели и её номер. Ну а раз день недели, то почему бы и не дату со временем?
Изначально я хотел сделать эти часы не идеально точными, а скорее простыми в настройке, и в плане дальнейшего функционирования, поэтому имеющим опыт в области микроконтроллеров нижеприведённое, возможно, покажется сильно неоптимизированным. Что ж, опыта у меня меньше года...
Итак, схема.

Схема

В моём распоряжении находился только PIC18F452, поэтому в схеме использован он. Частота МК - 40 МГц (включен режим PLL). Временные отсчёты тактируются отдельным генератором с часовым кварцем, построенным на логике. Шесть кнопок разведены на порт D, к порту B подключен самый обычный дисплей от Winstar, 2х16 символов. Всё это дело вполне может работать от аккумулятора из сотового телефона, и если схему доработать, то можно сделать энергонезависимые часы с подзарядкой от сети. Но на этом я не концентрировался.
Несколько пояснений по меню. Собственно меню вызывается по нажатию на кнопку "Меню/Отмена". Нужный пункт меню вызываются нажатием "ОК/Выбор". Чтобы вернуться назад без сохранения изменений, после редактирования параметров нужно нажать "Меню/Отмена". Для сохранения параметров - соответственно "ОК/Выбор". Навигация при редактировании интуитивно понятна. Кнопки "<-" и "->" осуществляют перемещение курсора по разрядам редактируемого параметра, а "+" и "-" служат для изменения значения.
Плюсы:
- Редактирование отсчётных секундных интервалов до герца. Для регулировки хода часов не требуется менять прошивку. Установленное значение сохраняется в EEPROM микроконтроллера и не теряется даже при полном отсутствии питания.
- Автоматическое определение дня недели по формуле Зеллера. Достаточно установить дату, а остальное сделает МК.
- Определение високосного года, автоматическая корректировка количества дней в месяце, как при редактировании, так и в ходе работы (на длительном периоде не тестировалось, могут быть баги).
- Поразрядное редактирование всех числовых параметров.

Минусы:
-Хоть частота ЦП и относительно большая, но выполнение команд тоже занимает какое-то время, из-за этого секундная задержка становится меньше, чем 32768 Гц, остальное время отнимают вывод на дисплей и всякое редактирование.

Эмпирически установленная задержка равна 31847 тактов часового генератора. Прошивку я не пытался особо локализовывать, поэтому пункты меню написаны на английском.
Фото устройства на макетной плате:

Дисплей в разных состояниях:

Файлы:
Проект Proteus.
Проект microC.
Прошивка МК.

Вопросы, как обычно, складываем тут.




Эти статьи вам тоже могут пригодиться:

Тёплые ламповые часы на Нумитронах

Первичные часы 2 - микроконтроллер наносит ответный удар

Простые часы-ночник2

Часы - информатор для ПК

Часы на RGB матрицах + радио + BMP180+AM2321 +ПДУ

Первичные часы.

Часы, календарь, термометр.

Часы на PIC.

И снова говорящие - поющие часы. Суперсрочно!

Простые часы-ночник

Часы на светодиодных матрицах с драйверами MAX7219

Часы радиоприемник

МФУ для стола радиолюбителя

Реализованный проект часов на Tiny13a

Часы на газоразрядных индикаторах ИН-12Б

Часы "Always with you"

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

Часы "GadgetClock" для офисного стола

Простые часы на микроконтроллере.

Автомобильные часы.

Часы из амперметров

Одноламповые часы

Очень маленькое, но очень полезное устройство.

Миниатюрные часы на вакуумно-люминисцентном индикаторе ИВ-21

Часы на вакуумных лампах ИВ-12

Часы. Эллипс, Скелетон, RGB.

Просто часы

Простые часы на светодиодных матрицах.

Часы Super Clock

Карманные часы "MicroClock"