Podcast
Questions and Answers
К каким ножкам микроконтроллера ATmega16 подключены тактовые кнопки?
К каким ножкам микроконтроллера ATmega16 подключены тактовые кнопки?
PD0 и PD1
Что подключено к выходам PC0-PC7 микроконтроллера?
Что подключено к выходам PC0-PC7 микроконтроллера?
Семисегментный индикатор
Где хранится значение переменной, которое отображается на индикаторе?
Где хранится значение переменной, которое отображается на индикаторе?
В памяти EEPROM
Какое действие выполняется при нажатии кнопки на ножке PD0?
Какое действие выполняется при нажатии кнопки на ножке PD0?
Что происходит при нажатии кнопки на ножке PD1?
Что происходит при нажатии кнопки на ножке PD1?
Если переменная после инкремента становится равной 10, то её значение обнуляется.
Если переменная после инкремента становится равной 10, то её значение обнуляется.
Какая библиотека используется для работы с памятью EEPROM?
Какая библиотека используется для работы с памятью EEPROM?
Какая функция используется для считывания значения из EEPROM?
Какая функция используется для считывания значения из EEPROM?
Какая функция используется для записи значения в EEPROM?
Какая функция используется для записи значения в EEPROM?
Какая функция используется для инициализации аппаратных средств микроконтроллера?
Какая функция используется для инициализации аппаратных средств микроконтроллера?
Что происходит в бесконечном цикле программы?
Что происходит в бесконечном цикле программы?
EEPROM - это энергозависимая память.
EEPROM - это энергозависимая память.
Flashcards
EEPROM
EEPROM
Тип памяти, который сохраняет данные при отключении питания. Используется для хранения настроек и других данных, которые необходимо сохранить между включениями устройства.
eeprom_write_byte()
eeprom_write_byte()
Функция для записи данных в память EEPROM.
eeprom_read_byte()
eeprom_read_byte()
Функция для чтения данных из памяти EEPROM.
eeprom_var
eeprom_var
Signup and view all the flashcards
s
s
Signup and view all the flashcards
s_read
s_read
Signup and view all the flashcards
EEMEM
EEMEM
Signup and view all the flashcards
init()
init()
Signup and view all the flashcards
while (1)
while (1)
Signup and view all the flashcards
PIND & (1 << PD0)
PIND & (1 << PD0)
Signup and view all the flashcards
s++
s++
Signup and view all the flashcards
if (s >= 10) { s = 0; }
if (s >= 10) { s = 0; }
Signup and view all the flashcards
PIND & (1 << PD1)
PIND & (1 << PD1)
Signup and view all the flashcards
eeprom_write_byte(&eeprom_var, s)
eeprom_write_byte(&eeprom_var, s)
Signup and view all the flashcards
s_read = eeprom_read_byte(&eeprom_var);
s_read = eeprom_read_byte(&eeprom_var);
Signup and view all the flashcards
PORTC = seven_segment_values[s_read];
PORTC = seven_segment_values[s_read];
Signup and view all the flashcards
seven_segment_values[]
seven_segment_values[]
Signup and view all the flashcards
PD0
PD0
Signup and view all the flashcards
PD1
PD1
Signup and view all the flashcards
PC0-PC7
PC0-PC7
Signup and view all the flashcards
PORTD = 0х03
PORTD = 0х03
Signup and view all the flashcards
Логический ноль
Логический ноль
Signup and view all the flashcards
Логическая единица
Логическая единица
Signup and view all the flashcards
Порт D
Порт D
Signup and view all the flashcards
Порт C
Порт C
Signup and view all the flashcards
Семисегментный индикатор
Семисегментный индикатор
Signup and view all the flashcards
ATmega16
ATmega16
Signup and view all the flashcards
SimulIDE
SimulIDE
Signup and view all the flashcards
Переключатели - Кнопка
Переключатели - Кнопка
Signup and view all the flashcards
Выходы - Светодиоды - 7-сегментный индикатор
Выходы - Светодиоды - 7-сегментный индикатор
Signup and view all the flashcards
Источники - Земля (0 Вольт)
Источники - Земля (0 Вольт)
Signup and view all the flashcards
Study Notes
Работа с памятью EEPROM
- Микроконтроллер ATmega16 используется для работы с памятью EEPROM
- Тактовые кнопки подключены к PD0 и PD1
- Семисегментный индикатор подключен к PC0-PC7
- Значение переменной, хранящейся в EEPROM, постоянно отображается на индикаторе
- Нажатие кнопки PD0 увеличивает программную переменную (инкремент)
- Изменённое значение сохраняется в EEPROM
- Нажатие кнопки PD1 считывает значение из EEPROM и отображает его на индикаторе
- Если переменная достигает значения 10, она обнуляется.
Схема в SimulIDE
- Используются элементы: кнопки, семисегментный индикатор, земля
- Кнопки подключены к PD0/PD1 и земле
- В схеме SimulIDE моделируется работа микроконтроллера ATmega16
- Схема позволяет отследить взаимодействие с памятью EEPROM
Подключение библиотек и инициализация
- Библиотека
avr/eeprom.h
используется для работы с EEPROM - Глобальные переменные объявлены:
s
- переменная, увеличивающаяся при нажатии кнопкиs_read
- переменная для считывания значения из EEPROMeeprom_var
- переменная в EEPROM (используется специальный атрибут EEMEM)
- Функция
void init(void)
используется для инициализации аппаратных средств (порты C и D) и начального значения переменнойs
Формирование бесконечного цикла
-
Главная функция
main()
содержит бесконечный циклwhile(1)
-
Цикл проверяет состояние кнопок PD0 и PD1
-
При нажатии PD0: переменная
s
увеличивается и сохраняется_delay_ms()
задержка -
При нажатии PD1: значение из EEPROM записывается в
s_read
и отображается на индикаторе -
number[]
- массив значений для индикатора -
Используется функция
eeprom_write_byte()
для записи в EEPROM иeeprom_read_byte()
для считывания. -
Значение, хранящееся в EEPROM, отображается на индикатор. Значение в EEPROM сохраняется при выключении питания.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.