СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №4/2012
ным 64 (в регистр TCCR0 записано число 3). В основной программе осуществля ется включение элементов индикатора HG1. Обработчик прерывания таймера Т0 выполняет процедуру опроса кно пок S1 – S8, обслуживает динамичес куюиндикацию, запись секретного ко да в ЭСППЗУ, чтение секретного кода из ЭСППЗУ, перекодировку двоичного числа в код для отображения инфор мации на индикаторах устройства, а также формирует временной интервал 5 с, необходимый для включения со леноида. В ОЗУ микроконтроллера с адреса $61 по адрес $70 организован буфер отображения для динамической инди кации. Ниже приведено распределе ние адресного пространства в ОЗУ микроконтроллера: ● RAM= $60 – адрес начала ОЗУ микро контроллера; ● $61 – $64 – адреса, где хранится код для открывания замка и символ «З». Эти адреса выводятся на индикацию в режиме № 1 (буфер № 1); ● $66 – $69 – адреса, где хранится код, считываемый из ЭСППЗУ, и символ «З». Эти адреса выводятся на индика цию в режиме № 3 (буфер № 2); ● $6C – $70 – адреса, где хранятся сим волы «–» при скрытом наборе кода и символ «З»; эти адреса выводятся на индикацию в режиме №1 (буфер № 3). Флаги, задействованные в програм ме, находятся в регистрах R19 (flo) и R25 (flo1). Разработанная на ассем блере программа занимает порядка 1200 байт памяти программ. Программа для термометра является более сложной. В ней используются три прерывания: Reset, прерывание таймера Т0, обработчик которого на чинается с метки TIM0_OVF, и преры вание АЦП, обработчик которого на чинается с метки ADCC. При переходе на метку Reset инициализируются стек, таймер, порты, регистры одной секунды и одной минуты, а также флаги и переменные, используемые в программе. Формирование точных временных интервалов длительнос тью 1 с осуществляется с помощью прерываний от таймера Т0 и счётчи ков на регистрах R20 (sek1) и R21 (min1). В основной программе проис ходит счёт текущего времени, инкре мент и декремент устанавливаемого времени таймера и включение звуко вого сигнала. В обработчике прерывания таймера Т0 происходит счёт одной секунды, счёт одной минуты, опрос клавиатуры, функционирование динамической ин дикации, инициализация трёх кана лов АЦП, перекодировка двоичного числа значений времени в код для отображения информации на индика торах, блок периодического включе ния точки h индикатора HG3.2 в режи ме «таймер». После запуска АЦП, микроконтрол лер DD2 переводится в ждущий режим (Idle) командой sleep. Из ждущего ре жима микроконтроллер DD1 выводит ся прерыванием АЦП. В обработчике прерывания АЦП очищается содержи мое регистра управления АЦП, что останавливает его работу и запреща ет прерывания. В ОЗУ микроконтрол лера с адреса $60 по $73 организован буфер отображения для динамической индикации. Разработанная на ассем блере программа занимает порядка 3800 байт памяти программмикрокон троллера. Ниже приведено распределение ад ресного пространства в ОЗУ микро контроллера: ● RAM = $60 – начальный адрес ОЗУ микроконтроллера; ● $60 – $64 – адреса, где хранится теку щее значение времени таймера в ми нутах. Эти адреса выводятся на инди кацию в режиме «таймер»; ● $65 – $69 – адреса, где хранится изме ренное значение температуры для канала№1 и символ « ° С». Эти адреса выводятся на индикацию в режиме «температура 1»; ● $6А – $6Е – адреса, где хранится изме ренное значение температуры для канала№2 и символ « ° С». Эти адреса выводятся на индикацию в режиме «температура 2»; ● $6F – $73 – адреса, где хранится изме ренное значение температуры для канала№3 и символ « ° С». Эти адреса выводятся на индикацию в режиме «температура 3»; ● RAM + $40 – адреса, где хранится ре зультат преобразования АЦП для ка нала № 1; ● RAM + $45 – адреса, где хранится ре зультат преобразования АЦП для ка нала № 2; ● RAM + $49 – адреса, где хранится ре зультат преобразования по форму ле (1) для канала № 1. ● RAM + $4Е – адреса, где хранится ре зультат преобразования по форму ле (1) для канала № 2; ● RAM + $50 – адреса, где хранится ре зультат преобразования АЦП для ка нала № 3; ● RAM + $55 – адреса, где хранится ре зультат преобразования по форму ле (1) для канала № 3. При инициализации, во все разря ды портов микроконтроллера DD1 записываются лог. 1. Твердотельное реле U1 разомкнуто, нагрузка отклю чена. Нагрузка подключается к уст ройству через соединитель Х3 ти па МРW 2 (ответная часть розетки MHU 2). Цепь управления соленои да подключается к соединителю Х1. Питающее напряжение +5 В посту пает на плату устройства через со единитель Х7. Сетевое напряжение подаётся с соединителя Х2 через предохранители FU1, FU2 (ВП1 2, 10 А/250 В). Номинальное значение тока предохранителей определяется нагрузкой. Параметры твердотельного реле S202ТО2: максимальный ток нагрузки 2 А, управляющий ток 8 мА; напряже ние изоляции 3000 В. Для включения более мощной нагрузки можно ис пользовать реле типа PF480D25. На дисплее термометра выделен раз ряд, отображающий символ « ° С» (ин дикатор HG5) на фоне остальных раз рядов интерфейса; на дисплее замка выделен разряд, отображающий сим волы «З» и «О» (индикаторHG8). Поэто му для данных разрядов выбран семи сегментный индикатор красного цвета HDSP F501. Индикаторы HG3, HG4, HG6, HG7 типа DA56 11GWA зелёного цвета; SA1 – галетный переключатель типа ПГ2 – 21 – 2П4НВК. Тумблер SA2 типа МТД3. После подачи питания на устрой ство, для настройки термометра необходимо, вращая движок пере менного резистора R56, установить опорное напряжение на выводе 32 микроконтроллера DD2, равное 4 ± 0,1 В. Замок не требует настройки и наладки. Л ИТЕРАТУРА 1. http:// www.atmel.com . 2. Бродин В.Б., Шагурин И.И. Микроконтрол леры: Архитектура, программирование, интерфейс. ЭКОМ, 1999. 3. Баранов В.Н. Применение микроконтрол леров AVR: схемы, алгоритмы, программы. Додека ХХI, 2006. 4. Белов А.В. Создаем устройства на мик роконтроллерах. Наука и техника, 2007. ПРАКТИЧЕСКАЯ ЭЛЕКТРОНИКА 50 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 4 2012 © СТА-ПРЕСС
RkJQdWJsaXNoZXIy MTQ4NjUy