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