- •1. Микроконтроллер aTtiny2313/V фирмы Atmel
- •1.1 Структура, основные характеристики и возможности
- •1.2 Особенности микросхемы aTtiny2313
- •2. Центральное ядро процессора
- •2.1 Кратка характеристика архитектуры
- •2.4 Системная перепрограммируемая Flash-память программ
- •2.5 Память данных sram
- •3. Порты ввода-вывода
- •3.1 Использование портов для цифрового ввода-вывода
- •4. Внешние прерывания
- •4.1 Назначение и режимы работы
- •5.4 Используемые обозначения
- •5.5 Модуль счёта
- •5.6 Модуль совпадения
- •5.7 Принудительное изменение состояния выхода совпадения
- •5.8 Блокировка режима совпадения в момент записи регистра tcnt0
- •5.9 Использование модуля прерывания
- •5.10 Модуль вывода сигнала совпадения
- •5.11 Режимы работы
- •5.12 Режим «Normal»
- •5.13 Режим сброса при совпадении (стс)
- •5.14 Режим FastPwm (быстрый шим)
- •5.15 Шим, корректный по фазе (PhaseCorrectPwm)
- •6. Описание системы команды
- •6.1 Система команд. Общие сведения о системе команд
- •6.2 Система команд
- •6.3 Команды регистровых операций
- •6.4 Команды с обращением по адресу sram
- •6.5 Команды с обращением к регистрам ввода-вывода
- •6.6 Команда с обращением к FlashRom
- •6.7 Команды операций с битами
- •6.8 Команды управления ходом программы
6. Описание системы команды
6.1 Система команд. Общие сведения о системе команд
В семействе AVR система команд у микроконтроллеров разных типов содержат от 89 до 130 команд. У микроконтроллеров типа 2323, 2343, 2313, 4433, 8515 и 8535 в систему команд входят 118 команд. Эту систему команд будем называть базой.
В табл. 2.1 – 2.13 описаны операции, выполняемые по командам базовой системы, и приведены мнемокоды команд, используемые при разработке программы на языке AVR Ассемблера. В таблицах дана сквозная нумерация команд, используемая далее в тексте.
Базовая система команд содержит:
▪ 33 команды регистровых операций, при выполнении которых используются только регистры общего назначения (команды №№ 1-33);
▪ 26 команд с обращением по адресу в адресном пространстве SRAM (команды №№ 34-59);
▪ 2 команды с обращением к регистрам ввода-вывода (команды №№ 60 и 61);
▪ 1 команда с обращением к FlashROM (команда № 62);
▪ 22 команды операций с битами в разрядах регистров общего назначения и регистров ввода-вывода (команды №№ 63-84);
▪ 34 команды управления ходом программы (команды №№ 85-118).
В систему команд микроконтроллеров типа t11, t12, t15, 1200, и t28, у которых нет SRAM, не входят команды с обращением по адресу в адресном пространстве SRAM за исключением команд с мнемокодами LDRd, Z (№ 40) и STZ, Rr (№ 41), по которым производится обращение к регистрам общего назначения и регистрам ввода-вывода с использованием косвенной адресации. В систему команд у этих микроконтроллеров не входят также 2 команды регистровых операций (№№ 32 и 33) и две команды управления ходом программы (№№ 86 и 88). У микроконтроллеров типа 1200 в систему команд не входит также команда с обращением к FlashROM, а у микроконтроллера типа m163, кроме того, с наличием аппаратного умножителя.
Таблица 2
№ |
Операция |
Мнемокод команды |
Признаки результата |
|||||||||||
H |
S |
V |
N |
Z |
C |
|||||||||
1 |
$00→Rd ((Rd) (Rd) →Rd) |
CKR Rd |
|
0 |
0 |
0 |
1 |
|
||||||
2 |
(Rd) → Rd((Rd)^( Rd) → Rd) |
TST Rd |
|
+ |
0 |
+ |
+ |
|
||||||
3 |
(Rd) → Rd($FF-( Rd) → Rd) |
COM Rd |
|
+ |
0 |
+ |
+ |
1 |
||||||
4 |
- (Rd) → Rd($00-( Rd) → Rd) |
NEG Rd |
+ |
+ |
+ |
+ |
+ |
+ |
||||||
5 |
(Rd)+1→ Rd |
INC Rd |
|
+ |
+ |
+ |
+ |
|
||||||
6 |
(Rd)-1→ Rd |
DEC Rd |
|
+ |
+ |
+ |
+ |
|
||||||
7 |
0→( Rd) →C |
LSR Rd |
|
+ |
+ |
0 |
+ |
+ |
||||||
8 |
C←( Rd) ←0 |
LSL Rd |
+ |
+ |
+ |
+ |
+ |
+ |
||||||
9 |
C→( Rd) →C |
ROR Rd |
|
+ |
+ |
+ |
+ |
+ |
||||||
10 |
C←( Rd) ←C |
ROL Rd |
+ |
+ |
+ |
+ |
+ |
+ |
||||||
11 |
Rd.7→( Rd.6- Rd.0) →C |
ASR Rd |
|
+ |
+ |
+ |
+ |
+ |
||||||
12 |
Rd.4-7↔ Rd.0-3 |
SWAP Rd |
|
|
|
|
|
|
||||||
13 |
(Rr) → Rd |
MOV Rd, Rr |
|
|
|
|
|
|
||||||
14 |
(Rd)+(Rr) → Rd |
ADD Rd, Rr |
+ |
+ |
+ |
+ |
+ |
+ |
||||||
15 |
(Rd)+(Rr)+C→ Rd |
ADC Rd, Rr |
+ |
+ |
+ |
+ |
+ |
+ |
||||||
16 |
(Rd)-(Rr) → Rd |
SUB Rd, Rr |
+ |
+ |
+ |
+ |
+ |
+ |
||||||
17 |
(Rd)-(Rr)-C→ Rd |
SBC Rd, Rr |
+ |
+ |
+ |
+ |
+ |
+ |
||||||
18 |
(Rd)-(Rr) |
CP Rd, Rr |
+ |
+ |
+ |
+ |
+ |
+ |
||||||
19 |
(Rd)-(Rr)-C |
CPC Rd, Rr |
+ |
+ |
+ |
+ |
+ |
+ |
||||||
20 |
(Rd) ^(Rr) → Rd |
AND Rd, Rr |
|
+ |
0 |
+ |
+ |
+ |
||||||
21 |
(Rd)˅(Rr) → Rd |
OR Rd, Rr |
|
+ |
0 |
+ |
+ |
|
||||||
22 |
(Rd) (Rr) → Rd |
EOR Rd, Rr |
|
+ |
0 |
+ |
+ |
|
|
|||||
d=0-31; r=0-31 |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Таблица 3
№ |
Операция |
Мнемокод команды |
Признаки результата |
|||||
H |
S |
V |
N |
Z |
C |
|||
23 |
$FF→ Rd |
SER Rd |
|
|
|
|
|
|
24 |
K→ Rd |
LDI Rd, K |
|
|
|
|
|
|
25 |
(Rd)-K→ Rd |
SUBI Rd, K |
+ |
+ |
+ |
+ |
+ |
+ |
26 |
(Rd)-K-C→ Rd |
SBCI Rd, K |
+ |
+ |
+ |
+ |
+ |
+ |
27 |
(Rd)-K |
CPI Rd, K |
+ |
+ |
+ |
+ |
+ |
+ |
28 |
(Rd) ^K→ Rd |
ANDI Rd, K |
|
+ |
0 |
+ |
+ |
|
29 |
(Rd) ^K→ Rd |
CBR Rd, K |
|
+ |
0 |
+ |
+ |
|
30 |
(Rd) ˅K→ Rd |
ORI Rd, K |
|
+ |
0 |
+ |
+ |
|
31 |
(Rd) ˅K→ Rd |
SBR Rd, K |
|
+ |
0 |
+ |
+ |
|
d=16-31(!); K=0-255 |
||||||||
Таблица 4
№ |
Операция |
Мнемокод команды |
Признаки результата |
|||||
H |
S |
V |
N |
Z |
C |
|||
32 |
(Rd+1, Rd)+K→ Rd+1,Rd |
ADIWRd, K |
|
+ |
+ |
+ |
+ |
+ |
33 |
(Rd+1,Rd)-K→ Rd+1,Rd |
SBIW Rd, K |
|
+ |
+ |
+ |
+ |
+ |
d=24, 26, 28,30; K=0-63 |
||||||||
