
- •«Встроенные системы на микроконтроллере Atmega16»
- •Оглавление
- •Введение. Управляющие системы на микроконтроллерах.
- •Характеристика микроконтроллеров семейства avr
- •1.1 Особенности микроконтроллеров
- •1.2 Характеристики микроконтроллера aTмega16
- •1.3 Условное графическое обозначение микроконтроллера
- •2 Архитектура микроконтроллера
- •2.1 Структура микроконтроллера
- •2.2 Организация программной памяти
- •Организация памяти данных
- •2.4 Арифметико-логическое устройство и регистр состояния процессора
- •Методы адресации. Форматы команд
- •Система команд
- •2.6.1 Команды передачи данных (пересылки)
- •2.6.2 Команды передачи управления
- •2.6.3 Команды арифметики и логики (вычислительные)
- •2.6.4 Команды сдвигов и операций с битами
- •2.7 Функционирование конвейера
- •3 Встроенные устройства
- •3. 1 Параллельные порты ввода/вывода
- •Подсистема прерываний микроконтроллера
- •Регистр флагов прерываний таймеров/счетчиков – tifr
- •Таймеры/счетчики
- •Общие сведения
- •Таймер/счетчик т0.
- •3.3.3 Таймер/счетчик т1.
- •Сторожевой таймер (Watchdog Timer).
- •3.4 Последовательные интерфейсы -spi и uart
- •3.4.1 Последовательный периферийный интерфейс - spi
- •3.4.2 Uart - универсальный последовательный порт
- •3.5 Аналоговый компаратор и ацп
- •3.5.1 Аналоговый компаратор
- •3.5.2 Аналого-цифровой преобразователь
- •3.6 Энергонезависимая память данных
- •4 Понятия о языках программирования микроконтроллеров
- •4.1 Язык Ассемблер
- •4.2 Язык си
- •4.2.1 Типы данных, объявление данных
- •4.2.2 Операторы
- •4.2.3 Функции
- •4.2.4 Оператор if-else (ветвления )
- •{Группа операторов 1}
- •Пример:
- •4.2.5 Оператор switch
- •4.2.6 Операторы циклов
- •Оператор цикла for
- •Тело цикла
- •Оператор while
- •Операторы тела цикла
- •4.2.7 Указатели
- •4.2.8 Директивы препроцессора
- •5 Взаимодействие микроконтроллера с объектом управления
- •5.1 Формирование временных интервалов (задержек)
- •5.1.1 Программный способ формирования временных интервалов на языке Ассемблер
- •Ext_l: ldi r17, X ;х – число внутренних циклов
- •Ext_l: ldi r17, 53 ;Загрузка в r17 константы внутреннего цикла
- •Программный способ формирования временных интервалов на языке си
- •5.2 Генерация импульсных сигналов управления с использованием программных задержек
- •5.2.1 Генерация последовательности импульсов с использованием программных задержек
- •5.2.2 Генерация пакета импульсов
- •5.2.3 Генератор заданного числа пакетов импульсов
- •Формирование импульсных сигналов управления с использованием таймеров микроконтроллера
- •5.4 Ожидание внешних событий
- •5.5 Обработка динамического дисплея
- •5.6 Особенности схемы дисплея в учебной системе управления.
- •5.7 Часы
- •5.8 Измерение временных параметров импульсов
- •5.9 Обработка клавиатуры
- •Дубров ф.И. Встроенные системы управления на микроконтроллере aTmega16
3.6 Энергонезависимая память данных
Микроконтроллер ATmega16 имеет в своем составе энергонезависимую память данных EEPROM емкостью 512 байт, содержимое которой не изменяется при выключении источника питания микроконтроллера. Для работы с EEPROM используются три регистра ввода-вывода: регистр адреса EEAR, регистр данных EEDR и регистр управления EECR.
Регистр адреса состоит из двух регистров: старших разрядов EEARH (при емкости 512 байт в нем задействован только один разряд) и младших разрядов EEARL. В эти регистры помещается адрес ячейки EEPROМ, к которой производится обращение.
В регистр данных помещается байт данных, который будет помещен в EEPROM при записи. При чтении памяти в него помещается байт, считанный из EEPROM.
Регистр управления EECR определяет доступ к EEPROM. Формат этого регистра приведен на рисунке 52.
- |
- |
- |
- |
EERIE |
EEMWE |
EEWE |
EERE |
Рисунок 52
Бит EERE – бит чтения байта данных из EEPROM. При установке в состояние “1” байт данных из EEPROM загружается в регистр EEDR.
Бит EEMWE – бит разрешения записи в EEPROM. Единичное состояние этого разряда разрешает запись в EEPROM, а нулевое – запрещает.
Бит EEWE – бит записи в EEPROM. При установке этого разряда производится запись байта в EEPROM из регистра данных EEDR. По окончании записи этот бит сбрасывается аппаратно.
Бит EERIE – бит разрешения прерывания по окончании записи в EEPROM. Если этот разряд установлен и установлен бит I в регистре SREG (бит общего разрешения прерывания), то прерывания после записи в EEPROM будут разрешены. Адрес вектора прерывания от EEPROM – 0х1Е.
Процедура записи в EEPROM:
Загрузить байт данных в регистр EEDR.
Загрузить адрес ячейки EEPROM в регистр EEAR.
Установить бит EEMWE – разрешения записи.
Установить бит EEWE записи в EEPROM.
Время записи байта в EEPROM составляет 7-9 мс. По окончании записи бит EEWE аппаратно сбрасывается, после чего можно начинать следующую запись.
Процедура чтения из EEPROM при условии, что адрес ячейки EEPROM хранится в регистрах R17 и R16:
OUT EEARH,r17 ;помещение адреса ячейки в регистр адреса
OUT EEARL,r16
SBI EECR,EERE ; установка бита чтения EEPROM
IN R18, EEDR ; считанн. байт в регистр R18 из регистра данных
После считывания байта данных в регистр EEDR бит EERE сбрасывается аппаратно.
Контрольные вопросы к разделу 3.
Функции портов микроконтроллеров.
Регистры, используемые для одного порта микроконтроллеров семейства AVR.
Команды, используемые при работе с портами ввода-вывода.
Настройка разряда 4 порта D на вывод.
Настройка разряда 6 порта D на ввод.
Как вывести байт данных из R6 в порт D?
Принять данные из порта В в регистр R23.
В какой регистр порта необходимо загрузить выводимые в порт данные?
Из какого регистра порта необходимо считывать вводимые данные?
Какой элемент может быть подключен к выводам XTAL1 и XTAL2?
Сколько портов имеет микроконтроллер ATMega16"?
Разрядность портов микроконтроллера ATMega16.
Выбрать альтернативное имя входа захвата микроконтроллера.
Выбрать альтернативное имя выхода совпадения микроконтроллера.
Какие сигналы подаются на входы микроконтроллера с альтернативными именами Т0 и Т1?
В какие разряды порта выдается сигнал с ШИМ?
Какую функция можно выполнить в микроконтроллере, если подать на вход ICP последовательность импульсов?
Количество разрядов порта А микроконтроллера ATMega16, которое задействовано для входов АЦП
На какие разряды порта необходимо подавать напряжения, для определения какое из напряжений большее?
Функция подсистемы прерываний в микроконтроллерах.
Как разрешается прерывание от источника прерывания .
Выполняемые операции при поступлении сигнала прерывания от устройства, если прерывания от него разрешены.
Что представляет собой вектор прерывания?
Место размещения таблицы векторов прерываний.
Длина вектора прерывания.
Типы прерываний (имена векторов) в микроконтроллере ATMega16.
Как установлены приоритеты прерываний в микроконтроллер ATMega16?
Имена флагов прерываний: по захвату таймера/счетчика Т1 и внешнего прерывания со входа INT1.
Формат регистра разрешения внешних прерываний в микроконтроллере ATMega16.
Команды, которые чаще всего используются в начале и в конце подпрограммы обработки прерывания.
Возможные типы входов внешних прерываний со входов INT0 и INT1.
Выбрать функции, выполняемые таймерами/счетчиками микроконтроллеров в управляющей системе на микроконтроллере.
Основные режимы таймеров/счетчиков.
Что представляют собой аппаратно таймеры/счетчики?
Функция цифрового счетчика.
Понятие переполнения счетчика.
Основной параметр цифрового счетчика.
Число различных состояний цифрового счетчика с разрядностью 8.
Что происходит при переполнении таймера/счетчика?
Варианты работы таймера/счетчика Т0.
Варианты включения таймера/счетчика Т0.
Функции разрядов CS20,CS10,CS00 регистра управления TCCR0 таймером/счетчиком Т0.
Работа таймера/счетчика Т1 режиме сравнения.
Для чего используется во встроенных системах на микроконтроллере режим сравнения?
Какие флаги могут устанавливаться при работе таймера/счетчика Т1?
Работа таймера/счетчика Т1 в режиме захвата.
Для чего во встроенных системах на микроконтроллерах используется режим захвата?
Функции аналогового компаратора.
В каком случае на выходе компаратора напряжение равно уровню логической единицы?
Прерывание от аналогового компаратора может быть вызвано:
Что может произойти при изменении уровня на выходе аналогового компаратора?
Число циклов перезаписи в EEPROM микроконтроллеров ATMega16.
Процедуры для записи байта в EEPROM.
Процедуры для чтения байта из EEPROM.
Имя бита разрешения прерывания от компаратора.
Емкость EEPROM в микроконтроллере ATMega16.
Если емкость EEPROM 512 байт, то каков формат адресного регистра EEAR?
Какой принцип используется в АЦП последовательных приближений?
Параметры АЦП микроконтроллера ATmega16.
Режимы работы АЦП микроконтроллеров семейства AVRMega.
С какой тактовой частотой рекомендуется вести преобразование АЦП?
Каким сигналом может быть запущено преобразование АЦП?
Значение выходного кода шестиразрядного АЦП, если на входе величина напряжения равна 46,8 единиц.
Работа четырехразрядного АЦП в третьем такте, если входное напряжение равно 8,2 единицы.
Абсолютная погрешность восьмиразрядного аналого-цифрового преобразователя (теоретическая), если величина образцового напряжения равна 2,56В.
Действия аналогового компаратора в схеме АЦП последовательных приближений.
Имя флага прерывания по завершении преобразования АЦП.
В каком блоке АЦП заряжается конденсатор до величины входного напряжения и остается постоянным на время преобразования?
Основные блоки передатчика UART.
Основные блоки приемника UART.
Количество разрядов в кадре при отключенном режиме контроля по четности.
Правильный формат кадра на выходе TXD блока UART при передаче байта В3Н в режиме с контролем по четности и одним стоповым битом.
Какие векторы прерываний могут быть вызваны при работе блока универсального асинхронного приемопередатчика?
Когда устанавливается флаг прерывания "регистр передачи UART пуст"?
Функция делителя частоты в блоке UART.
Для чего производится сканирование стартового бита в приемнике RXD?
Сколько раз производится сканирование входа RXD приемника в нормальном режиме?
Для чего используются стартовый и стоповый биты при асинхронной последовательной передаче данных.
Какие ошибки могут быть обнаружены в приемнике UART?