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

ПАСМС LW5_MC

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

Двухпроводный последовательный

+

+

+

+

+

интерфейс (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

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

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)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Самопрограммирование

(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 А – аппаратный, П – программный (организуемый в ОЗУ).

13

ПРИЛОЖЕНИЕ 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

 

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)

 

 

 

 

 

 

 

 

 

 

15

 

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

 

 

 

РОН

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

17

 

 

грамм с постинкрементом

 

 

 

 

ELPM

Нет

Расширенная загрузка

байта

R0

(RAMPZ:Z)

Нет

3

из памяти программ

 

 

 

 

 

 

 

 

ELPM

Rd, Z

Расширенная загрузка

байта

Rd (RAMPZ:Z)

Нет

3

из памяти программ

 

 

 

 

 

 

 

 

 

1

 

2

 

 

 

3

 

 

4

 

5

6

 

 

 

 

 

Расширенная

загрузка байта

 

Rd (RAMPZ:Z),

 

 

 

 

ELPM

 

Rd, Z+

 

из памяти программ с постин-

 

 

Нет

3

 

 

 

 

Z Z + 1

 

 

 

 

 

 

крементом

 

 

 

 

 

 

 

 

 

SPM

 

Нет

 

Запись в память программ

 

(Z) R1:R0

 

Нет

 

IN

 

Rd, I/O

 

Чтение

регистра

ввода-

 

Rd I/O

 

Нет

1

 

 

 

вывода

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OUT

 

I/O, Rr

 

Запись в

 

регистр

ввода-

 

I/O Rr

 

Нет

1

 

 

 

вывода

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PUSH

 

Rr

 

Занесение содержимого РОН

 

STACK Rr

 

Нет

2

 

 

 

в стек

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

POP

 

Rd

 

Извлечение из стека в РОН

 

Rd STACK

 

Нет

2

 

 

 

 

 

 

 

Команды работы с битами

 

 

 

 

LSL

 

Rd

 

Логический сдвиг влево

 

Rd(n + 1) Rd(n),

 

Z, C, N, V, H, S

1

 

 

 

 

Rd(0) 0, C Rd(7)

 

 

LSR

 

Rd

 

Логический сдвиг вправо

 

Rd(n) Rd(n + 1),

 

Z, C, N, V, H, S

1

 

 

 

 

Rd(7) 0, C Rd(0)

 

 

 

 

 

 

 

 

 

 

 

 

Циклический сдвиг влево че-

 

Rd(0) C, Rd(n + 1)

 

 

 

 

ROL

 

Rd

 

 

 

 

Z, C, N, V, H, S

1

 

 

 

 

 

рез флаг переноса

 

 

Rd(n), C Rd(7)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ROR

 

Rd

 

Циклический

сдвиг

вправо

 

Rd(7) C, Rd(n)

 

Z, C, N, V, S

1

 

 

 

через флаг переноса

 

 

Rd(n + 1), C

 

 

 

 

 

 

 

 

Rd(0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ASR

 

Rd

 

Арифметический сдвиг впра-

 

Rd(n) Rd(n + 1),

 

Z, C, N, V, S

1

 

 

 

во

 

 

 

 

n = 0...6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SWAP

 

Rd

 

Поменять

нибблы

местами

 

Rd(3...0) Rd(7...4),

 

Нет

1

 

 

 

(перестановка тетрад)

 

Rd(7...4) Rd(3...0)

 

 

 

 

 

 

 

 

 

 

 

BSET

 

s

 

Установить флаг в

регистре

 

SREG(s) 1

 

SREG(s)

1

 

 

 

состояния SREG

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BCLR

 

s

 

Сбросить флаг в регистре со-

 

SREG(s) 0

 

SREG(s)

1

 

 

 

 

 

стояния SREG

 

 

 

 

 

 

 

SBI

 

I/O, b

 

Установить разряд в регистре

 

I/O(b) 1

 

Нет

2

 

 

 

ввода-вывода

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CBI

 

I/O, b

 

Сбросить

разряд в

регистре

 

I/O(b) 0

 

Нет

2

 

 

 

ввода-вывода

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BST

 

Rr, b

 

Сохранить

разряд

РОН во

 

T Rr(b)

 

T

1

 

 

 

флаге T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BLD

 

Rd, b

 

Загрузить разряд из флага T в

 

Rd(b) T

 

Нет

1

 

 

 

РОН

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SEC

 

Нет

 

Установить флаг переноса

 

C 1

 

C

1

 

CLC

 

Нет

 

Сбросить флаг переноса

 

C 0

 

C

1

 

SEN

 

Нет

 

Установить флаг отрицатель-

 

N 1

 

N

1

 

 

 

 

 

ного числа

 

 

 

 

 

 

 

 

CLN

 

Нет

 

Сбросить флаг отрицательно-

 

N 0

 

N

1

 

 

 

 

 

го числа

 

 

 

 

 

 

 

 

SEZ

 

Нет

 

Установить флаг нуля

 

Z 1

 

Z

1

 

CLZ

 

Нет

 

Сбросить флага нуля

 

Z 0

 

Z

1

 

SEI

 

Нет

 

Установить флаг разрешения

 

I 1

 

I

1

 

 

 

прерываний

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

 

 

3

 

 

4

 

5

6

 

CLI

 

Нет

 

Сбросить

флаг

разрешения

 

I 0

 

I

1

 

 

 

прерываний

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SES

 

Нет

 

Установить

флаг

числа со

 

S 1

 

S

1

 

 

 

знаком

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CLS

 

Нет

 

Сбросить флаг числа со зна-

 

S 0

 

S

1

 

 

 

 

 

ком

 

 

 

 

 

 

 

 

SEV

 

Нет

 

Установить

флаг

переполне-

 

V 1

 

V

1

 

 

 

 

 

ния

 

 

 

 

 

 

 

 

CLV

 

Нет

 

Сбросить флаг переполнения

 

V 0

 

V

1

 

SET

 

Нет

 

Установить флаг T

 

T 1

 

T

1

 

CLT

 

Нет

 

Сбросить флаг T

 

 

T 0

 

T

1

 

SEH

 

Нет

 

Установить флаг внутреннего

 

H 1

 

H

1

 

 

 

переноса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CLH

 

Нет

 

Сбросить флаг внутреннего

 

H 0

 

H

1

 

 

 

переноса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NOP

 

Нет

 

Нет операции

 

 

Нет

 

Нет

1

 

 

 

 

 

 

 

 

 

См. описание кон-

 

 

 

 

BREAK

 

Нет

 

Сброс

 

 

 

кретного микрокон-

 

Нет

1

 

 

 

 

 

 

 

 

 

троллера

 

 

 

 

SLEEP

 

Нет

 

Уменьшить

энергопотребле-

 

См. описание кон-

 

Нет

1

 

 

 

ние

 

 

 

кретного микрокон-

 

 

 

 

 

 

 

 

 

троллера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

См. описание кон-

 

 

 

 

WDR

 

Нет

 

Сбросить сторожевой таймер

 

кретного микрокон-

 

Нет

1

 

 

 

 

 

 

 

 

 

троллера

 

 

 

 

Условные обозначения:

 

 

 

 

 

 

 

Rd – результирующий (destination) и исходный РОН;

 

 

 

Rr – исходный (source) РОН;

I/O – регистр ввода-вывода;

b – разряд в регистре общего назначения или регистре ввода-вывода; s – разряд (флаг) в регистре состояния SREG;

Rdl – регистры R24, R26, R28, R30;

X, Y, Z – регистры-указатели для косвенной адресации (X = R27:R26, Y = R29:R28,

Z = R31:R30);

19

RAMPX, RAMPY, RAMPZ – регистры, связанные с регистрами-указателями X, Y и Z и

обеспечивающие косвенную адресацию по всему объёму памяти данных (при размере па-

мяти данных более 64 Кбайт) и доступ к размещённым в памяти программ константам в микроконтроллерах с размером памяти программ более 64 Кбайт;

РС – программный счѐтчик (Program Counter);

STACK – стек для хранения адресов возврата и содержимого регистров;

SP – указатель стека (Stack Pointer);

EIND – регистр, связанный с программным счётчиком и обеспечивающий косвенную адресацию по всему объёму памяти программ для микроконтроллеров с размером памяти программ более 64 Кбайт;

K6 – константа (6 разрядов), может быть константное выражение;

K8 – константа (8 разрядов), может быть константное выражение;

k – адресная константа для программного счѐтчика (размер зависит от команды); q – смещение при косвенной адресации (6 разрядов).

Разряды регистра состояния SREG: C – флаг переноса;

Z – флаг нулевого значения;

N – флаг отрицательного значения;

V – флаг переполнения;

S = N V – флаг для проверок со знаком при переполнении;

H – флаг полупереноса (переноса между третьим и четвѐртым разрядами байта);

T – флаг для команд пересылки;

I – флаг глобального разрешения (запрещения) прерываний.

Примечания: 1. Транслятор с языка ассемблера AVR-микроконтроллеров не различает

регистр символов.

2. Мнемокоды ANDI и CBR а также ORI и SBR транслируются в один и тот же машин-

ный код. Выбор между ними производится в зависимости от контекста программы.

3. Длительность выполнения команд условных переходов составляет 1 такт, если усло-

вие ложно (переход не производится), и 2 (3) такта (в зависимости от величины смещения),

если соответствующее условие истинно (производится переход).

4. Для команд доступа к данным длительность выполнения указана при обращении к внутренней оперативной памяти данных.