Как-то раз
я перепутал учебные университетские
недели, и
из-за этого сильно
опоздал на
лабораторную. Потом
я её
сдал, но с
тех пор захотел сделать
напоминалку, которая бы показывала
день недели и
её
номер. Ну а раз день
недели,
то почему
бы и не дату
со временем?
Изначально я хотел
сделать эти
часы не
идеально точными,
а скорее простыми
в настройке, и в
плане дальнейшего функционирования, поэтому
имеющим опыт в
области
микроконтроллеров нижеприведённое, возможно, покажется сильно
неоптимизированным.
Что ж,
опыта у меня меньше
года...
Итак, схема:
В моём
распоряжении находился
только PIC18F452,
поэтому в
схеме использован он.
Частота МК - 40
МГц (включен режим PLL).
Временные отсчёты тактируются
отдельным
генератором с часовым кварцем, построенным
на
логике. Шесть
кнопок разведены на порт
D, к
порту B подключен
самый обычный
дисплей от
Winstar, 2х16
символов. Всё это
дело вполне может раб
отать от аккумулятора из сотового
телефона, и если
схему
доработать, то можно сделать энергонезависимые
ча
сы с подзарядкой
от сети. Но на
этом я
не концентрировался.
Несколько
пояснений по
меню. Собственно
меню вызывается
по нажатию на
кнопку "Меню/Отмена". Нужный пункт
меню вызываются нажатием "ОК/Выбор".
Чтобы вернуться назад
без
сохранения изменений, после редактирования параметров
нужно
нажать "Меню/Отмена".
Для сохранения параметров -
соответственно "ОК/Выбор".
Навигация при редактировании
интуитивно понятна.
Кнопки ""
осуществляют перемещение
курсора по разрядам
редактируемого параметра, а "+"
и "-" служат для
изменения значения.
--colorstart:#33FF33-->
Плюсы:-
Редактирование отсчётных секундных интервалов до
герца.
Для регулировки
хода часов не требуется
менять прошивку.
Установленное значение сохраняется
в EEPROM
микроконтроллера и
не теряется
даже при полном
отсутствии питания.
- Автоматическое
определение дня недели по
формуле Зеллера. Достаточно
установить
дату, а остальное сделает МК.
-
Определение високосного
года, автоматическая корректировка количества
дней в
месяце, как при
редактировании, так
и в
ходе работы
(на длительном периоде
не тестировалось, могут быть
баги).
- Поразрядное редактирование
всех числовых параметров.
Минусы:-Хоть частота ЦП и относительно
большая,
но выполнение
команд тоже занимает какое-то
время, из-за
этого секундная задержка
становится меньше,
чем 32768
Гц, остальное
время отнимают вывод
на дисплей и всякое
редактирование.
Эмпирически установленная задержка
равна 31847 тактов
часового
генератора. Прошивку я не пытался
особо
локализовывать, поэтому
пункты меню написаны на
английском.
Фото устройства на макетной плате:
Дисплей в разных состояниях:
Проект
Proteus -
Вы не можете скачивать файлы с нашего сервераПроект
microC -
Вы не можете скачивать файлы с нашего сервераПрошивка МК
-
Вы не можете скачивать файлы с нашего сервера
Источник:
http://radiokot.
ru/