- Родительская категория: Проекты
- Категория: Автоматика
- Автор: ARV
- Просмотров: 15654
Простейший циклический таймер
Недавно ко мне обратился человек из Индии... Попросил помочь - сделать простейший
Ну, я подумал и накорябал проектик, которым и хочу поделиться: большой пользы от него будет вряд ли, но и вреда не будет наверняка. Возможно, кому-то как раз потребуется, или кто из начинающих почерпнет для себя что-нибудь... В общем, смотрите сами.
Схема сграблена из "протеуса", служит только для общего представления. Для реального использования необходимо дополнить ее цепями питания, ключами для нагрузки и т.п.
Индикаторы с общим катодом, служат для отображения заданного (оставшегося) интервала времени. Индикатор мигает, пока таймер остановлен. Во время мигания индикатора кнопками UP/DN можно установить нужное время. После запуска отсчета индикатор мигать прекращает, и в это время кнопки UP/DN не работают.
{ads1}
Светодиод D2 дополнительно мигает во время рабочего режима таймера - по мне, так нужды в нем нет, но моему "клиенту" из жаркой Индии это было зачем-то надо.
МК тактируется от встроенного RC-генератора на 8 Мгц, однако для точного отсчета времени применен "часовой" кварц. Знатоки
Исходники прилагаются, правда, комментарии в них на английском (как я его понимаю). Но код очень прост. Увы, но код не является примером для подражания: я не ставил себе цель получить красивый и быстрый код, цель была - быстро получить результат. Соответсвтенно, код я бы сам оценил на троечку. Зато очень просто все, должно быть понятно даже новичку.
Код легко позволяет изменить распиновку МК: переназначить кнопки на другие линии другого порта (главное, все три кнопки на общем порту), аналогично перетасовать линии сегментов и общих катодов/анодов индикатора (опять же - все на одном порту), а линии управления нагрузкой и "индикации" можно разбросать произвольно. Кстати, переделать код на индикатор с общим анодом тоже очень просто. Все перечисленные "переделки" осуществляются путем редактирования файла config.h, и больше ничего делать не будет надо (для тасования сегментов служит leds7.h).
Успехов!