- •«Инструментальные средства разработки аппаратно-программных систем»
- •Оглавление
- •7 Инструментальные средства разработки систем управления на
- •Введение. Управляющие системы на микроконтроллерах.
- •Характеристика микроконтроллеров семейства avr
- •1.1 Особенности микроконтроллеров
- •1.2 Характеристики микроконтроллера aTмega16
- •1.3 Условное графическое обозначение микроконтроллера
- •2 Архитектура микроконтроллера
- •2.1 Структура микроконтроллера
- •2.2 Организация программной памяти
- •Организация памяти данных
- •2.4 Арифметико-логическое устройство и регистр состояния процессора
- •Методы адресации. Форматы команд
- •Система команд
- •2.6.1 Команды передачи данных (пересылки)
- •2.6.2 Команды передачи управления
- •2.6.3 Команды арифметики и логики (вычислительные)
- •2.6.4 Команды сдвигов и операций с битами
- •2.7 Функционирование конвейера
- •3 Встроенные устройства
- •3. 1 Параллельные порты ввода/вывода
- •Подсистема прерываний микроконтроллера
- •Регистр флагов прерываний таймеров/счетчиков – tifr
- •Таймеры/счетчики
- •Общие сведения
- •Таймер/счетчик т0.
- •3.3.3 Таймер/счетчик т1.
- •Сторожевой таймер (Watchdog Timer).
- •3.4 Последовательные интерфейсы -spi и uart
- •3.4.1 Последовательный периферийный интерфейс - spi
- •3.4.2 Uart - универсальный последовательный порт
- •3.5 Аналоговый компаратор и ацп
- •3.5.1 Аналоговый компаратор
- •3.5.2 Аналого-цифровой преобразователь
- •3.6 Энергонезависимая память данных
- •4 Ассемблер микроконтроллеров avr
- •5 Взаимодействие микроконтроллера с объектом управления
- •5.1 Формирование временных интервалов (задержек)
- •5.1.1 Программный способ формирования временных интервалов
- •Ext_l: ldi r17, X ;х – число внутренних циклов
- •Ext_l: ldi r17, 53 ;Загрузка в r17 константы внутреннего цикла
- •5.2 Генерация импульсных сигналов управления с использованием программных задержек
- •5.2.1 Генерация последовательности импульсов с использованием программных задержек
- •5.2.2 Генерация пакета импульсов
- •5.2.3 Генератор заданного числа пакетов импульсов
- •Формирование импульсных сигналов управления с использованием таймеров микроконтроллера
- •5.4 Ожидание внешних событий
- •5.5 Обработка динамического дисплея
- •5.6 Особенности схемы дисплея в учебной системе управления.
- •5.7 Часы
- •5.8 Измерение временных параметров импульсов
- •5.9 Обработка клавиатуры
- •6 Программирование микроконтроллеров aТmega16
- •7 Инструментальные средства разработки сисТем управления на микроконтроллерах aTmega16
- •Дубров ф.И. Встроенные системы управления на микроконтроллере aTmega16
2.6.2 Команды передачи управления
Таблица 5. Команды передачи управления (переходов, вызовов и возвратов подпрограмм)
Мнемоника |
Операнды |
Описание |
Операция |
Кол-во циклов |
RJMP |
Adr12 |
Переход короткий |
PCPC+Adr12+1 |
2 |
LJMP |
|
Переход косвенный |
PCZ |
2 |
JMP |
Adr22 |
Переход длинный |
PCAdr22 |
3 |
RCALL |
Adr12 |
Вызов подпрограммы короткий |
(SP) PCL, SP-1, (SP-1) PCH, SP-1, PCPC+Adr12+1 |
3 |
ICALL |
|
Вызов подпрограммы косвенный |
(SP) PCL, SP-1, (SP-1) PCH, PCZ |
3 |
CALL |
Adr16 |
Длинный вызов подпрограммы |
(SP) PCL, (SP-1) PCH, SP-1, PCAdr16 |
4 |
RET |
|
Возврат из подпрограммы |
SP+1, PCH (SP), SP+1, PCL (SP) |
4 |
RETI |
|
Возврат из прерывания |
SP+1, PCH (SP), SP+1, PCL (SP) |
4 |
CPSE |
Rd,Rr |
Если равны, то пропуск следующей команды |
если Rd=Rr, то PCPC+2 (или3),иначе PC+1 |
1/2/3 |
SBRC |
Rr,b |
Если бит b в регистре РОН очищен, то пропуск следующей команды |
if Rr(b)=0 then PCPC+2 (or 3) else PC+1 |
1/2/3 |
SBRS |
Rr,b |
Пропуск следующей команды, если бит в регистре установлен |
if Rr(b)=1 then PCPC+2 (or 3) else PC+1 |
1/2/3 |
SBIS |
I/O,b |
Пропуск следующей команды, если бит в регистре I/O равен 1 |
if I/OP(b)=1 then PCPC+2 (or 3) else PC+1 |
1/2/3 |
SBIC |
I/O,b |
Пропуск следующей команды, если бит в регистре I/O очищен |
if I/OP(b)=0 then PCPC+2 (or 3) else PC+1 |
1/2/3 |
BRBS |
s,rel |
Переход, если в регистре SREG установлен бит s |
if SREG(s)=1 then PCPC+rel+1 |
1/2 |
BRBC |
s,rel |
Переход, если в регистре SREG очищен бит s |
if SREG(s)=0 then PCPC+rel+1 |
1/2 |
BREQ |
rel |
Переход, если результат равен нулю |
if Z=1 then PCPC+rel+1 |
1/2 |
BRNE |
rel |
Переход, если резуль- тат не равен нулю |
if Z=0 then PCPC+rel+1 |
1/2 |
BRCS |
rel |
Переход, если флаг переноса установлен |
if С=1 then PCPC+rel+1 |
1/2 |
BRCC |
rel |
Переход, если флаг переноса очищен |
if С=0 then PCPC+rel+1 |
1/2 |
BRMI |
rel |
Переход, если минус |
if N=1 then PCPC+rel+1 |
1/2 |
BRPL |
rel |
Переход, если плюс |
if N=0 then PCPC+rel+1 |
1/2 |
BRGE |
rel |
Переход, если больше или равно (с учетом знака) |
if NV=0 then PCPC+rel+1 |
1/2 |
BRLT |
rel |
Переход, если меньше (со знаком) |
if NV=1 then PCPC+rel+1 |
1/2 |
BRHS |
rel |
Переход, если флаг полупереноса установлен |
if H=1 then PCPC+rel+1 |
1/2 |
BRHC |
rel |
Переход, если флаг полупереноса очищен |
if H=0 then PCPC+rel+1 |
1/2 |
BRTS |
rel |
Переход, если флаг Т установлен |
if Т=1 then PCPC+rel+1 |
1/2 |
BRTC |
rel |
Переход, если флаг Т очищен |
if Т=0 then PCPC+rel+1 |
1/2 |
BRVS |
rel |
Переход, если флаг переполнения установлен |
if V=1 then PCPC+rel+1 |
1/2 |
BRVC |
rel |
Переход, если флаг переполнения очищен |
if V=0 then PCPC+rel+1 |
1/2 |
BRIE |
rel |
Переход, если гло- бальное прерывание разрешено |
if I=1 then PCPC+rel+1 |
1/2 |
BRID |
rel |
Переход, если гло- бальное прерывание запрещено |
if I=0 then PCPC+rel+1 |
1/2 |
К этой группе команд относятся команды вызовов и возвратов из подпрограмм и переходов. Команды безусловных переходов и вызовов подпрограмм имеют прямой, относительный и косвенный способы адресации. Командами JMP и CALL обеспечиваются безусловный переход и вызов подпрограммы в пределах всего адресного пространства программной памяти 4М байт микроконтроллеров старших моделей семейства AVR. Длина этих команд составляет два слова (команда занимает две ячейки памяти).
Команды RJMP и RCALL обеспечивают переход и вызов подпрограммы в пределах 2К байт адресного пространства программной памяти. При выполнении этих команд 12-разрядное смещение адреса (Adr12) добавляется к содержимому программного счетчика РС. Формат команд составляет 1 слово.
Команды IJMP и ICALL обеспечивают косвенный переход и вызов подпрограммы по адресу, размещенному в регистре Z (содержимое регистра Z помещается в счетчик команд). Формат команд составляет 1 слово.
В составе команд условных переходов имеется 5 команд, по которым выполняется операция пропуска следующей команды при выполнении условия в команде. В зависимости от выполнения или невыполнения условия, а также от длины пропускаемой следующей команды эти команды могут иметь от одного до трех циклов. Второй цикл необходим для считывания двухбайтной команды, размещенной по адресу перехода. Если длина пропускаемой команды составляет два слова, то при выполнении условия команда выполняется за три цикла. Условия пропуска следующей команды: равенство содержимого двух регистров общего назначения и состояние бита в любом регистре. Обычно в качестве следующей команды используется команда безусловного перехода.
“Классические” условные переходы представлены командами коротких переходов в соответствии с состояниями любого из разрядов регистра состояния SREG. Например: по команде BRNE rel осуществляется переход, если результат операции не равен нулю, т.е. если флаг Z имеет нулевое значение. Если результат операции равен нулю(флаг Z=1), то будет выполняться следующая команда. Условные переходы осуществляются в пределах смещения rel =– 64 ÷ +63 от текущего состояния счетчика команд.
Для обеспечения более длинных переходов по адресу перехода помещают команду безусловного перехода.