Site icon Меандр – занимательная электроника

Кодовый замок на микроконтроллере PIC16F628A

Этот замок можно использовать для ограничения доступа в поме­щение, гараж, дом, сейф, шкаф. Его исполнительным устройством может служить механизм запирания двери автомобиля.

Устройство, схема которого изоб­ражена на Abb. 1, позволяет посред­ством введённого кода отпирать дверь и запирать её. Код хранится в EEPROM микроконтроллера DD1, а при включении питания устройства программа копирует его в оператив­ную память.

Рис. 1

Индикатор HG1 — четырёхразряд­ный семиэлементный светодиодный с общими катодами знакомест. В про­цессе набора кода цифры сдвигаются по нему справа налево. Если код состоит из пяти цифр, то при наборе его последней пятой цифры первая уходит за пределы индикатора. Тем не менее действуют все пять набранных цифр.

В исходной программе предвари­тельно записан нулевой код, который действует сразу после первого вклю­чения замка. Чтобы открыть замок, находящийся в этом состоянии, до­статочно убедиться, что его индикатор очищен, и нажать на кнопку SB8. Будут включены светодиод HL1 (им можно, например, освещать внутрен­ность сейфа) и зелёный светодиод HL3 (путь свободен). Затем кратко­временно, примерно на две секунды, будет включён исполнительный дви­гатель М1, который и откроет запор.

Для дальнейшей эксплуатации замка нулевой код нужно заменить новым секретным кодом, который должен находиться в интервале от 1 до 65535. Ввести его можно только при открытом замке при условии, что

на индикаторе нули. Для замены кода кратковременно нажмите на кнопку SB12. Индикатор очистится, включит­ся светодиод HL1. Введите новый код, нажмите на кнопку SB 12 и удер­живайте её нажатой около двух секунд. Светодиод HL1 будет выклю­чен, а индикатор HG1 очищен. Теперь новый код записан в EEPROM микро­контроллера.

В дальнейшем код можно заменять неоднократно. Если новый код был введён без предварительной очистки индикатора, но при нулях на нём, то светодиод HL1, сигнализируя о запи­си кода, погаснет на две секунды и включится снова. Однако индикатор очистится, а новый код будет записан в энергонезависимую память микро­контроллера.

Чтобы отпереть замок после смены кода, нужно будет очистить индикатор кратковременным нажатием на кнопку SB 12. Затем ввести именно этот код и нажать на кнопку SB8. Если код был набран правильно, но механика замка по какой-либо причине заела, можно нажимать на кнопку SB8 неоднократ­но. С каждым нажатием на неё двига­тель М1 будет включаться на отпира­ние.

Закрывают открытый замок кратко­временным нажатием на кнопку SB 12. Светодиод HL1 погаснет, а приблизи­тельно через две секунды индикатор HG1 очистится. Далее нажмите на кнопку SB8. На две секунды будет включён красный светодиод HL2, а на двигатель М1 подано напряжение противоположной подаваемому при открывании полярности. Запор за­кроется. Эту операцию можно выпол­нить только один раз после каждого отпирания. Повторное запирание не­возможно.

Если операции открывания и закрывания замка исполняются неправильно (одна вместо другой), то следует изменить полярность под­ключения двигателя М1. При первом включении замка на индикаторе HG1 могут появиться случайные цифры. Чтобы удалить их или исправить ошибку в наборе кода, необходимо кратковременно нажать на кнопку SB12.

На случай, если хранящийся в EEPROM микроконтроллера сменный код утерян, в его программной памя­ти имеется постоянный код, которым замок тоже можно отпереть. В прила­гаемой к статье программе он равен 45457. Изменить его можно только путём перепрограммирования микро­контроллера. Для этого нужно указать новое значение кода в строке

POSTKOD EQU .45457

исходного текста программы (файла ZAMOK.ASM). Эта строка находится в самом его начале. Предшествующая коду точка означает в данном случае, что это десятичное число. Значение постоянного кода должно находиться в пределах от 1 до 65535, в противном случае он действовать не будет. Пос­ле изменения постоянного кода про­грамму необходимо транслировать заново и загрузить в микроконтрол­лер полученный НЕХ-файл.

Fig. 2

Обратите внимание, что если на выходах RA0 и RA1 микроконтроллера одновременно будет установлен высокий уровень напряжения, все транзисторы мостового коммутатора VT4—VT7 откроются и произойдёт замыкание источника питания замка. При работе микроконтроллера по хорошо отлаженной программе это явление маловероятно, но вполне может произойти в процессе её отладки после внесения каких-либо изменений. Во избежание подобных случаев рекомендуется дополнить устройство узлом, схема которого показана на рис. 2, включив его в разрывы проводов, помеченных на рис. 1 крестами. Транзисторы VT8 и VT9 никогда не откроются одновре­менно, что предотвратит одновре­менное открывание транзисторов VT4-VT7.

Das Programm für den Mikro

Autor: А. ГЕТТЕ, г. Рязань

Exit mobile version