Микроконтроллер ATmega16 и EEPROM

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

К каким ножкам микроконтроллера ATmega16 подключены тактовые кнопки?

PD0 и PD1

Что подключено к выходам PC0-PC7 микроконтроллера?

Семисегментный индикатор

Где хранится значение переменной, которое отображается на индикаторе?

В памяти EEPROM

Какое действие выполняется при нажатии кнопки на ножке PD0?

<p>Инкремент переменной (A), Запись значения в EEPROM (B)</p> Signup and view all the answers

Что происходит при нажатии кнопки на ножке PD1?

<p>Считывание значения из EEPROM (C)</p> Signup and view all the answers

Если переменная после инкремента становится равной 10, то её значение обнуляется.

<p>True (A)</p> Signup and view all the answers

Какая библиотека используется для работы с памятью EEPROM?

<p>avr/eeprom.h</p> Signup and view all the answers

Какая функция используется для считывания значения из EEPROM?

<p>eeprom_read_byte()</p> Signup and view all the answers

Какая функция используется для записи значения в EEPROM?

<p>eeprom_write_byte()</p> Signup and view all the answers

Какая функция используется для инициализации аппаратных средств микроконтроллера?

<p>init()</p> Signup and view all the answers

Что происходит в бесконечном цикле программы?

<p>Проверка состояния кнопок, инкремент переменной, запись в EEPROM, считывание из EEPROM и отображение значения на индикаторе</p> Signup and view all the answers

EEPROM - это энергозависимая память.

<p>False (B)</p> Signup and view all the answers

Flashcards

EEPROM

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

eeprom_write_byte()

Функция для записи данных в память EEPROM.

eeprom_read_byte()

Функция для чтения данных из памяти EEPROM.

eeprom_var

Переменная, хранящая данные в памяти EEPROM.

Signup and view all the flashcards

s

Переменная, значение которой увеличивается на единицу.

Signup and view all the flashcards

s_read

Переменная, в которую считывается значение из EEPROM.

Signup and view all the flashcards

EEMEM

Специальный атрибут, который говорит компилятору, что переменная должна храниться в памяти EEPROM.

Signup and view all the flashcards

init()

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

Signup and view all the flashcards

while (1)

Бесконечный цикл, в котором выполняются основные этапы работы программы.

Signup and view all the flashcards

PIND & (1 << PD0)

Проверка состояния кнопки, подключенной к ножке PD0.

Signup and view all the flashcards

s++

Увеличение значения переменной s на единицу.

Signup and view all the flashcards

if (s >= 10) { s = 0; }

Установка значения переменной s в 0, если она больше или равна 10.

Signup and view all the flashcards

PIND & (1 << PD1)

Проверка состояния кнопки, подключенной к ножке PD1.

Signup and view all the flashcards

eeprom_write_byte(&eeprom_var, s)

Запись текущего значение переменной s в память EEPROM.

Signup and view all the flashcards

s_read = eeprom_read_byte(&eeprom_var);

Считывание текущего значения переменной из памяти EEPROM.

Signup and view all the flashcards

PORTC = seven_segment_values[s_read];

Вывод значения переменной на семисегментный индикатор.

Signup and view all the flashcards

seven_segment_values[]

Массив значений для отображения цифр 0-9 на семисегментном индикаторе.

Signup and view all the flashcards

PD0

Внешняя ножка микроконтроллера, к которой подключена кнопка.

Signup and view all the flashcards

PD1

Внешняя ножка микроконтроллера, к которой подключена кнопка.

Signup and view all the flashcards

PC0-PC7

Внешние ножки микроконтроллера, к которым подключен семисегментный индикатор.

Signup and view all the flashcards

PORTD = 0х03

Подтягивающий резистор, который устанавливает логическую единицу на ножке порта, если кнопка не нажата.

Signup and view all the flashcards

Логический ноль

Логический уровень "0" (низкий уровень) на входной ножке микроконтроллера.

Signup and view all the flashcards

Логическая единица

Логический уровень "1" (высокий уровень) на входной ножке микроконтроллера.

Signup and view all the flashcards

Порт D

Порт ввода-вывода микроконтроллера, к которому подключены кнопки.

Signup and view all the flashcards

Порт C

Порт ввода-вывода микроконтроллера, к которому подключен семисегментный индикатор.

Signup and view all the flashcards

Семисегментный индикатор

Устройство, которое отображает цифры.

Signup and view all the flashcards

ATmega16

Микроконтроллер, управляющий работой системы.

Signup and view all the flashcards

SimulIDE

Программная среда для моделирования работы электронных схем.

Signup and view all the flashcards

Переключатели - Кнопка

Компонент в SimulIDE, который моделирует кнопку.

Signup and view all the flashcards

Выходы - Светодиоды - 7-сегментный индикатор

Компонент в SimulIDE, который моделирует семисегментный индикатор.

Signup and view all the flashcards

Источники - Земля (0 Вольт)

Компонент в SimulIDE, который моделирует землю.

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 - переменная для считывания значения из EEPROM
    • eeprom_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.

Quiz Team
Use Quizgecko on...
Browser
Browser