- •«Инструментальные средства разработки аппаратно-программных систем»
- •Оглавление
- •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.4 Команды сдвигов и операций с битами
Таблица 7. Команды сдвигов и операций с битами
Мнемо- ника |
Операнды |
Описание |
Операция |
Флаги |
Кол-во циклов |
LSL |
Rd |
Логический сдвиг влево |
Rd(n+1)Rd(n), Rd(0)0, CRd(7) |
Z,C,N,V,H |
1 |
LSR |
Rd |
Логический сдвиг вправо |
Rd(n)Rd(n+1), Rd(7)0, CRd(0) |
Z,C,N,V |
1 |
ROL
|
Rd |
Сдвиг влево через перенос |
Rd(0)C,Rd(n+1)Rd(n),CRd(7) |
Z,C,N,V,H |
1 |
ROR |
Rd |
Сдвиг вправо через перенос |
Rd(7)C,Rd(n)Rd(n+1),CRd(0) |
Z,C,N,V |
1 |
ASR |
Rd |
Арифметический сдвиг вправо |
Rd(n)Rd(n+1),CRd(0) |
Z,C,N,V |
1 |
SWAP |
Rd |
Обмен тетрадами |
Rd(3-0)↔Rd(7-4) |
|
1 |
BSET |
s |
Установить флаг |
SREG(s)1 |
SREG(s) |
1 |
BCLR |
s |
Очистить флаг |
SREG(s)0 |
SREG(s) |
1 |
SBI |
I/O,b |
Установить бит в регистре I/O |
I/O(b)1 |
|
2 |
CBI |
I/O,b |
Очистить бит в регистре I/O |
I/O(b)0 |
|
2 |
BST |
Rd,b |
Переписать бит из регистра во флаг Т |
TRd(b) |
T |
1 |
BLD |
Rd,b |
Загрузить Т флаг в бит регистра |
Rd(b)T |
|
1 |
SEC |
|
Установить флаг переноса |
С1 |
С |
1 |
CLC |
|
Очистить флаг переноса |
С0 |
С |
1 |
SEN |
|
Установить флаг отрицательного значения |
N1 |
N |
1 |
CLN |
|
Очистить флаг отрицательного значения |
N0 |
N |
1 |
SEZ |
|
Установить флаг нулевого значения |
Z1 |
Z |
1 |
CLZ |
|
Очистить флаг нулевого значения |
Z0 |
Z |
1 |
SEI |
|
Установить флаг глобального разре- шения прерываний |
I1 |
I |
1 |
CLI |
|
Очистить флаг гло –бального разрешен. прерываний |
I0 |
I |
1 |
SES |
|
Установить флаг знака |
S1 |
S |
1 |
CLS |
|
Очистить флаг знака |
S0 |
S |
1 |
SEV |
|
Установить флаг переполнения |
V1 |
V |
1 |
CLV |
|
Очистить флаг переполнения |
V0 |
V |
1 |
SET |
|
Установить флаг T |
T1 |
T |
1 |
CLT |
|
Очистить флаг T |
T0 |
T |
1 |
SHE |
|
Установить флаг полупереноса |
H1 |
H |
1 |
CLH |
|
Очистить флаг полупереноса |
H0 |
H |
1 |
NOP |
|
Выполнить пустую команду |
|
|
1 |
SLEEP |
|
Установить режим SLEEP |
|
|
1 |
WDR |
|
Сбросить сторожевой таймер |
|
|
1 |
Командами LSL и LSR выполняются операции логических сдвигов в указанном регистре общего назначения влево и вправо, причем выдвигаемый из регистра разряд помещается в бит переноса С, а в вдвигаемый разряд регистра помещается 0.
Команда логического сдвига вправо LSR Rd:
Командами ROL и ROR производится циклический сдвиг содержимого указанного в команде регистра общего назначения влево или вправо соответственно через бит переноса.
Сдвиг влево через бит переноса ROL Rd:
Командой арифметического сдвига ASR производится сдвиг вправо содержимого регистра, с помещением выдвигаемого разряда в бит переноса и заполнение шестого разряда регистра старшим (знаковым) разрядом.
Команды обработки битов представлены командами установки и сброса любого бита в регистре состояния контроллера и в любом регистре ввода-вывода, адрес которого в пределах 0 - $1f. а также командами пересылки указанного бита из указанного регистра общего назначения в бит копии Т и обратно.
Для удобства чтения команд, кроме общих команд установки/сброса бита регистра состояния, имеются индивидуальные команды для таких же операций. Например, команды BSET 0 и SEC выполняют одинаковую операцию (имеют одинаковый код) установки бита переноса С, однако вторая команда более читаема (Setting C).