Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПАСМС LW3_MC

.pdf
Скачиваний:
13
Добавлен:
30.03.2015
Размер:
1.12 Mб
Скачать

операнды, предварительно загрузив их в РОН командой 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