» » Грызем микроконтроллеры. Урок 5. Кодовый замок.

 
 
 

Грызем микроконтроллеры. Урок 5. Кодовый замок.

Разместил Spirit 26 декабря 2008. Просмотров: 34 331

Третий свой урок я начинал с вопроса "А какую конструкцию на основе МК хотите создать ВЫ?"

Ответов было не много...
Поэтому был создан кодовый замок с возможностью смены кода с клавиатуры.

Код хранится в энергонезависимой памяти микроконтроллера.
А в режим его изменения входим продолжительным нажатием на кнопку "*".

Начнем этот урок с разбора оператора, который я забыл упомянуть в предыдущих статьях.

Оператор SWITCH.

Синтаксис:

switch (ключ)
{
case значение_1:
// операции, выполняемые если ключ равен значению_1
break; // выход из оператора swith, чтобы не выполнять последующие операции

case значение_2:
// операции, выполняемые если ключ равен значению_2
break; // выход из оператора swith, чтобы не выполнять последующие операции

case default: // не обязательный параметр, выполняется если ни одно значение не совпало с ключем
// операции, выполняемые если ключ не равен ни одному из значений
break; // выход из оператора swith, чтобы не выполнять последующие операции
}

Как видно, этот оператор стравнивает ключ со значениями, перечисленными после ключевых слов case и выполняет тот код, который нам требуется. bully


Так же, стоит усвоить новый тип переменной.

eeprom определение_типа имя_перемнной=начальное_значение;

Этой командой мы создаем переменную в энергонезависимой памяти EEPROM микроконтроллера. Начальное значение записывается в ячейки EEPROM только при программировании МК. А обращаться к этой переменной можно из любого места программы.

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

Если нужно организовать хранение часто меняющейся информации, например, настроек регулятора громкости и тембра, то их лучше хранить в оперативной памяти, а в EEPROM записывать, к примеру, при выключении усилителя :smile:



Развернутого описания для самой программы не дам... Лентяй я winked
Тем долее, всё должно быть понятно по комментариям fellow

Вот, собственно, ее текст:

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

А вот вопросы задаем на нашем любимом форуме bully
Владимир (Spirit)
Старый Оскол
Профиль Spirit
Электронщик-практик, в основном занимаюсь микроконтроллерами. Есть неплохой опыт и в аналоговой технике (все мы начинали с УМЗЧ =)).
Одержим идеей автоматизации жилища а-ля "Умный дом" =)
 

Понравилось? Палец вверх!

  • всего лайков: 17

Поделись с друзьями!

Связанные материалы:


Визуализация для микроконтроллера. Часть 1. OLED дисплей 0.96" (128х64) на SSD1306

Добрый день, друзья! Эта статья открывает цикл, посвящённый средствам визуального отображения...

Беспроводной канал связи 2,4 ГГц на базе трансивера nRF24L01+ от Nordic

Продолжаем разговор. Как-то раз мы с пацанами решили соединить радио-модуль «nRF24L01+» вот с таким...

Программирование микроконтроллеров в AtmelStudio 6. Часть 2. Одна программа на

Для радиолюбителей, которые до определенного времени не использовали микроконтроллеры в своих...

Небольшой мастер-класс по изготовлению корпуса лампового усилителя

Как известно, в кругах радиолюбителей макеты усилителей частенько так и остаются макетами....

"Кубики" для автолюбителя: ИБП 5В, БП 12В, сенсорный выключатель обгонной камеры

Вообще, любовь — страшная сила. Особенно когда это любовь к машине. Хочется, чтоб твоя ласточка...

Универсальный вольтметр - амперметр на PIC16F676 с открытым программным кодом. Часть

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

Сделай сам лабораторный импульсный блок питания. Часть 3. ЛБП на таймерах 555

Таймеры так же заслуживают внимания в деле строительства лабораторных источников питания. Обладая...

Taschibra (Ташибра, Tashibra). Лабораторный импульсный блок питания. Часть 2. ЛБП на

Продолжая тему о быстром изготовлении лабораторного блока питания (далее ЛБП) из доступных...

Проект DMX512. Микроконтроллер управляет профессиональным шоу. Ч.3

Я думаю, что прочитав теоретическую часть, в которой не всё сразу понятно, лучше сразу потихонечку...

Грызем микроконтроллеры. Урок заключительный. Прошивка.

Ну вот, писать программы для микроконтроллеров мы научились. Работоспособность прошивки тоже...

Грызем микроконтроллеры. Урок 3.

Эту статью я начну с провокационного вопроса… А какую конструкцию на основе МК хотите создать ВЫ? ...

Грызем микроконтроллеры. Урок 2.

Предлагаю продолжить изучение микроконтроллеров… Второй урок будет посвящен по большей части...
Информация
Вы не можете участвовать в комментировании. Вероятные причины:
— Администратор остановил комментирование этой статьи.
— Вы не авторизовались на сайте. Войдите с паролем.
— Вы не зарегистрированы у нас. Зарегистрируйтесь.
— Вы зарегистрированы, но имеете низкий уровень доступа. Получите полный доступ.