ПАСМС LW3_MC
.pdfоперанды, предварительно загрузив их в РОН командой ld c косвенной адре-
сацией ячеек ОЗУ с предекрементом;
6) с использованием косвенной адресации оперативной памяти данных с постинкрементом. Для этого зарезервировать в ОЗУ байты под слагаемые в одной директиве .byte. В регистр Z загрузить адрес начала блока зарезерви-
рованных байтов. Занести слагаемые в зарезервированные ячейки ОЗУ коман-
дой ST с косвенной адресацией с постинкрементом. Сложить операнды, пред-
варительно загрузив их в РОН командой LD с косвенной адресацией с постин-
крементом;
7) с использованием адресации константы в памяти программ. Для это-
го задать слагаемые в памяти программ в одной директиве .db. Сложить опе-
ранды, предварительно загрузив их в РОН с помощью команды LPM. Для пере-
сылки слагаемых между РОН использовать команду MOV;
8) с использованием адресации константы в памяти программ с по-
стинкрементом. Для загрузки слагаемых в РОН использовать команду LPM с
постинкрементом.
В диалоговом окне AVR Simulator Options в разделе Device Selection уста-
новить тактовую частоту моделирования работы микроконтроллера, равную
8,0 МГц (поле Frequency).
Выполнить трансляцию и отладку созданных программ. По данным, выво-
димым после трансляции на закладке Build окна Output, проанализировать ис-
пользование памяти программ (Program memory usage) под код программы
(Code) и константы (Constants), оценить объём неиспользованной (Unused) и
общей занятой (Total) памяти. Занести эти сведения в отчёт (табл. 3).
При отладке программ использовать средства наблюдения за содержи-
мым регистров и ячеек памяти. По полю Cycle Counter объекта Processor за-
кладки I/O окна Workspace определить число тактов выполнения программы,
по полю Stop Watch – время выполнения программы (до выполнения команды,
11
организующей бесконечный цикл). Зафиксировать эти сведения в отчёте (табл.
3). По результатам выполнения программ сделать выводы.
|
|
|
|
|
|
|
Таблица 3 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вариант программы |
1 |
2 |
3 |
4 |
5 |
|
6 |
7 |
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Объём памяти программ, занятой под код программы, слов
Объём памяти программ, занятой под константы, слов
Объём неиспользованной памяти программ, слов
Общий объём занятой памяти программ, слов
Число тактов выполнения программы
Время выполнения программы, мкс
Примечание. Все программы рекомендуется включить в один проект. При этом программа, подлежащая трансляции, задаётся командой Set as entry file
контекстного меню дерева иерархии проекта. Подлежащая трансляции про-
грамма помечается в дереве иерархии проекта символом (все прочие ис-
ходные файлы проекта имеют символ ).
СОДЕРЖАНИЕ ОТЧЁТА
Отчёт должен содержать: титульный лист с указанием номера и названия лабораторной работы, номера группы и фамилий выполнивших работу; цель работы; листинги трансляции программ и сведения, указанные в задании; схе-
мы образования адреса для использованных способов адресации.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1.Адресация РОН и регистров ввода-вывода AVR-микроконтроллеров.
2.Способы адресации памяти данных AVR-микроконтроллеров.
3.Способы адресации памяти программ AVR-микроконтроллеров.
4.Особенности выполнения арифметических и логических операций в
AVR-микро-контроллерах.
5. Назначение и использование регистров X, Y и Z.
ПРИЛОЖЕНИЕ 1
Основные характеристики микроконтроллеров
групп Tiny AVR, Mega AVR и LCD AVR
|
|
|
|
|
|
|
|
Tiny AVR |
|
|
|
|
|
Mega AVR |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Характеристика |
|
|
ATtiny13 |
|
ATtiny15L |
|
ATtiny26 |
|
ATtiny28 |
|
ATtiny2313 |
|
ATmega48 |
|
ATmega8 |
ATmega88 |
ATmega8515 |
ATmega8535 |
|
||
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Объём |
памяти |
программ |
1 |
1 |
2 |
2 |
2 |
|
4 |
8 |
8 |
8 |
8 |
|
||||||||
(FLASH), Кбайт |
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Объём |
внутренней |
оперативной |
64 |
|
– |
128 |
|
– |
128 |
|
256 |
512 |
512 |
512 |
512 |
|
||||||
памяти данных (SRAM), байт |
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Объём энергонезависимой памяти |
64 |
64 |
128 |
|
– |
128 |
|
512 |
|
1K |
1K |
512 |
512 |
|
||||||||
данных (EEPROM), байт |
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
Количество команд |
|
|
120 |
90 |
118 |
90 |
120 |
|
130 |
130 |
130 |
130 |
130 |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
Количество линий ввода-вывода |
6 |
6 |
16 |
20 |
18 |
|
23 |
23 |
23 |
35 |
32 |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
Количество векторов прерываний |
10 |
9 |
12 |
6 |
19 |
|
19 |
19 |
19 |
17 |
21 |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Разрядность программного счётчи- |
16 |
16 |
16 |
16 |
16 |
|
16 |
16 |
16 |
16 |
16 |
|
||||||||||
ка (PC) |
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Стек1 |
|
|
|
|
|
П |
|
А |
|
П |
|
А |
|
П |
|
П |
|
П |
П |
П |
П |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
8-разрядный таймер-счётчик |
1 |
2 |
2 |
1 |
1 |
|
2 |
2 |
2 |
1 |
2 |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
16-разрядный таймер-счётчик |
|
|
– |
|
– |
|
– |
|
– |
1 |
|
1 |
1 |
1 |
1 |
1 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
Сторожевой таймер |
|
|
+ |
+ |
+ |
+ |
+ |
|
+ |
+ |
+ |
+ |
+ |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
Аналоговый компаратор |
+ |
+ |
+ |
+ |
+ |
|
+ |
+ |
+ |
+ |
+ |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
АЦП (10 разрядов), каналов |
4 |
4 |
11 |
|
– |
|
– |
|
8 |
8 |
8 |
– |
8 |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Аппаратный умножитель |
|
|
– |
|
– |
|
– |
|
– |
|
– |
|
+ |
+ |
+ |
+ |
+ |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Универсальный |
асинхронный |
|
|
– |
|
– |
|
– |
|
– |
1 |
|
1 |
1 |
1 |
1 |
1 |
|
||||
приёмопередатчик (УАПП) |
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Интерфейс SPI для обмена данны- |
|
|
– |
|
– |
|
– |
|
– |
|
– |
|
2 |
1 |
2 |
1 |
1 |
|
||||
ми |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
Двухпроводный последовательный |
– |
– |
– |
– |
– |
+ |
+ |
+ |
+ |
+ |
||
интерфейс (TWI) |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Интерфейс JTAG |
|
|
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
|
|
|
|
|
|
|
|
|
|
|
||
Программирование в системе (In- |
+ |
+ |
+ |
– |
+ |
+ |
+ |
+ |
+ |
+ |
||
System Programming) |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Самопрограммирование |
(Self- |
– |
– |
– |
– |
– |
+ |
+ |
+ |
+ |
+ |
|
Programming) |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Схема сброса при понижении на- |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
||
пряжения питания |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Синхронизация |
от внутренней |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
RC-цепочки |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Синхронизация от внешнего квар- |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
||
цевого генератора |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Максимальная |
тактовая |
частота, |
16 |
1,6 |
16 |
4 |
16 |
16 |
16 |
16 |
16 |
16 |
МГц |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Число выводов |
|
|
8 |
8 |
20/32 |
28/32 |
20/32 |
28/32 |
28/32 |
28/32 |
40/44 |
40/44 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mega AVR |
|
|
|
|
|
|
|
|
LCD AVR |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ATmega16 |
|
|
ATmega162 |
|
|
ATmega168 |
|
|
ATmega32 |
|
|
ATmega64 |
|
|
ATmega128 |
|
|
ATmega256 |
|
|
ATmega169 |
|
ATmega329 |
|
|
|
Характеристика |
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Объём |
памяти программ (FLASH), |
16 |
|
16 |
|
16 |
|
32 |
|
64 |
|
128 |
|
256 |
|
16 |
32 |
|
|
|||||||||||
Кбайт |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Объём |
внутренней |
оперативной |
|
1K |
|
|
1K |
|
|
1K |
|
|
2K |
|
|
4K |
|
|
4K |
|
|
8K |
|
|
1K |
|
2K |
|||
памяти данных (SRAM), байт |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Объём энергонезависимой памяти |
512 |
|
512 |
|
512 |
|
|
1K |
|
|
2K |
|
|
4K |
|
|
4K |
|
512 |
|
1K |
|||||||||
данных (EEPROM), байт |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
Количество команд |
|
|
131 |
|
131 |
|
131 |
|
131 |
|
130 |
|
133 |
|
130 |
|
130 |
130 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
Количество линий ввода-вывода |
32 |
|
35 |
|
23 |
|
32 |
|
53 |
|
53 |
|
53 |
|
54 |
54 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
Количество векторов прерываний |
21 |
|
28 |
|
21 |
|
21 |
|
35 |
|
35 |
|
35 |
|
23 |
23 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Разрядность программного счётчи- |
16 |
|
16 |
|
16 |
|
16 |
|
16 |
|
22 |
|
22 |
|
16 |
16 |
|
|
||||||||||||
ка (PC) |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Стек1 |
|
|
|
|
П |
|
|
П |
|
|
П |
|
|
П |
|
|
П |
|
|
П |
|
|
П |
|
|
П |
|
П |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
8-разрядный таймер-счётчик |
2 |
|
2 |
|
2 |
|
2 |
|
2 |
|
2 |
|
2 |
|
2 |
2 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
16-разрядный таймер-счётчик |
1 |
|
1 |
|
1 |
|
1 |
|
2 |
|
2 |
|
2 |
|
1 |
1 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
Сторожевой таймер |
|
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
+ |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
Аналоговый компаратор |
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
+ |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
АЦП (10 разрядов), каналов |
8 |
|
|
– |
|
8 |
|
8 |
|
8 |
|
8 |
|
8 |
|
8 |
8 |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
Аппаратный умножитель |
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
+ |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Универсальный |
асинхронный |
1 |
|
2 |
|
1 |
|
1 |
|
2 |
|
2 |
|
2 |
|
1 |
1 |
|
|
|||||||||||
приёмопередатчик (УАПП) |
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Интерфейс SPI для обмена данны- |
1 |
|
1 |
|
2 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
1 |
|
|
||||||||||||
ми |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Двухпроводный последовательный |
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
+ |
|
|
||||||||||||
интерфейс (TWI) |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
Интерфейс JTAG |
|
|
|
– |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
+ |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Программирование в системе (In- |
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
|
+ |
+ |
|
|
||||||||||||
System Programming) |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
|
Самопрограммирование |
(Self- |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
Programming) |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Схема сброса при понижении на- |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
||
пряжения питания |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Синхронизация |
от внутренней |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
RC-цепочки |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Синхронизация от внешнего квар- |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
||
цевого генератора |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Максимальная |
тактовая |
частота, |
16 |
16 |
16 |
16 |
16 |
16 |
16 |
16 |
16 |
МГц |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Число выводов |
|
|
40/44 |
40/44 |
28/32 |
40/44 |
64 |
64 |
64 |
64 |
64 |
|
|
|
|
|
|
|
|
|
|
|
|
1 А – аппаратный, П – программный (организуемый в ОЗУ).
ПРИЛОЖЕНИЕ 2
Система команд микроконтроллеров семейства AVR
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Число |
* |
|
Мнемо- |
|
Опе- |
|
Описание |
|
|
|
|
Операция |
|
Флаги |
|
тактов |
|||
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
ника |
|
ранды |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
|
|
3 |
|
|
|
|
|
4 |
5 |
6 |
|||||
|
|
|
|
|
Арифметические и логические команды |
|
|
|
|
|
|||||||
|
ADD |
|
Rd, Rr |
|
Сложить без учѐта флага пе- |
|
Rd |
Rd + Rr |
|
Z, C, N, V, H, S |
1 |
||||||
|
|
|
реноса |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
ADC |
|
Rd, Rr |
|
Сложить с учѐтом флага пе- |
|
Rd |
Rd + Rr + C |
|
Z, C, N, V, H, S |
1 |
||||||
|
|
|
реноса |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
ADIW |
|
Rdl, К6 |
|
Сложить слово и константу |
|
Rdh:Rdl |
Rdh:Rdl – |
|
Z, C, N, V, S |
2 |
||||||
|
|
|
|
|
|
|
|
|
|
K6 |
|
|
|
|
|
|
|
|
SUB |
|
Rd, Rr |
|
Вычесть без учѐта флага пе- |
|
Rd |
Rd – Rr |
|
Z, C, N, V, H, S |
1 |
||||||
|
|
|
реноса |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
SUBI |
|
Rd, К8 |
|
Вычесть константу |
|
|
|
Rd |
Rd – K8 |
|
Z, C, N, V, H, S |
1 |
||||
|
SBC |
|
Rd, Rr |
|
Вычесть с учѐтом флага пере- |
|
Rd |
Rd – Rr – C |
|
Z, C, N, V, H, S |
1 |
||||||
|
|
|
носа |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
SBCI |
|
Rd, К8 |
|
Вычесть константу с учѐтом |
|
Rd |
Rd – K8 – C |
|
Z, C, N, V, H, S |
1 |
||||||
|
|
|
флага переноса |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
||||||||||
|
SBIW |
|
Rdl, К6 |
|
Вычесть константу из слова |
|
Rdh:Rdl |
Rdh:Rdl – |
|
Z, C, N, V, S |
2 |
||||||
|
|
|
|
|
|
|
|
|
|
– K6 |
|
|
|
|
|
|
|
|
AND |
|
Rd, Rr |
|
Выполнить логическое И |
|
|
Rd |
Rd · Rr |
|
Z, N, V, S |
1 |
|||||
|
ANDI |
|
Rd, К8 |
|
Выполнить |
логическое |
И с |
|
Rd |
Rd · K8 |
|
Z, N, V, S |
1 |
||||
|
|
|
константой |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
OR |
|
Rd, Rr |
|
Выполнить логическое ИЛИ |
|
Rd |
Rd v Rr |
|
Z, N, V, S |
1 |
||||||
|
ORI |
|
Rd, К8 |
|
Выполнить логическое ИЛИ с |
|
Rd |
Rd v K8 |
|
Z, N, V, S |
1 |
||||||
|
|
|
константой |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
EOR |
|
Rd, Rr |
|
Выполнить |
логическое |
ис- |
|
Rd |
Rd |
Rr |
|
Z, N, V, S |
1 |
|||
|
|
|
ключающее ИЛИ |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
||||||||||
|
COM |
|
Rd |
|
Вычислить дополнение до од- |
|
Rd |
$FF – Rd |
|
Z, C, N, V, S |
1 |
||||||
|
|
|
|
|
ного (поразрядная инверсия) |
|
|
|
|
|
|
|
|
|
|||
|
NEG |
|
Rd |
|
Вычислить |
дополнение |
до |
|
Rd |
$00 – Rd |
|
Z, C, N, V, H, S |
1 |
||||
|
|
|
двух (изменить знак) |
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
SBR |
|
Rd, К8 |
|
Установить |
разряд |
(разряды) |
|
Rd |
Rd v K8 |
|
Z, C, N, V, S |
1 |
||||
|
|
|
в РОН |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
CBR |
Rd, К8 |
|
Сбросить разряды в РОН |
|
|
Rd |
Rd · ($FF – K8) |
|
Z, C, N, V, S |
1 |
||||||
|
INC |
|
Rd |
|
Инкрементировать |
содержи- |
|
Rd |
Rd + 1 |
|
Z, N, V, S |
1 |
|||||
|
|
|
|
|
мое РОН |
|
|
|
|
|
|
|
|
|
|
|
|
|
DEC |
|
Rd |
|
Декрементировать |
содержи- |
|
Rd |
Rd – 1 |
|
Z, N, V, S |
1 |
|||||
|
|
|
|
|
мое РОН |
|
|
|
|
|
|
|
|
|
|
|
|
|
TST |
|
Rd |
|
Проверить на равенство нулю |
|
Rd |
Rd · Rd |
|
Z, C, N, V, S |
1 |
||||||
|
|
|
или отрицательное значение |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
CLR |
|
Rd |
|
Очистить все разряды РОН |
|
Rd |
Rd |
Rd |
|
Z, C, N, V, S |
1 |
|||||
|
SER |
|
Rd |
|
Установить все разряды РОН |
|
Rd |
$FF |
|
|
Нет |
1 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
CP |
|
Rd, Rr |
|
Сравнить |
|
|
Rd – Rr |
|
|
|
Z, C, N, V, H, S |
1 |
|
|
CPC |
|
Rd, Rr |
|
Сравнить с учѐтом флага пе- |
|
Rd – Rr – C |
|
|
Z, C, N, V, H, S |
1 |
|
||
|
|
|
|
|
реноса |
|
|
|
|
|
|
|
|
|
|
1 |
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
6 |
|
|
CPI |
|
Rd, К8 |
|
Сравнить с константой |
|
Rd – K8 |
|
|
|
Z, C, N, V, H, S |
1 |
|
|
|
MUL |
|
Rd, Rr |
|
Перемножить |
содержимое |
|
R1:R0 |
Rd |
Rr |
|
Z, C |
2 |
|
|
|
|
двух РОН (без знака) |
|
|
|
||||||||
|
|
|
|
|
|
|
||||||||
|
MULS |
|
Rd, Rr |
|
Перемножить |
содержимое |
|
R1:R0 |
Rd |
Rr |
|
Z, C |
2 |
|
|
|
|
двух РОН (со знаком) |
|
|
|
||||||||
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
Перемножить |
содержимое |
|
|
|
|
|
|
|
|
|
MULSU |
|
Rd, Rr |
|
двух РОН (Rd – со знаком; Rr |
|
R1:R0 |
Rd |
Rr |
|
Z, C |
2 |
|
|
|
|
|
|
|
– без знака) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Перемножить |
содержимое |
|
|
|
|
|
|
|
|
|
FMUL |
|
Rd, Rr |
|
двух РОН (без знака) со сдви- |
|
R1:R0 |
Rd |
Rr << 1 |
|
Z, C |
2 |
|
|
|
|
|
|
|
гом влево на 1 разряд |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Перемножить |
содержимое |
|
|
|
|
|
|
|
|
|
FMULS |
|
Rd, Rr |
|
двух РОН (со знаком) со |
|
R1:R0 |
Rd |
Rr << 1 |
|
Z, C |
2 |
|
|
|
|
|
|
|
сдвигом влево на 1 разряд |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Перемножить |
содержимое |
|
|
|
|
|
|
|
|
|
FMULSU |
|
Rd, Rr |
|
двух РОН (Rd – со знаком; Rr |
|
R1:R0 |
Rd |
Rr << 1 |
|
Z, C |
2 |
|
|
|
|
|
– без знака) со сдвигом влево |
|
|
|
||||||||
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
на 1 разряд |
|
|
|
|
|
|
|
|
|
Команды ветвления
RJMP |
k |
Относительный переход |
PC |
PC + k +1 |
Нет |
2 |
|||
IJMP |
Нет |
Косвенный переход |
PC |
Z |
|
Нет |
2 |
||
EIJMP |
Нет |
Расширенный |
косвенный пе- |
PC(15:0) |
Z, |
Нет |
2 |
||
реход |
|
PC(21:16) |
EIND |
||||||
|
|
|
|
|
|||||
JMP |
k |
Косвенный переход |
PC |
k |
|
Нет |
3 |
||
RCALL |
k |
Относительный вызов подпро- |
STACK |
PC + 1, |
Нет |
3 |
|||
граммы |
|
PC |
PC + k + 1 |
||||||
|
|
|
|
|
|||||
ICALL |
Нет |
Косвенный |
вызов подпро- |
STACK |
PC + 1, |
Нет |
3 |
||
граммы |
|
PC |
Z |
|
|||||
|
|
|
|
|
|
||||
|
|
Расширенный косвенный вы- |
STACK |
PC + 1, |
|
|
|||
EICALL |
Нет |
PC(15:0) |
Z, |
Нет |
3 |
||||
|
|
зов подпрограммы |
PC(21:16) |
EIND |
|
|
|||
|
|
|
|
|
|
||||
CALL |
k |
Вызов подпрограммы |
STACK |
PC + 1, |
Нет |
4/5 |
|||
PC |
k |
|
|||||||
|
|
|
|
|
|
|
|||
RET |
Нет |
Возврат из подпрограммы |
PC |
STACK |
Нет |
4 |
|||
RETI |
Нет |
Возврат из подпрограммы об- |
PC |
STACK |
I |
4 |
|||
|
|
работки прерывания |
|
|
|
|
|
||
CPSE |
Rd, Rr |
Сравнить и пропустить, если |
если Rd = Rr, |
Нет |
1/2/3 |
||||
равно |
|
PC |
PC + 2 (или 3) |
||||||
SBRC |
Rr, b |
Пропустить, если бит в РОН |
если Rr(b) = 0, |
Нет |
1/2/3 |
||||
сброшен |
|
PC |
PC + 2 (или 3) |
||||||
|
|
|
|
|
|||||
SBRS |
Rr, b |
Пропустить, если бит в РОН |
если Rr(b)=1, |
Нет |
1/2/3 |
||||
установлен |
|
PC |
PC + 2 (или 3) |
||||||
|
|
|
|
|
|||||
SBIC |
I/O, b |
Пропустить, если бит в реги- |
если I/O(b) = 0, |
Нет |
1/2/3 |
||||
стре ввода-вывода сброшен |
PC |
PC + 2 (или 3) |
|||||||
|
|
|
|
||||||
SBIS |
I/O, b |
Пропустить, если бит в реги- |
если I/O(b) = 1, |
Нет |
1/2/3 |
||||
стре ввода-вывода установлен |
PC |
PC + 2 (или 3) |
|||||||
|
|
|
|
|
BRBC |
|
s, k |
|
Перейти, если флаг в регистре |
|
если SREG(s) = 0, |
|
Нет |
1/2 |
||||
|
|
|
SREG сброшен |
|
|
|
PC |
PC + k + 1 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
2 |
|
|
3 |
|
|
|
|
4 |
|
5 |
6 |
|
BRBS |
|
s, k |
|
Перейти, если флаг в регистре |
|
если SREG(s) = 1, |
|
Нет |
1/2 |
||||
|
|
|
SREG установлен |
|
|
PC |
PC + k + 1 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|||||
|
BREQ |
|
k |
|
Перейти, если равно |
|
|
если Z = 1, |
|
Нет |
1/2 |
|||
|
|
|
|
|
PC |
PC + k + 1 |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
BRNE |
|
k |
|
Перейти, если не равно |
|
|
если Z = 0, |
|
Нет |
1/2 |
|||
|
|
|
|
|
PC |
PC + k + 1 |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
BRCS |
|
k |
|
Перейти, если флаг переноса |
|
если C = 1, |
|
Нет |
1/2 |
||||
|
|
|
установлен |
|
|
|
PC |
PC + k + 1 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
BRCC |
|
k |
|
Перейти, если флаг переноса |
|
если C = 0, |
|
Нет |
1/2 |
||||
|
|
|
сброшен |
|
|
|
|
PC |
PC + k + 1 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
BRSH |
|
k |
|
Перейти, |
если |
равно |
или |
|
если C = 0, |
|
Нет |
1/2 |
|
|
|
|
больше |
|
|
|
|
PC |
PC + k + 1 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
BRLO |
|
k |
|
Перейти, если меньше |
|
|
если C = 1, |
|
Нет |
1/2 |
|||
|
|
|
|
|
PC |
PC + k + 1 |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
BRMI |
|
k |
|
Перейти, если минус |
|
|
если N = 1, |
|
Нет |
1/2 |
|||
|
|
|
|
|
PC |
PC + k + 1 |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
BRPL |
|
k |
|
Перейти, если плюс |
|
|
если N = 0, |
|
Нет |
1/2 |
|||
|
|
|
|
|
PC |
PC + k + 1 |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
BRGE |
|
k |
|
Перейти, |
если |
больше |
или |
|
если S = 0, |
|
Нет |
1/2 |
|
|
|
|
равно (со знаком) |
|
|
PC |
PC + k + 1 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|||||
|
BRLT |
|
k |
|
Перейти, |
если |
меньше |
(со |
|
если S = 1, |
|
Нет |
1/2 |
|
|
|
|
знаком) |
|
|
|
|
PC |
PC + k + 1 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
BRHS |
|
k |
|
Перейти, если флаг полупере- |
|
если H = 1, |
|
Нет |
1/2 |
||||
|
|
|
носа установлен |
|
|
PC |
PC + k + 1 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|||||
|
BRHC |
|
k |
|
Перейти, если флаг полупере- |
|
если H = 0, |
|
Нет |
1/2 |
||||
|
|
|
носа сброшен |
|
|
|
PC |
PC + k + 1 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
BRTS |
|
k |
|
Перейти, |
если |
флаг T уста- |
|
если T = 1, |
|
Нет |
1/2 |
||
|
|
|
новлен |
|
|
|
|
PC |
PC + k + 1 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
BRTC |
|
k |
|
Перейти, |
если |
флаг T сбро- |
если T = 0, |
|
Нет |
1/2 |
|||
|
|
|
шен |
|
|
|
|
PC |
PC + k + 1 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
BRVS |
|
k |
|
Перейти, |
если флаг перепол- |
если V = 1, |
|
Нет |
1/2 |
||||
|
|
|
нения установлен |
|
|
PC |
PC + k + 1 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|||||
|
BRVC |
|
k |
|
Перейти, |
если флаг перепол- |
если V = 0, |
|
Нет |
1/2 |
||||
|
|
|
нения сброшен |
|
|
|
PC |
PC + k + 1 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
BRIE |
|
k |
|
Перейти, |
если |
прерывания |
если I = 1, |
|
Нет |
1/2 |
|||
|
|
|
разрешены |
|
|
|
PC |
PC + k + 1 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
BRID |
|
k |
|
Перейти, |
если |
прерывания |
если I = 0, |
|
Нет |
1/2 |
|||
|
|
|
запрещены |
|
|
|
PC |
PC + k + 1 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
Команды передачи данных |
|
|
|
|||||
|
MOV |
|
Rd, Rr |
|
Копирование РОН |
|
|
Rd |
Rr |
|
Нет |
1 |
||
|
MOVW |
|
Rd, Rr |
|
Копирование пары РОН |
|
|
Rd+1:Rd Rr+1:Rr |
|
Нет |
1 |
|||
|
LDI |
|
Rd, К8 |
|
Загрузка константы в РОН |
|
|
Rd |
K8 |
|
Нет |
1 |
||
|
LDS |
|
Rd, k |
|
Прямая |
загрузка из ОЗУ в |
Rd |
(k) |
|
Нет |
2 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
|
|
|
|
РОН |
|
|
|
|
|
|
|
|
|
LD |
|
Rd, X |
|
Косвенная загрузка из ОЗУ в |
|
Rd |
(X) |
|
|
|
Нет |
2 |
|
|
|
РОН |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LD |
|
Rd, X+ |
|
Косвенная загрузка из ОЗУ с |
|
Rd |
(X), X |
X + 1 |
|
Нет |
2 |
|
|
|
|
постинкрементом |
|
|
||||||||
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
2 |
|
3 |
|
|
|
4 |
|
|
5 |
6 |
|
LD |
|
Rd, –X |
|
Косвенная загрузка из ОЗУ с |
|
X |
X – 1, Rd |
(X) |
|
Нет |
2 |
|
|
|
|
предекрементом |
|
|
||||||||
|
|
|
|
|
|
||||||||
|
LD |
|
Rd, Y |
|
Косвенная загрузка из ОЗУ в |
|
Rd |
(Y) |
|
|
|
Нет |
2 |
|
|
|
РОН |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LD |
|
Rd, Y+ |
|
Косвенная загрузка из ОЗУ с |
|
Rd |
(Y), Y |
Y + 1 |
|
Нет |
2 |
|
|
|
|
постинкрементом |
|
|
||||||||
|
|
|
|
|
|
||||||||
|
LD |
|
Rd, –Y |
|
Косвенная загрузка из ОЗУ с |
|
Y |
Y – 1, Rd |
(Y) |
|
Нет |
2 |
|
|
|
|
предекрементом |
|
|
||||||||
|
|
|
|
|
|
||||||||
|
LDD |
|
Rd, Y+q |
|
Косвенная загрузка из ОЗУ со |
|
Rd |
(Y + q) |
|
|
Нет |
2 |
|
|
|
смещением |
|
|
|
||||||||
|
|
|
|
|
|
||||||||
|
LD |
|
Rd, Z |
|
Косвенная загрузка из ОЗУ в |
|
Rd |
(Z) |
|
|
|
Нет |
2 |
|
|
|
РОН |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LD |
|
Rd, Z+ |
|
Косвенная загрузка из ОЗУ с |
|
Rd |
(Z), Z |
Z + 1 |
|
Нет |
2 |
|
|
|
|
постинкрементом |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LD |
|
Rd, –Z |
|
Косвенная загрузка из ОЗУ с |
|
Z |
Z – 1, Rd |
(Z) |
|
Нет |
2 |
|
|
|
|
предекрементом |
|
|
||||||||
|
|
|
|
|
|
||||||||
|
LDD |
|
Rd, Z+q |
|
Косвенная загрузка из ОЗУ со |
|
Rd |
(Z + q) |
|
|
Нет |
2 |
|
|
|
смещением |
|
|
|
||||||||
|
|
|
|
|
|
||||||||
|
STS |
|
k, Rr |
|
Прямое сохранение в ОЗУ |
|
(k) |
Rr |
|
|
|
Нет |
2 |
|
ST |
|
X, Rr |
|
Косвенное сохранение в ОЗУ |
|
(X) |
Rr |
|
|
|
Нет |
2 |
|
ST |
|
X+, Rr |
|
Косвенное сохранение в ОЗУ |
|
(X) |
Rr, X |
X + 1 |
|
Нет |
2 |
|
|
|
|
с постинкрементом |
|
|
||||||||
|
|
|
|
|
|
||||||||
|
ST |
|
–X, Rr |
|
Косвенное сохранение в ОЗУ |
|
X |
X – 1, (X) |
Rr |
|
Нет |
2 |
|
|
|
|
с предекрементом |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST |
|
Y, Rr |
|
Косвенное сохранение в ОЗУ |
|
(Y) |
Rr |
|
|
|
Нет |
2 |
|
ST |
|
Y+, Rr |
|
Косвенное сохранение в ОЗУ |
|
(Y) |
Rr, Y |
Y + 1 |
|
Нет |
2 |
|
|
|
|
с постинкрементом |
|
|
||||||||
|
|
|
|
|
|
||||||||
|
ST |
|
–Y, Rr |
|
Косвенное сохранение в ОЗУ |
|
Y |
Y – 1, (Y) |
Rr |
|
Нет |
2 |
|
|
|
|
с предекрементом |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
STD |
|
Y+q, Rr |
|
Косвенное сохранение в ОЗУ |
|
(Y + q) |
Rr |
|
|
Нет |
2 |
|
|
|
со смещением |
|
|
|
||||||||
|
|
|
|
|
|
||||||||
|
ST |
|
Z, Rr |
|
Косвенное сохранение в ОЗУ |
|
(Z) |
Rr |
|
|
|
Нет |
2 |
|
ST |
|
Z+, Rr |
|
Косвенное сохранение в ОЗУ |
|
(Z) |
Rr, Z |
Z + 1 |
|
Нет |
2 |
|
|
|
|
с постинкрементом |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST |
|
–Z, Rr |
|
Косвенное сохранение в ОЗУ |
|
Z |
Z – 1, (Z) |
Rr |
|
Нет |
2 |
|
|
|
|
с предекрементом |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST |
|
Z+q, Rr |
|
Косвенное сохранение в ОЗУ |
|
(Z + q) |
Rr |
|
|
Нет |
2 |
|
|
|
со смещением |
|
|
|
||||||||
|
|
|
|
|
|
||||||||
|
LPM |
|
Нет |
|
Загрузка байта из памяти про- |
|
R0 |
(Z) |
|
|
|
Нет |
3 |
|
|
|
|
|
грамм |
|
|
|
|
|
|
|
|
|
LPM |
|
Rd, Z |
|
Загрузка байта из памяти про- |
|
Rd |
(Z) |
|
|
|
Нет |
3 |
|
|
|
|
|
грамм |
|
|
|
|
|
|
|
|
|
LPM |
|
Rd, Z+ |
|
Загрузка байта из памяти про- |
Rd |
(Z), Z |
Z + 1 |
|
Нет |
3 |