"DVDXpert" - компас в мире Hi-Fi и High End техники и другой stereo и home cinema аппаратуры.

ЭЛЕКТРОННЫЕ ЧАСЫТЕРМОМЕТР НА PIC16F84

IT & hi-tech
4.8 / 5 (66 оценок)

Предлагаемая здесь конструкция доступна для повторения даже неподготовленному радиолюбителю. Стоимость набора деталей достаточно низка, и все они доступны для приобретения, включая микроконтроллер PIC16F84 и две микросхемы фирмы Dallas Semiconductor, которые легко можно заказать по почте из любого региона России.

Часытермометр поочередно показывают на индикаторе текущее время и температуру окружающего воздуха. Использование шины 12С позволяет одновременно подключить до восьми независимых микросхем термометра/термостата DS1621, а также другие периферийные устройства. Поэтому предлагаемую конструкцию можно рассматривать как базовую, на основе которой можно построить устройства климатической автоматики, таймеры и т.д.

Принципиальная электрическая схема изображена на рис.313. Она содержит минимум пассивных элементов. Часы реального времени на микросхеме DS1307 имеют резервную трехвольтовую литиевую батарейку. В качестве кварцевого резонатора XTAL1 используется любой часовой кварц. Микросхема часов по цепям основного и резервного питания зашунтирована блокировочными керамическими конденсаторами 0,01 мкФ. При первом включении часов микроконтроллер настраивает микросхему таким образом, что на ее выходе SQW/OUT появляется частота 4000 Гц с внутреннего промежуточного делителя. Выход SQW/OUT имеет открытый коллек юр, поэтому к нему подключен подтягивающий резистор. Далее тактовые импульсы поступают на вход RA4/T0CKI для внешнего тактирования таймера и формирования таймерного прерывания. Ъсли часы будут предназначены для эксплуатации вне помещения со стабильной температурой, то для большей точности хода желательно предусмотреть термостатирование микросхемы часов и кварца или применить специальный термостабильный кварц. Можно, например, использовать кварц от неисправных

импортных автомобильных часов. Кварцы, применяемые в электронных часах иномарок, особенно японских, обычно имеют очень хорошую термостабильность.

Микросхема термометратермостата DS1621 соединяется со схемой часов всего лишь четырьмя проводниками, включая питание, поэтому легко может быть вынесена за пределы корпуса основной конструкции. Используя выводы А0...А1, можно перемычками задавать субадрес термометратермостата в адресном пространстве шины 12С. Можно подключить одновременно до восьми микросхем DS1621 на одну шину, с субадресами от ООО до 111. Одну из этих микросхем можно использовать в качестве собственного термостата часов, настроив ее соответствующим образом, и подключив к выходу Tout нагреватель через ключевой транзистор. При помощи остальных микросхем можно организовать сбор данных о температуре с нескольких точек. Это усовершенствование потребует незначительных изменений в программе и доступно даже начинающему разработчику.

Выходные каскады линий SCL и SDA у микросхем DS1307 и DS1621 построены с открытым коллектором, поэтому к этим линиям также подключены подтягивающие резисторы. Если подключить линии шины 12С к порту В микроконтроллера, то можно использовать его встроенные подтягивающие резисторы. В схеме, в качестве примера, показаны оба варианта подключения: с внешними подтягивающими резисторами к порту А (шина PC) и без внешних резисторов к порту В (кнопки S1 и S2).

Схема не критична к номиналу кварцевого резонатора в тактовом генераторе микроконтроллера. Можно использовать кварц номиналом от 3 до 4 МГц и емкости от 18 до 47 пФ при условии устойчивой генерации.

Модуль индикации подключается к базовой схеме по пяти проводам, включая питание, и легко может быть вынесен за пределы основной платы. Схема модуля индикации полностью идентична описанной выше.

На схеме не показан источник питания +5 В. Максимальный потребляемый ток схемы около 170 мА, из которых 98% приходится на регистры модуля индикации. Для повышения помехоустойчивости желательно заблокировать цепи питания керамическими конденсаторами 0,01 мкФ, подключенными вблизи выводов всех микросхем, особенно аккуратно следует защищать от помех микросхему DS1307. Батарейка ВТ1 любая трехвольтовая литиевая, аналогичная тем, которые устанавливают на материнские платы компьютеров. Можно использовать две последовательно соединенные батарейки"таблетки" от наручных часов. В режиме хранения информации ток, потребляемый микросхемой DS1307, сопоставим с током саморазряда батарейки, поэтому одной батарейки достаточно для резервирования питания в течение нескольких лет.

Описание приемов и тонкостей работы с микросхемами DS1307 и DS1621 выходит за рамки этой книги. Если вы хотите глубже изучить этот вопрос, обратитесь к pdfфайлам фирменной документации. Вы легко можете найти их в Iternet или получить в фирме, торгующей микросхемами производства Dallas Semiconductor, например, "АТОС", www atos ru.

Авторский вариант схемы смонтирован на макетной плате отрезками провода МГТФ. При разработке печатной платы к ней не предъявляются особые требования. Надо только учитывать, что микросхема часов критична к наводкам пс цепям питания, поэтому ее надо защитить блокировочными емкостями и выполнить подключение к общему проводу предельно коротким и широким проводником.

АЛГОРИТМ ПРОГРАММЫ

