
- •«Встроенные системы на микроконтроллере 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
2.4 Арифметико-логическое устройство и регистр состояния процессора
Арифметико-логическое устройство (ALU) – предназначено для выполнения арифметических и логических операций над двоичными восьмиразрядными операндами. Состав ALU: сумматор, комплекты двухвходовых логических элементов И, ИЛИ, НЕ, исключающее ИЛИ по 8 элементов в каждом комплекте и аппаратный умножитель.
Регистр состояния процессора SREG предназначен для хранения признаков (флагов) результатов выполнения операции. Признаки результатов операций используются для организации ветвящихся и циклических программ. Кроме того, в регистр SREG включены: бит разрешения всех прерываний и бит копии.
Формат регистра состояния SREG микроконтроллера приведен на рис.5.
I: бит разрешения всех прерываний. Для разрешения прерываний этот бит должен быть установлен (=1). Разрешение конкретного прерывания выполняется регистрами маски прерывания GICR и TIMSK. Если бит I
Регистр coстояния (статуса) SREG
Номер разряда |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Имена битов |
I |
T |
H |
S |
V |
N |
Z |
C |
|
|
|
|
|
|
|
|
|
Рисунок 5
очищен (=0), то ни одно из прерываний не обрабатывается. Бит I аппаратно сбрасывается после входа в процедуру обработки прерывания и устанавливается (разрешая последующие прерывания) командой RETI. Для разрешения вложенных прерываний в обработчике прерываний он должен быть установлен.
Т: бит сохранения копии. В микроконтроллере отсутствует команда пересылки битов, поэтому такая операция выполняется с использованием бита Т т.е. он используется в качестве буфера. Командой BST бит регистра общего назначения копируется в бит Т, командой BLD бит Т копируется в бит регистра общего назначения.
Н: флаг полупереноса. Устанавливается при наличии переноса между тетрадами при выполнении ряда арифметических операций.
S:
бит знака
представляет собой операцию исключающее
ИЛИ (N
V)
над флагами отрицательного значения
(N)
и флага переполнения (V)
(см. ниже). Флаг устанавливается, если
при операции вычитания с учетом знаков
первый операнд меньше второго операнда
и сбрасывается, если первый операнд
больше или равен второму.
V: флаг переполнения устанавливается, если знак результата в операциях со знаковыми операндами не соответствует знакам операндов, т.е. поддерживает арифметику дополнения до двух. Например, при сложении знаковых чисел +100 (01100100) и +50(00110010) получается восьмиразрядный отрицательный результат 10010110 (должно получиться 010010110 т.е. девять разрядов). Восьми разрядов недостаточно для размещения результата.
N: флаг отрицательного значения устанавливается при отрицательном результате арифметических и логических операций, т.е. бит является копией левого (знакового) разряда результата операции.
Z: флаг нулевого значения устанавливается при нулевом результате ряда арифметических и логических операций.
С: флаг переноса устанавливается при наличии переноса в арифметических и логических операциях, а также в операциях сдвига.