В последнее
время в радиолюбительской литературе
опубликовано много
описаний различных конструкций
на микроконтроллерах,
чаще всего
— семейства
PICmicro фирмы Microchip.
Не умаляя их достоинств,
автор решил напомнить, что
существуют и другие
м
икроконтроллеры, и сделал предлагаемый прибор на
одном
из них
— АТ89С2051 из семейства
MCS-51.
Микроконтроллеры
семейства МС5-51 —
несомненные чемпионы
среди восьмиразрядных
как по
числу разновидностей, так
и по числу компаний,
выпускающих их модификации. Первый
представитель этого семейства
—
Intel 8051 — был выпущен
еще
в 1980
г. Для своего времени
это очень
сложное изделие. На
его кристалле
128 тыс.
транзисторов, в
четыре раза больше,
чем в микропроцессоре Intel
8086, базовом для персональных
компьютеров IBM PC.
Удачный
набор периферийных устройств, возможность работы
с
внешней и
внутренней программной памятью и
приемлемая цена
обеспечили микроконтроллеру Intel
8051 большой
успех. Важную
роль сыграла
открытая политика фирмы
Intel, широко распространявшей лицензии
на производство приборов с
ядром 8051 среди
ведущих
полупроводниковых компаний мира: Philips, Siemens,
Intel,
Atmel, Dallas.
Temic, OW. AMD, MHS,
LG( Winbond,
Silicon Systems и
ряда других.
В СССР
микроконтроллеры семейства
MSC-51 выпускали в
Киеве (1816ВЕ31. 1816ВЕ51). Воронеже
(1830ВЕ31, 1830ВЕ51), Минске (1834ВЕЗ1)
и Новосибирске (1850ВЕ31).
Сегодня
во всем мире производят более
200
модификаций микроконтроллеров
этого семейства, начиная с
простых 20-выеодных
до сложнейших 100-выводных
с встроенными
АЦП, многочисленными
таймерами-счетчиками, аппаратными
умножителями и 64
Кбайт программной памяти на
одном кристалле. Все они
имеют общую систему
команд
и с точки зрения программиста
различаются
лишь числом
регистров специального назначения.
Когда
у автора
возникла необходимость защитить
подвал гаража
от промерзания,
дистанционно контрол
ируя и регулируя температуру
в нем, для блока
измерения температуры и управления
нагревателем был выбран
микроконтроллер
AT89C2051-24PI из упомянутого семейства. Ввиду
отсутст
вия в нем
энергонезависимой памяти данных для
хранения сведений
об установленном реж
име и допустимых
значениях температуры
пришлось применить
отдельную микросхему энергонезависимой
памяти AT24C02-10PI Обе микросхемы
рассчитаны на работу в
"индустриальном" интервале температуры
окружающей
среды (-40...+85 °С).
На
выбор
повлияло и
то, что суммарная стоимость
этих микросхем
в одной из
московских торговых
фирм вдвое
меньше цены
популярного микроконтроллера PIC16F84A-04I/P,
работающего в том же
температурном интервале.
Основные технические характеристики
Схема, приведен
ная на
рис. 1, стала почти классической
для
микроконтроллерных устройств
такого назначения. В микроконтроллер
DD1 загружена
программа, приведенная в
таблице.
Нагрузочная
способность выходов
примененного микроконтроллера
— 20 мА
при низком уровне
напряжения на них и всего
50 мкА при
высоком
поэтому светодиодные семиэлементные индикаторы HG1
и
HG2 выбраны
с общими анодами. Чтобы
сократить число
выводов микроконтроллера, необходимое
для подключения
индикаторов, программно
организована динамическая
индикация с длительностью
отображения каждого разряда 3
мс Элемент g (знак
"минус") индикатора HG
1.1
подключей вместо элемента h (десятичной
точки)
индикатора HG1.
2. так что фактически
индикация трехразрядная,
ее полный цикл
занимает 9
мс.
Нередко
на время
съема показаний датчиков,
вычисления температуры, записи данных
в EEPROM и других
сравнительно длинных операций
динамическую
индикацию приостанавливают, что воспринимается как
мерцание
индикаторов. Чтобы
исключить это неприятное явление,
программа опт
имизирована и работает с
жесткой привяз
кой к темпу
индикации.
Резисторы
R7-R14 ограничивают ток
катодов индикаторов HG1 и
HG2. Транзисторы VT1, VT2,
VT4 коммутируют их
аноды,
подключая поочередно к плюсу источника
питания.
Резисторы R1,
R2 ограничивают ток при
случайных замыканиях
идущих к датчикам
ВК1 и
ВК2 проводов,
длина которых
может достигать нескольких
метров. Так как эти
провода могут оказаться проложенными
в непосредственной близости
от
силовых кабелей, входы Р3.2
микроконтроллера
DD1 и
SCL микросхемы памяти DS1
защищены от
возможных импульсных помех
диодами VD5
и VD6.
Использование одного
и того же
вывода микроконтроллера для
связи с датчиком и для
управления памятью стало
возможным
потому, что эти функции никогда
не
выполняются одновременно.
Резистор R4 — нагрузочный
для линии
интерфейса 1-Wire согласно
которому между
микроконтроллером и
датчиком происходит
обмен командами и
данными.
Резистор R3 поддерживает
высокий логический уровень на
входе РЗ.З
микроконтроллера,
когда ни одна из кнопок
управления
SB1-SB3 не
нажата. Диоды VD7—VD9 устраняют
последствии
нажатия на несколько кнопок
одновременно. Транзистор
VT3 по
командам микроконтроллера
включает и выключает
реле К1, управляющее нагревателем
(или другим исполнительным устройством),
и сигнальный светодиод
HL1.
Диод VD10 защищает светодиод HL1
от
обратного напряжения.
Светодиод HL2, подключенный вместо
элемента h
индикатора HG2.2,
служит дополнительным
индикатором. Например,
он выключен,
когда на индикатор
выведены показания датчика ВК1,
и включен, когда выведены
показания датчика ВК2.
Узел
питания прибора состоит из выпрямителя
на
диодном мосте
VD1 —VD4 и стабилизатора
напряжения +5
В DA1.
Цифровые
датчики температуры
ВК1, ВК2
— DS1820
или более современные
DS18S20 — внесены в
Государственный реестр средств измерений
под№ 3169-02 и,
таким
образом, официально допущены к применению
в
РФ. В
некоторых случаях это имеет
решающее значение.
Датчики работают при
напряжении питания
3...
5.5 В,
потребляя в режиме
ожидания ток не более
1 мкА, а во
время отсчета температуры
и
формирования результата (эти процессы занимают
не
более 750
мс) — приблизительно 1
мА. Дискретность
результата измерения (0,
5 С)
может быть
уменьшена, если
прочитать значения регистров
датчика COUNT_REMAIN (остаток после
счета) и COUNT_PERC (число,
соответствующее одному градусу
Цельсия).
Зная их и TEMP READ
(температуру,
считанную из
датчика стандартным образом), более
точное ее
значение можно вычислить
по формуле:
Этим приемом
дискретность представления
температуры доведена до
0,1 °С.
Каждому
экземпляру датчиков указанных выше
типов присвоен уникальный
индивидуальный
номер длиной 48 двоичных разрядов,
хранящийся
в его
внутреннем ПЗУ. Это позволяет
соединять параллельно
практически неограниченное число
датчиков, взаимодей
ствуя с каждым
из них
отдельно.
В описываемом
устройстве микроконтроллер подает датчикам
первой команду Skip_ROM (ОССН),
предписывающую пропустить процедуру
проверки
индивидуального номера. Далее команда Convert_T
(44Н)
запускает процесс
измерения температуры сразу в
двух датчиках.
Через 750 мс,
необходимых для
завершения этого
процесса, микроконтроллер
подает команду Match_ROM
(55Н), сопровождаемую индивидуальным номером
одного из датчиков. В
результате на следующую
команду
Read_Scratchpad (ОВЕН) откликается и сообщает
микроконтроллеру
результат измерения
только этот датчик. Затем
(после команды
начальной установки) последовательность
команд Match_ROM
и Read_Scratchpad
повторяется для
второго датчика.
Полученные
данные микроконтроллер обрабатывает и
выводит на индикатор. Для
удобства незначащий нуль
на
индикатор не выводится, а знак
"минус",
если он
нужен, примыкает слева к
старшей значащей
цифре. Если при
связи с
датчиком зафиксирован
сбой, что
может означать неисправность
или отсутствие датчика, вместо
значения температуры будет выведено
(в стилизованном виде)
сообщение
"-dAt".
Кратковременными нажатиями на кнопку
SB1
переключают прибор
на индикацию показаний датчика
ВК1 или
ВК2. Если удерживать
эту кнопку
нажатой более
5 с,
будет включен режим
автоматического поочередного вывода показаний
датчиков с периодом 5
с. Выходят из
этого
режима коротким нажатием на ту
же
кнопку.
Терморегулятор
всегда работает по показаниям
датчика ВК2.
Нажатиями на кнопку
SB2 на
индикатор вызывают
значения температуры
в такой последовательности:
нижняя пороговая (при ней
происходит включение нагревателя) —
верхняя пороговая (при
ее
достижении нагреватель будет выключен) —
текущая.
Вывод на
индикатор верхней пороговой температуры
сопровождается включением
светодиода HL2.
Изменяют
значение пороговой
температуры,
выведенной в данный
момент на индикатор,
нажатиями на кнопки SBI
(в сторону увеличения) и
5ВЗ (в сторону
уменьшения).
Шаг изменения — 0,1
°С.
Если удерживать
соответствующую кнопку нажатой более
1 с,
значение начнет расти
или уменьшаться
со скоростью
30 шаго
в в секунду. Если
в течение 5 с
ни одна из кнопок
не нажималась, устройство
автоматически
переходит к индикации текущей температуры.
Чтобы
выключить терморегулятор,
достаточно установить пороговые значения
температуры равными
или нижнее больше
верхнего.
Прежде
чем начать
измерение температуры
и ее регулирование,
устройство должно "зарегистрировать" под
ключенные к нему датчики —
определить и запомнить
их
индивидуальные номера. Для регистрации датчики
подключают
поочередно (второй
на это время должен
быть отключен).
Включив прибор,
нажмите на кнопку
SB2 и
удерживайте ее
нажатой не менее
5 с до появления
на индикаторе стилизованного сообщения
"Pr1". свидетельствующего о
готовности
зарегистрировать подключенный датчик как ВК1.
Если
необходимо зарегистрировать
датчик как ВК2, кратковременно
нажмите на
кнопку SB2, что
приведет к
выводу на
индикатор сообщения
"Pr2". Еще одним
нажатием можно вернуть на
индикатор сообщение "Pr1" и
так далее.
Собственно
регистрация
происходит после нажатия на кнопку
SB1.
Если девять
попыток микроконтроллера связаться с
датчиком, определ
ить и запомнить его
индивидуальный номер
не принесут
успеха, будет
сделан вывод о
неисправности или отсутствии д
атчика, а на индикатор выведено
сообщение "-dAt". После
успешной
регистрации на индикаторе появится значение
измеренной
зарегистрированным датчиком
температуры. Описанную процедуру необходимо
выполнить и
в случае замены
одного или
обоих датчиков.
Данные о
датчиках и режимах
индикации хранятся в микросхеме
энергонезависимой памяти DS1.
Термометр-термостат
собран на односторонней
печатной
плате размерами 75x74 мм, показанной
на
рис. 2.
Задача добиться максимальной плотности
монтажа и
минимальных размеров платы
при ее
разработке не
ставилась. В
любительских условиях значительно
важнее простота изготовления, удобство
монтажа и налаживания. Очевидно,
применив малогабаритные элементы
и
двусторонний поверхностный монтаж, размеры платы
можно
было существенно
уменьшить. Но это не
дало бы
никаких эксплуатационных преимуществ.
Там, где
должен быть
установлен прибор,
свободного места для
него в избытке. Внешний
вид смонтированной и действующей
платы — на
рис.
3.
Прибор питают от сети
через
любой понижающий
трансформатор с напряжением на
вторичной обмотке
9 В при
токе 300
мА и
хорошей межобмоточной
изоляцией. Вместо сдвоенных
светодиодных индикаторов HLEC-D512GWB зеленого
цвета свечения можно применить
любые другие с
общим
анодом, от одноразрядных до счетверенных.
Естественно,
при соответствующей
корректировке печатной платы.
Диоды
1N4148 заменяют
любыми маломощными кремниевыми,
например, серии
КД522, а
диоды 1N4007
— выпрямительными на
ток не менее 300
мА, например, серии КД208
или КД209 Замена
транзисторов
КТ3107А -КТ502Б, КТ502Г, ВС327. Стабилизатор
7805
можно заменить
отечественным КР142ЕН5А или КР142ЕН5В.
Его желательно
снабдить небольшим теплоотводом.
Вместо микросхемы
АТ24С02 можно
применить АТ24С01А.
Частота кварцевого резонатора
может находиться в пределах
10... 12 МГц. Реле
К1 — с
обмоткой
на 12 В, током срабатывания
70
мА и
контактами, рассчитанными на ток
10 А
при напряжении 250
В. Вместо
электромагнитного репе
можно использовать
симисторный коммутатор с
оптической развязкой, собрав его
по схеме, подобной изображенной
на рис. 2
в
статье С. Корякова "Термометр с
функцией
таймера или
управления термостатом" ("Радио". 2003,
№ 10,
с. 26—28).
Устройство
помещено в
корпус из
изоляционного материала
с разъемами для
подключения датчиков (удобны трехконтактные
аудиоразъемы с диаметром штекера
3.5 мм),
сет
и и нагревателя.
Скачать печатную плату в формате Lay, исходные тексты на asm и прошивка -
Вы не можете скачивать файлы с нашего сервера
Автор И. ШАТАЛОВ
Источник: eldigi.ru