Схема представляет собой не сложный вариант цифровых электронных
часов с функцией термометра на основе микроконтроллера AT90S2313.
Для отображения времени используются светодиодные семисегментные
индикаторы подходящего размера, я использовал SC18-11GWA с высотой
цифр 45 мм. Частота обновления информации на индикаторах - 200 Гц.
Режимы будильника, таймера и т.п. не предусмотренны. Есть функция
цифровой поправки хода, она предназначена для коррекции хода часов,
если частота кварца отличается от номинальной. Число поправки
представляет собой изменение в секундах продолжительности самой
первой минуты каждых суток. Оно хранится со смещением в 50. В
таблице ниже приведены примеры влияния этого парамметра на ход
часов. Для удобства использования, при выключенном питании эта
поправка сохраняется в EEPROM.
Установка времени выполняется с помощью двух кнопок - первая
выбирает изменяемый параметр, вторая изменяет его значение.
Реализованы стандартные функции управления от кнопок, например
ускорение изменения параметра при продолжительном нажатии.
Инструкция, поясняющая настройку часов, приведена ниже.
Нажать кнопку 1 для входа в режим настройки (при включении
питания часы автоматически переходят в режим настройки, этот пункт
надо выполнять только если часы уже были ранее запущены и требуется
откорректировать их показания).
Кнопкой 2 установить требуемые показания разряда часов.
Нажать кнопку 1.
Кнопкой 2 установить требуемые показания разряда минут.
Нажать кнопку 1.
Кнопкой 2 установить предварительно расчитаное значения
цифровой поправки хода.
Нажать кнопку 1 для возврата в режим отображения времни. В
момент возврата внутренний счетчик секуд будет обнулен.
Регулировка яркости
Вторая кнопка также используется для выбора дневного или ночного
режима яркости, при нажатии на нее до нажатия на первую кнопку
яркость цифр уменшается. Востановление яркости произойдет
автоматически примерно через 8 часов, или при повторном нажатии.
Использование термометра
Если датчик температуры подключен к микроконтроллеру через кнопку,
при ее замыкании, микроконтроллер определяет наличие датчика и
выводит на индикатор измеренное значение температуры. При
размыкании кнопки происходит возврат в режим отображения времени,
если же кнопка остается замкнутой (или датчик подключен напрямую),
то температура отображается в течении 30 секунд, после чего каждые
5 секунд будет происходить переключение режима отображения
часы-термометр.
Влияние поправки хода
Значение параметра
Продолжительность первой минуты суток
30
80 сек.
40
70 сек.
50
60 сек.
70
40 сек.
75
35 сек.
Эта фукнция позволяет ускорить или замедлить ход часов от 1 до 50
секунд в сутки, и сделать точность хода не хуже 1 секунды за сутки,
или около 6 минут за год. Для достижения большей точности надо
использовать подстроечный конденсатор подключеный параллельно
кварцевому резонатору.
Обозначение разрядов индикатора, примененое в этой схеме можно
посмотреть здесь.
Кнопка SW1 предназначена для подключения датчика температуры. Можно
подключить несколько датчиков, каждый через свою кнопку, например
для измерения температуры в доме и на улице, или подключить один
датчик напрямую, без кнопки, все эти варианты поддерживаются
программой. Кнопками SW2 и SW3 выполняется настройка часов как
описано выше. Резисторы R1-R8 должны быть расчитаны на мощность 0,5
Вт. Конденсатор С5 надо разместить на минимальном растоянии от
выводов питания микроконтроллера, для дополнительной защиты от
помех в схему можно также добавть еще два таких же конденсатора
подключеных паралельно выводам питания микросхем D2, D3 (выводы 7 и
14). Точность часов настраивается изменением емкости конденсаторов
С3 и С4, или подключением дополнительного, параллельно кварцевому
резонатору, с емкостью 10...30 пФ. В качестве датчика температуры
исползьзуется микросхема DS18B20 или ее полный аналог. Использовать
неполный аналог, например DS1820 нельзя, т.к. из-за различий в
протоколе температура будет отображаться неправильно. Блок питания
часов на схеме не нарисован, он должен обеспечивать ток не менее
300 мА при напряжении 12-15 вольт.