Алгоритм программы показан на рис.314. Логически программа разделена на две основных части: базовый модуль, который выполняется непрерывно и подпрограмму обработки таймерного прерывания.

Инициализация по сбросу

По сбросу программа стартует с адреса OOOOh и по первой команде переходит на метку mam, обходя подпрограмму обработки прерывания.

Далее происходит следующее.

•Происходит настройка портов вводавывода и регистра OPTION_REG.

•Включаются встроенные подтягивающие резисторы, преддели тель в режиме 1:8 подключается к таймеру TIMER0.

•Включается режим отображения времени

•Проверяется состояние несохраняемого бита настройки микросхемы часов DS1307. Если этот бит сброшен, значит питание микросхемы пропадало полностью, включая резервное, поэтому выполняется инициализация микросхемы часов и устанавливается время 00 часов 00 минут. В противном случае инициализация игнорируется.

•Инициализируется микросхема термометра.

•Разрешается таймерное прерывание и начинается индикация текущего времени.

После инициализации, в ожидании поступления таймерного прерывания, программа работает циклически. Поочередно опрашивается состояние кнопок "+час" и "+минута", обслуживается ЖКиндикатор, после чего цикл повторяется Поскольку для нормальной работы ЖК индикатора требуется постоянно инвертировать уровень на подложке, подпрограмма обслуживания индикатора включена в основной, достаточно быстрый цикл

т?

При нажатии одной из кнопок коррекции времени вызывается подпрограмма обработки нажатия соответствующей кнопки. Новое значение времени записывается в регистры часов и отображается на индикаторе. На время настройки разделительная точка перестает мигать, указывая, что часы находятся в режиме коррекции. Режим коррекции включается независимо от того, что отображается, время или температура.

Формирование таймериого прерывания

Как уже было сказано в описании схемы, на вход таймера RA4/T0CKI через внутренний предделитель 1:8 поступают импульсы с частотой 4000Гц с выхода SQW/OUT микросхемы часов реального времени DS1307. Прерывание формируется при переполнении таймера, т.е. при переходе состояния его счетчика из 255 в 0 (каждый 256й импульс). Поэтому частота следования прерываний составляет около двух Герц: (4000/8)/256= 1,95. С такой частотой происходит опрос часов или термометра, в зависимости от того, какой режим включен в этот момент. Частота следования прерывания никак не влияет на точность хода часов.

Обработка таймериого прерывания

После генерации таймериого прерывания сохраняются текущие значения регистров W и STATUS, сбрасывается флаг прерывания и очищается таймер. Затем проверяется состояние бита <1> переменной flags. Если бит сброшен, значит происходит отображение текущего времени. Значения часов и минут считываются из регистров микросхемы часов реального времени и конвертируются в формат отображения на индикаторе при помощи подпрограммы clock. Состояние бита, управляющего включением/выключением разделительной точки, меняется на противоположное. Таким образом, в режиме отображения времени разделительная точка мигает с частотой 1 Герц.

Если бит <1> переменной flags установлен в 1, значит считывается значение температуры из регистров микросхемы термометра и конвертируется в формат отображения при помощи подпрограммы celsio. Разделительная точка гасится и во время отображения температуры не включается.

Затем, и в том и в другом режиме, декрементируется счетчик секунд отображения текущего режима. Если время индикации данного режима истекло, значение бита режима индикации меняется на противоположное и в счетчик индикации загружается время индикации другого режима. При окончании режима индикации температуры, кроМе этого, отдается команда термометру начать конвертацию (измерение) очередного значения температуры. Измерение температуры производится только один раз за все время отображения потому, что микросхема термометра преобразует температуру в цифровое значение довольно долго. Время конвертации с учетом страховочного интервала может достигать 2х секунд, поэтому термометр просто не успеет измерить температуру за один цикл прерывания. Впрочем, для измерения температуры в нашем случае задержка в несколько секунд не играет никакой роли и сопоставима с тепловой инерцией самой микросхемы.

Обслуживание ЖКиндикатора

Подпрограмма поддержки отображения на ЖКиндикаторе взята из предыдущего пункта, где описывалась конструкция ЖКдисплея.

Поддержка шины 12С

Для работы с шиной PC использованы свободно распространяемые в Internet подпрограммы. Не имеет смысла подробно описывать в этой книге протокол шины PC и библиотеки для работы с ней. Для приведенной здесь программы многое (надеюсь) очевидно из комментариев листинга. Если у когото появится желание более подробно изучить этот вопрос, то работа с шиной PC очень подробно описана в документации к микросхемам DS1307 и DS1621. Распространяемые в Internet библиотеки зачастую также имеют подробные комментарии и файлы описаний.


Еще по теме:
 ДРАЙВЕР ЖК ДИСПЛЕЯ НА ОТЕЧЕСТВЕННЫХ ДЕТАЛЯХ и ПРИНЦИП РАБОТЫ ЖК ИНДИКАТОРА
 ГЕНЕРАЦИЯ ОБЪЕКТНЫХ МОДУЛЕЙ (ФАЙЛОВ)
 Что же такое цифровое и аналоговое телевидение и чем они отличаются?
 ПРОГРАММЫ И СХЕМЫ ПИШЕМ ПЕРВЫЕ ПРОГРАММЫ
 Интерактивное оборудование

Добавить комментарий:
Введите ваше имя:

Комментарий:

Защита от спама - решите пример: