Написание программ AVR-МК. Основные команды и директивы ATmega16

Содержание

Слайд 2

1 Программные средства написания и отладки программ AVR-МК © Мазуренко А.В.,

1

Программные средства написания и отладки программ AVR-МК

© Мазуренко А.В., 2015

Микропроцессорные

устройства

Мнемоника – сокращение (3-5 символов) от слова или выражения, обозначающего действие, соответствующее команде.

Основные программные средства разработки:
AVR Studio
IAR
CodeVision AVR
Proteus, VMLab

Технология написания и отладки программ в ИСР AVR Studio

Слайд 3

2 Основные директивы компилятора AVR Studio © Мазуренко А.В., 2015 Микропроцессорные

2

Основные директивы компилятора AVR Studio

© Мазуренко А.В., 2015

Микропроцессорные устройства

DEVICE ‑

Определить устройство для которого компилируется программа
Синтаксис: .DEVICE <имя модели AVR-МК>
CSEG – Определить начало программного сегмента
Синтаксис: .CSEG
DSEG ‑ Определить начало сегмента данных в ОЗУ
Синтаксис: .DSEG
ESEG – Определить начало сегмента данных в ЭСППЗУ
Синтаксис: .ESEG
ORG ‑ Установить положение в сегменте
Синтаксис: .ORG <значение или математическое выражение>
DEF ‑ Назначить регистру символическое имя
Синтаксис: .DEF = <стандартное имя РОН>
Слайд 4

4 Принятые обозначения © Мазуренко А.В., 2015 Микропроцессорные устройства Обозначения, использованные

4

Принятые обозначения

© Мазуренко А.В., 2015

Микропроцессорные устройства

Обозначения, использованные при описании команд:
Rd

– результирующий (и исходный) регистр общего назначения; Rr – исходный регистр общего назначения; b – константа (3 бита), может быть константное выражение; AdrIO – константа (5-6 бит), может быть константное выражение; K8 – константа (8 бит), может быть константное выражение; AdrRAM – константа (размер зависит от инструкции и модели МК), может быть константное выражение; k – константа (размер зависит от инструкции), может быть константное выражение; X,Y,Z – регистры косвенной адресации (X=R27:R26, Y=R29:R28, Z=R31:R30).
Флаги регистра статуса:
С – флаг переноса;
Z – флаг нулевого значения;
N – флаг отрицательного результата операции;
V – флаг переполнения дополнительного кода;
S – флаг для проверок со знаком (N⊕V);
H – флаг полупереноса;
T – бит хранения пользовательского флага;
I – бит глобального разрешения\запрещения прерываний.
Обозначения систем счисления числовых величин:
0b – префикс для обозначения двоичной системы счисления;
0 – префикс для обозначения восьмеричной системы счисления;
0х (или $) – префиксы для обозначения шестнадцатеричной системы счисления;
Без префиксов – обозначение десятичной системы счисления.
Слайд 5

3 Основные команды пересылки данных AVR-МК © Мазуренко А.В., 2015 Микропроцессорные

3

Основные команды пересылки данных AVR-МК

© Мазуренко А.В., 2015

Микропроцессорные устройства

LDI –

Load Immediate – Загрузить константу в РОН
Операция: Rd ← К8

LDS – Load Direct from data space – Прямая загрузка из памяти данных
Операция: Rd ← RAM(AdrRAM)

Флаги на которые воздействует команда: не воздействует
Количество тактов выполнения операции: 1.

Флаги на которые воздействует команда: не воздействует
Количество тактов выполнения операции: 2.

STS – Store Direct to data space – Прямая загрузка в память данных
Операция: RAM(AdrRAM) ← Rr

Флаги на которые воздействует команда: не воздействует
Количество тактов выполнения операции: 2.

Слайд 6

4 Основные команды работы с битами AVR-МК © Мазуренко А.В., 2015

4

Основные команды работы с битами AVR-МК

© Мазуренко А.В., 2015

Микропроцессорные устройства

CLR

– Clear Register – Очистить регистр
Операция: Rd ← $00

SER – Set Register – Установить регистр
Операция: Rd ← $FF

Флаги на которые воздействует команда: S←0, V←0, N←0, Z←1
Количество тактов выполнения операции: 1.

Флаги на которые воздействует команда: не воздействует
Количество тактов выполнения операции: 1.

SBR – Set Bits in Register – Установить биты в регистре
Операция: Rd ← Rd V K8

Флаги на которые воздействует команда: S, V←0, N, Z
Количество тактов выполнения операции: 1.

Слайд 7

5 Основные арифметические и логические команды AVR-МК © Мазуренко А.В., 2015

5

Основные арифметические и логические команды AVR-МК

© Мазуренко А.В., 2015

Микропроцессорные устройства

ADD

– Add without Carry – Сложить без учета переноса
Операция: Rd ← Rd + Rr

ADС – Add with Carry – Сложить с учетом переноса
Операция: Rd ← Rd + Rr +С

Флаги на которые воздействует команда: H, S, V, N, Z, C
Количество тактов выполнения операции: 1.

Флаги на которые воздействует команда: H, S, V, N, Z, C
Количество тактов выполнения операции: 1.

SUB – Subtract without Carry – Вычесть без учета переноса
Операция: Rd ← Rd - Rr

Флаги на которые воздействует команда: H, S, V, N, Z, C
Количество тактов выполнения операции: 1.

Слайд 8

6 Основные команды ветвления AVR-МК © Мазуренко А.В., 2015 Микропроцессорные устройства

6

Основные команды ветвления AVR-МК

© Мазуренко А.В., 2015

Микропроцессорные устройства

RJMP – Relative

jump – Относительный переход
Операция: PC ← PC+1+k

JMP – Jump – Длинный относительный переход
Операция: PC ← PC+1+k

Флаги на которые воздействует команда: не воздействует
Количество тактов выполнения операции: 2.

Флаги на которые воздействует команда: не воздействует
Количество тактов выполнения операции: 3.

SBC – Subtract with Carry – Вычесть с учетом переноса
Операция: Rd ← Rd – Rr-С

Флаги на которые воздействует команда: H, S, V, N, Z, C
Количество тактов выполнения операции: 1.