РадиоКот >Схемы >Цифровые устройства >Бытовая техника >
Часы, календарь, термометр.
Устройство собиралось на монтажной плате. В качестве контроллера применен всеми любимый ATtiny2313, индикатор 16х2 на HD44780, часы реального времени ds1307, датчик температуры ds18b20. Температура отображается с точностью до десятых градуса.
Индикатор был вынут из телефонного аппарата. Попался нерусифицированный и без подсветки. Сначала я только подключил индикатор. Затем добавил термометр, затем уже часы и календарь. Поэтому получилось то, что получилось.
Чтобы установить часы и календарь, нажимаем кнопку "*".
Нажав "*" один раз, попадаем в режим установки минут. Кнопками "+" и "-" устанавливаем нужное значение минут.
Нажав "*" второй раз, попадаем в режим установки часов.
Третий раз - для установки дня недели (он не отображается). Далее дата, месяц, год.
Нажимаем седьмой раз "*" - выход из режима установки.
Немного о программе.
Очень понравилась идея включаемых файлов. В отдельные файлы вынесены процедуры работы с шинами I2C, 1-wire и работы с LSD. Софт, большей частью, взят из статей: "Подключаем LCD к микроконтроллеру по 4-х битной шине" и "Термометр на микроконтроллере". Авторам огромное спасибо за эти статьи.
В основном цикле программы происходит только опрос кнопок. По прерыванию компаратора, примерно раз в секунду, микроконтроллер получает температуру, данные из часов преобразует и выводит на экран. В микроконтроллере данные из ds1307 сохраняются в оперативной памяти в переменной clock, из ds18b20 в переменной buffer. ds1307 по умолчанию не заведены и не идут, поэтому их нужно завести.
Fuse - биты устанавливаем на работу от внутреннего генератора. Частота 8МГц.
Файлы:
Прошивка с исходником и файл для Proteus.
Вопросы, как всегда в Форум.
Как вам эта статья?
|
Заработало ли это устройство у вас?
|
|
|
Эти статьи вам тоже могут пригодиться: