Современная электроника №7/2024

ИНЖЕНЕРНЫЕ РЕШЕНИЯ 49 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА • № 7 / 2024 ные ресурсы микроконтроллера задей - ствованы полностью. В алгоритме работы устройства в рабочем режиме и режиме записи можно выделить следующие проце - дуры (операции). Приведем их: ввод кодов в каналах № 1…№ 14. В случае совпадения рабочего (вво - димого) и эталонного кодов в соот - ветствующем канале выходной сиг - нал устанавливается в лог. 0; записи эталонных кодов. При этом эталонные коды каналов № 1…№ 14 записываются в EEPROM микрокон - троллера; экстренное отключение всех нагру - зок. При нажатии на кнопку S1 вы - ходные сигналы всех каналов при - мут уровень лог n. Кнопки клавиатуры устройства име - ют следующее назначение: S1 – кнопка экстренного отключения нагрузок, подключённых к каналам № 1…№ 4. Выходные сигналы кана - лов № 1…№ 14 после нажатия на дан - ную кнопку имеют уровень лог. 1. S2…S7 – кнопки для ввода кода досту - па. Данные кнопки обозначены циф - рами от «1» до «6». Вводимый код ин - дицируется на дисплее устройства. S8 (К) – кнопка выбора каналов № 1…№ 14. Если выбран канал № 1, на индикаторе HG1 индицируется цифра «1», если выбран канал № 2, на индикаторе HG5 индицируется цифра «2» и т.д. по таблице № 1. S9 (З/Р) – кнопка выбора режима для каналов № 1…№ 14: «запись» или «рабочий режим» для кана - лов № 1…№ 14. В режиме «запись» на дисплее во втором разряде (ин - дикатор HG2) будет индицировать - ся точка h. В рабочем режиме дан - ная точка погашена. Алгоритм работы устройства следу - ющий. В рабочем режиме, сразу после подачи питания, на дисплее индици - руется число «00001». Микроконтрол - лер DD4 ждёт ввода четырёхразрядно - го кода. Вначале необходимо записать эталонный код для каждого канала. Кнопкой S9 (З/Р) выбираем режим «запись». Вводимый с клавиатуры код для канала № 1 микроконтроллер индицирует на дисплее и записывает в ОЗУ. После ввода четырёхразрядного кода необходимо нажать любую кноп - ку из S2…S7. Код, индицируемый на дисплее, запишется в EEPROM-память микроконтроллера и будет эталонным для канала № 1. После записи на дис - плее в разрядах HG1…HG4 индициру - ются нули. Кнопкой S8 (К) выбираем канал и проделываем аналогичные операции, как для канала № 2, и т.д., до канала № 14. Для выхода из режима записи нужно нажать кнопку S9, точка h во втором разряде (индикатор HG2) – погаснет. Устройство готово к работе. Пусть выбран канал № 1. Вводимый с клавиатуры четырёхразрядный код микроконтроллер индицирует на дис - плее и записывает в ОЗУ. После ввода пятого разряда (после ввода четвёрто - го разряда нужно нажать любую кноп - ку из S2…S7) микроконтроллер побайт - но сравнивает его с четырёхразрядным кодом, записанным в EEPROM-памяти микроконтроллера (будем называть этот код эталонным). Если в рабочем режиме вводимый код совпал с эта - лонным кодом, то микроконтроллер на одну секунду подаёт сигнал на вклю - чение канала (устанавливает лог. 0 на одну секунду на выводе 2 микрокон - троллера DD4), заставляя выход 6 триг - гера DD1 изменить своё состояние. Если на выводе был лог. 1, то будет лог. 0, и наоборот. Работа каналов № 2…№ 14 совершенно аналогична. После ввода эталонного кода какого-либо канала микроконтроллер обнуляет дисплей и изменяет состояние канала. Если вводимый код не совпал с эталонным кодом, микроконтроллер сразу обнуля - ет дисплей (на дисплее индицируется число «00001») и не изменяет выходной сигнал. Целесообразно, чтобы доступ к кнопкам S1 и S9 был ограничен. В программе используются два пре - рывания: «Reset» и прерывание тай - мера Т0, обработчик которого начи - нается с метки TIM0. При переходе на метку «Reset» инициализируются стек, таймер, порты, а также флаги и пере - менные, используемые в программе. В обработчике прерывания таймера Т0 осуществляется: процедура опро - са кнопок S1…S8, функционирование динамической индикации, перекоди - ровка двоичного числа в код для ото - бражения информации на семисег - ментнных индикаторах устройства, а также временной интервал длитель - ностью пять секунд, необходимый для изменения выходных сигналов кана - лов (установка сигнала уровня лог. 0 на выводах соединителя Х1) и проце - дуры записи и чтения набранного кода в EEPROM-память микроконтроллера. В ОЗУ микроконтроллера с адреса $60 по адрес $64 организован буфер отобра - жения для динамической индикации. По адресу $60 находится число, опреде - ляющее номер канала. С адреса $61 по адрес $64 – вводимый код. Как уже упо - миналось выше, эталонный код каждо - го канала хранится в EEPROM-памяти программмикроконтроллера. Она орга - низована как отдельное адресное про - странство для хранения данных, в кото - ром каждый байт может быть отдельно прочитан или записан. Память EEPROM допускает не менее 100 000 циклов запи - си/стирания. Регистры, используемые для работы с EEPROM: регистр адреса – EEAR; регистр данных – EEDR; регистр управления – EECR. Эталонный код из EEPROM- микроконтроллера переписывается в ОЗУ микроконтроллера по адресам с $66 по $69. Флаги, задействованные в программе, находятся в регистрах R19 (flo) и R25 (flo1). Ниже приведены фраг - менты чтения эталонного кода (при его наборе) и фрагмент записи эталонно - го кода в EEPROM-микроконтроллера. Фрагмент программы чтения из EEPROM-микроконтроллера эталон - ного кода для каналов № 1, № 2, № 14: sbrc flo1,3 ;запись или набор кода? rjmp ACP ldi YL,low(RAM) ;набор кода ldi YH,high(RAM) ld t2,Y cpi t2,1 brne WWW2 ldi EEAL,10 rjmp SS1 mss1: rjmp ms1 WWW2: cpi t2,2 brne WWW3 ldi EEAL,15 rjmp SS1 . . . WWW14: cpi t2,14 Таблица 1. Числа и символы, определяющие номера каналов, которые индицируются на индикаторе HG1 № канала 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Число (символ), индицируемый на индикаторе HG1 1 2 3 4 5 6 7 8 9 A B C D E

RkJQdWJsaXNoZXIy MTQ4NjUy