8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
            
Раздел: Документация

0 ... 52 53 54 55 56 57 58 ... 195

Эти файлы (для каждой модели микроконтроллеров семейства) свободно распространяются фирмой Atmel вместе с документацией на микроконтроллеры (в частности, включаемые файлы для всех выпускаемых микроконтроллеров AVR входят в комплект бесплатно распространяемой интегрированной среды AVRStudio). Для РОН, используемых в индексных регистрах, в этих файлах определяются также дополнительные символические имена (Табл. 3.1).

Таблица 3.1. Дополнительные символические имена индексных регистров

Регистр

Символическое имя

R26

XL

R27

ХН

R28

YL

R29

YH

R30

ZL

R31

ZH

Названия этих включаемых файлов унифицированы и определяются следующим образом:

<номер модели>61ег. inc

Например, программа для микроконтроллера ATmegal28x должна содержать следующую директиву ассемблера:

.include "ml28def.inc",

Необходимо только помнить, что если для обращения к регистру ввода/вывода используются команды обмена с ОЗУ, то к символическому имени требуется прибавить число $20.

Как говорилось выше, в микроконтроллерах семейства память программ является 16-битной. Поэтому большинство команд описываются 16-битным словом, которое называется также кодом операции (КОП). Код операции — это число, расположенное в памяти программ и определяющее действие, которое необходимо произвести между источником и приемником. Некоторые команды, у которых один из операндов является 16-битным адресом, занимают две ячейки памяти программ. Соответственно, код операции таких команд является 4-байтным числом.

В ряде случаев значение операнда-источника может содержаться непосредственно в коде операции, а не в регистре. Это происходит в том случае, когда операндом-источником является константа.


Некоторые константы, которые могут быть полезны при написании программ, определены в упомянутых включаемых файлах:

IOEND

SRAM START

SRAM SIZE

RAMEND

XRAMEND

E2END

EEPROMEND

EEADRBITS

FLASHEND

PAGESIZE

NRWW START ADDR

NRWW STOP ADDR

RWW START ADDR

RWW STOP ADDR

FIRSTBOOTSTART

SMALLBOOTSTART

SECONDBOOTSTART

THIRDBOOTSTART

FOURTHBOOTSTART

LARGEBOOTSTART

значение верхнего адреса области РВВ;

значение младшего адреса ОЗУ, доступного для хранения данных;

объем ОЗУ в байтах;

значение верхнего адреса внутреннего ОЗУ;

•значение верхнего адреса внешнего ОЗУ (для моделей, не поддерживающих подключение внешнего ОЗУ, эта константа равна 0);

•значение верхнего адреса EEPROM; то же, что и E2END;

битов регистра

адреса памяти программ

число задействованных EEPROM;

-значение верхнего адреса (в 2-байтных словах);

-размер страницы памяти программ (в 2-байтных словах);

-младший адрес области NRWW;

-старший адрес области NRWW;

-младший адрес области RWW;

-старший адрес области RWW;

-наименьший размер области загрузчика;

-ТО же, ЧТО И FIRSTBOOTSTART,

-вторая возможная величина области загрузчика;

третья возможная величина области загрузчика;

-наибольший размер области загрузчика;

-ТО же, ЧТО И FOURTHBOOTSTART.

3.3. Типы команд

Все множество команд микроконтроллеров AVR семейства Mega можно разбить на несколько групп:

•команды логических операций;

•команды арифметических операций и команды сдвига;

•команды операций с битами;


•команды пересылки данных;

•команды передачи управления;

•команды управления системой.

Далее подробно описана каждая группа команд.

3.3.1.Команды логических операций

Эти команды позволяют выполнять стандартные логические операции над байтами, такие как логическое умножение (И), логическое сложение (ИЛИ), операцию «Исключающее ИЛИ», а также вычисление обратного (дополнение до единицы) и дополнительного (дополнение до двух) кодов числа. К этой группе можно отнести также команды очистки/установки регистров и команду перестановки полубайтов. Операции производятся между регистрами общего назначения, либо между регистром и константой; результат сохраняется в РОН. Все команды из этой группы выполняются за один такт.

3.3.2.Команды арифметических операций и команды сдвига

К данной группе относятся команды, позволяющие выполнять такие базовые операции, как сложение, вычитание, сдвиг (вправо и влево), инк-рементирование, декрементирование, а также умножение. Все операции производятся только над регистрами общего назначения. При этом микроконтроллеры AVR позволяют легко оперировать как знаковыми, так и беззнаковыми числами, а также работать с числами, представленными в дополнительном коде.

Почти все команды рассматриваемой группы выполняются за один такт. Команды умножения и команды, оперирующие 2-байтными значениями, выполняются за два такта.

3.3.3.Команды битовых операций

К данной группе относятся команды, выполняющие установку или сброс заданного бита РОН или РВВ. Причем для изменения битов регистра состояния SREG имеются отдельные команды (точнее говоря, эквивалентные мнемонические обозначения общих команд), так как проверка состояния битов именно этого регистра производится чаще всего. Условно к этой группе можно отнести также две команды передачи управления типа «проверка/пропуск», которые пропускают следующую команду в зависимости от состояния бита РОН или РВВ.

Все задействованные биты РВВ имеют свои символические имена. Определения этих имен описаны в том же включаемом файле, что и определения символических имен адресов регистров (см. раздел 3.2). Соответственно, после включения в программу указанного файла в командах



0 ... 52 53 54 55 56 57 58 ... 195