- •«Инструментальные средства разработки аппаратно-программных систем»
- •Оглавление
- •7 Инструментальные средства разработки систем управления на
- •Введение. Управляющие системы на микроконтроллерах.
- •Характеристика микроконтроллеров семейства 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 Ассемблер микроконтроллеров avr
- •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 Обработка клавиатуры
- •6 Программирование микроконтроллеров aТmega16
- •7 Инструментальные средства разработки сисТем управления на микроконтроллерах aTmega16
- •Дубров ф.И. Встроенные системы управления на микроконтроллере aTmega16
2.6.3 Команды арифметики и логики (вычислительные)
Таблица 6. Арифметические и логические команды
Мнемоника |
Операнды |
Описание |
Операция |
Флаги |
Циклов |
ADD |
Rd,Rr |
Сложить регистры без переноса |
Rd Rd + Rr |
Z,C,N,V,H |
1 |
ADC |
Rd,Rr |
Сложить регистры с переносом |
RdRd + Rr + C |
Z,C,N,V,H |
1 |
ADIW |
Rd,D6 |
Сложить операнд D6 со словом |
Rdh:Rdl Rdh:Rdl+D6 |
Z,C,N,V |
2 |
SUB |
Rd,Rr |
Вычесть регистры без заема |
RdRd – Rr |
Z,C,N,V,H |
1 |
SUBI * |
Rd,D8 |
Вычесть байт D8 R16 Rd R31 |
RdRd - D8
|
Z,C,N,V,H |
1 |
SBC |
Rd,Rr |
Вычесть с заемом |
RdRd – Rr - С |
Z,C,N,V,H |
1 |
SBСI * |
Rd,D8 |
Вычесть байт D8 R16 Rd R31 |
RdRd - D8 - С
|
Z,C,N,V,H |
1 |
SBIW |
Rd,D6 |
Вычесть операнд D6 из слова |
Rdh:Rdl Rdh:Rdl - D6 |
Z,C,N,V |
2 |
MUL |
Rd,Rr |
Умножение беззнаковых целых |
R1:R0Rd x Rr |
Z,C |
2 |
MULS* |
Rd,Rr |
Умножение целых со знаком |
R1:R0Rd x Rr |
Z,C |
2 |
MULSU* |
Rd,Rr |
Умножение беззнакового на знаковое |
R1:R0Rd x Rr |
Z,C |
2 |
FMUL* |
Rd,Rr |
Умножение дробных беззнаковых |
R1:R0Rd x Rr |
Z,C |
2 |
FMULS* |
Rd,Rr |
Умножение дробных знаковых |
R1:R0Rd x Rr |
Z,C |
2 |
FMULSU* |
Rd,Rr |
Умножение беззнакового на знаковое дробных |
R1:R0Rd x Rr |
Z,C |
2 |
AND |
Rd,Rr |
Логическое И |
RdRd & Rr |
Z,N,V |
1 |
ANDI* |
Rd,D8 |
Операция И с байтом D8 |
RdRd & D8
|
Z,N,V |
1 |
OR |
Rd,Rr |
Логическое ИЛИ |
RdRd v Rr |
Z,N,V |
1 |
ORI* |
Rd,D8 |
Логическое ИЛИ с байтом D8 |
RdRd v D8
|
Z,N,V |
1 |
EOR |
Rd,Rr |
Исключающее ИЛИ |
RdRd Rr |
Z,N,V |
1 |
COM |
Rd |
Инверсия |
Rd$FF - Rd |
Z,C,N,V |
1 |
NEG |
Rd |
Дополнительный код |
Rd$00 - Rd |
Z,C,N,V |
1 |
SBR * |
Rd,D8 |
Установить биты в Rd по байту D8 |
RdRd v D8
|
Z,N,V |
1 |
CBR* |
Rd,D8 |
Очистить биты в регистре по байту D8 |
RdRd & ($FF-D8)
|
Z,N,V |
1 |
INC |
Rd |
Инкрементировать |
RdRd +1 |
Z,N,V |
1 |
DEC |
Rd |
Декрементировать |
RdRd -1 |
Z,N,V |
1 |
TST |
Rd |
Проверить на ноль |
RdRd & Rd |
Z,N,V |
1 |
CLR |
Rd |
Очистить регистр |
RdRd Rd |
Z,N,V |
1 |
SER* |
Rd |
Установить все биты регистра |
Rd$FF
|
|
1 |
CP |
Rd,Rr |
Сравнить регистры |
Rd - Rr |
Z,C,N,V,H |
1 |
CPC |
Rd,Rr |
Сравнить с учетом переноса |
Rd – Rr - С |
Z,C,N,V,H |
1 |
CPI |
Rd,D8 |
Сравнить с байтом D8 |
Rd - D8 |
Z,C,N,V,H |
1 |
Команды, выполняющие операции с непосредственным операндом (в аббревиатуре команд присутствует буква I, а также команды SBR,CBR и SER используют только верхние регистры R16-R31. Эти команды помечены в таблице знаком *. В командах умножения (кроме команды MUL) в качестве операндов могут использоваться только регистры R16 – R23. Эти команды отмечены знаком **.
В основном, операции выполняются над 8-разрядными операндами. Однако командами ADIW и SBIW выполняются операции над словами (два байта), причем эти команды являются командами с непосредственным операндом, предельное значение которого равно 63. Первый операнд в этих командах может размещаться в одной из 4-х пар самых верхних регистров общего назначения R25-R24, R27-R26, R29-R28, R31-R30. В аббревиатуре команды записывают только младший регистр пары. Например: ADIW R24,50 – сложить содержимое регистров R25 и R24 со значением 50.
При выполнении арифметических и логических команд устанавливаются признаки результатов операций (флаги) регистра состояний SREG.
Некоторые команды выполняют одинаковые операции (имеют одинаковый код), но имеют разную мнемонику. Например, команды ORI и SBR. Это улучшает читаемость команд, например, SBR R17,$55 – установить биты в регистре R17 по байту $55.
Команды сравнения CP,CPC и CPI выполняются вычитанием операндов, однако результат операции не сохраняется, а устанавливаются признаки ее.