Ответов было не много...
Поэтому был создан кодовый замок с возможностью смены кода с клавиатуры.
Код хранится в энергонезависимой памяти микроконтроллера.
А в режим его изменения входим продолжительным нажатием на кнопку "*".
Список всех частей:
Грызём микроконтроллеры. Урок 1. Моргаем 8-ю светодиодами. CodeVision, Proteus, ISIS
Грызём микроконтроллеры. Урок 2. CodeVision и С
Грызём микроконтроллеры. Урок 3. Циклы, прерывания и массивы
Грызём микроконтроллеры. Урок 4. Мерим температуру или напряжение
Грызём микроконтроллеры. Урок 5. Кодовый замок
Грызём микроконтроллеры. Урок 6. Прошиваем МК
Грызём микроконтроллеры. Урок 7. Подключение к МК кнопок, клавиатуры, энкодера
Грызём микроконтроллеры. Урок 8. Программирование кнопок, клавиатуры, энкодера
Грызём микроконтроллеры. Урок 9. Клавиатура вглубину
Начнем этот урок с разбора оператора, который я забыл упомянуть в предыдущих статьях.
Оператор SWITCH.
Синтаксис:
switch (ключ)
{
case значение_1:
// операции, выполняемые если ключ равен значению_1
break; // выход из оператора swith, чтобы не выполнять последующие операции
case значение_2:
// операции, выполняемые если ключ равен значению_2
break; // выход из оператора swith, чтобы не выполнять последующие операции
case default: // не обязательный параметр, выполняется если ни одно значение не совпало с ключем
// операции, выполняемые если ключ не равен ни одному из значений
break; // выход из оператора swith, чтобы не выполнять последующие операции
}
Как видно, этот оператор стравнивает ключ со значениями, перечисленными после ключевых слов case и выполняет тот код, который нам требуется.

Так же, стоит усвоить новый тип переменной.
eeprom определение_типа имя_перемнной=начальное_значение;
Этой командой мы создаем переменную в энергонезависимой памяти EEPROM микроконтроллера. Начальное значение записывается в ячейки EEPROM только при программировании МК. А обращаться к этой переменной можно из любого места программы.
Но! Не советую часто записывать в EEPROM новые значения, т.к. эта память выдерживает около 100 000 циклов записи, после чего ее работоспособность производителем не гарантируется.
Поверьте, это не такая уж и большая цифра, если записывать новое значение, допустим, каждый раз при нажатии на какую-либо кнопку. В таком режиме наша конструкция проработает 2-3 года, после чего, даже при полностью исправном МК, потеряет возможность хранить данные без наличия питания...
Если нужно организовать хранение часто меняющейся информации, например, настроек регулятора громкости и тембра, то их лучше хранить в оперативной памяти, а в EEPROM записывать, к примеру, при выключении усилителя

Развернутого описания для самой программы не дам... Лентяй я

Тем долее, всё должно быть понятно по комментариям

Вот, собственно, ее текст:
Разумеется, тут многое можно доработать. Увеличить длинну кода и возможность вводить код произвольной длинны. Кое-где можно оптимизировать или вообще переделать.
Но эта программа - ничто иное, как пример простейшей реализации, чтобы помочь освоить МК новичкам!
А вот вопросы задаем на нашем любимом форуме

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