
Бродин В.Б., Калинин А.Б. Схемы на микроконтроллерах и БИС программируемой логики, 2002
.pdfПРИЛОЖЕНИЕ 2 КОМАНДЫ МИКРОКОНТРОЛЛЕРОВ AVR ФИРМЫ ATMEl- |
389 |
Синтаксис |
Операнды |
PC |
Признаки |
ROR Rd |
0<d^31 |
PC = PC + 1 |
S,V,N,Z,C |
Слов |
1 (2 байта) |
|
|
Циклов |
1 |
|
|
Команда SBCI
Вычитает из регистра константу с учетом значения флага С,
размещает результат в регистре Rd |
|
||
Операция |
Rd |
= Rd - К - С |
|
|
|
||
Синтаксис |
|
Операнды |
PC |
SBCI Rd,K |
16<d<3l, |
PC = PC + 1 |
|
|
|
0^К<255 |
|
Признаки |
H,S,V,N,Z,C |
|
|
Слов |
1 (2 |
байта) |
|
Циклов |
1 |
|
|
Команда SBI
Устанавливает определенный бит в регистре ввода/вывода Команда работает с нижними 32 регистрами ввода/вывода (с адресами в диапазоне
0 - 31 )
Операция
|
1 /0 (Р ,Ь ) = 1 |
|
Синтаксис |
Операнды |
PC |
SBI P,b |
0<Р<31, 0<b<7 |
PC = PC + 1 |
Слов |
1 (2 байта) |
|
Циклов |
2 |
|
Команда SBIC
Тестирует отдельный бит в регистре ввода/вывода и пропускает следующую команду, если бит сброшен Команда работает с нижними 32 регистрами ввода/вывода (адреса 0 - 31)
Операция
if I/0 (P ,b ) = 0 then PC = PC + 2 (or 3) else PC = PC + 1
390 |
|
СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ |
Синтаксис |
Операнды |
|
SBIC Р,Ь |
0<Р<31, 0<Ь<7 |
|
PC |
|
|
PC |
= PC + 1, если |
условие false |
PC |
= PC + 2, если |
следующая команда однословная |
PC |
= PC + 3, если |
следующая команда двухсловная |
Слов |
1(2 байта) |
Циклов 2 если условие false 3 если условие true
Команда SBIS |
|
|
|
|
||
Тестирует |
отдельный бит в |
регистре ввода/вывода и пропускает |
||||
следующую команду, если |
бит |
установлен Команда работает |
с нижни |
|||
32 регистрами ввода/вывода (адреса 0-31) |
|
|||||
Операция |
|
|
|
|
|
|
|
if |
I/0 (P ,b ) |
= 1 then PC = PC + 2 (or 3) |
|
||
|
|
|
|
|
else PC = PC + 1 |
|
Синтаксис |
|
|
Операнды |
|
||
SBIS P,b |
|
|
0<P<31, 0<b<7 |
|
||
PC |
|
|
|
|
|
|
PC |
= PC + 1, если условие false |
|
||||
PC |
= PC + 2, если |
следующая команда однословная |
|
|||
PC |
= PC +3, если |
следующая команда двухсловная |
|
|||
Слов |
|
1(2 байта) |
|
|
|
|
Циклов |
2 если условие false |
|
||||
|
|
3 если условие true |
|
Команда SBIW
Вычитает непосредственное значение (0 - 63) из регистровой пары и размещает результат в регистровой паре Команда работает с верхними четырьмя регистровыми парами и удобна для операций с регистрамиуказателями
Операция
Rdh Rdl = Rdh Rdl - К
ПРИЛОЖЕНИЕ 2 КОМАНДЫ МИКРОКОНТРОЛЛЕРОВ AVR ФИРМЫ ATMEl- |
391 |
Синтаксис |
|
Операнды |
PC |
SBIW Rdl,K |
dl е [24,26,28,30] |
PC = PC + 1 |
|
|
|
0<;K<;63 |
|
Признаки |
S,V,N,Z,C |
|
|
Слов |
1 (2 |
байта) |
|
Циклов |
2 |
|
|
Команда SBR
Устанавливает определенные биты регистра Rd Выполняет операцию логическое ИЛИ над содержимым регистра Rd и константой К, размещает результат в регистре Rd
Операция
|
Rd |
= Rd or К |
|
Синтаксис |
|
Операнды |
PC |
SBR Rd,K |
|
16<;d<31, |
PC = PC + 1 |
|
|
0<;K<;255 |
|
Признаки |
S,V(0),N,Z |
|
|
Слов |
1 (2 |
байта) |
|
Циклов |
1 |
|
|
Команда SBRC
Тестирует отдельный бит регистра и пропускает следующую команду, если бит сброшен
Операция
if Rr(b) = 0 then PC = PC + 2 (or 3) else PC = PC + 1
Синтаксис |
|
Операнды |
|
SBRC Rr,b |
0<r<3l, 0<;b<7 |
||
PC |
|
|
|
PC |
= PC + 1, если условие false |
||
PC |
= PC + 2, если следующая команда однословная |
||
PC |
= PC + 3, если следующая команда двухсловная |
||
Слов |
1 |
(2 байта) |
|
Циклов |
1 |
если условие false |
|
|
|
2 если условие true |
392 |
СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ |
Команда SBRS
Тестирует отдельный бит регистра и пропускает следующую команду, если бит установлен
Операция
if Rr(b) = 1 then PC = PC + 2 (or 3) else PC = PC + 1
Синтаксис |
|
Операнды |
|
SBRS Rr,b |
(ter<31, 0<b<7 |
||
PC |
|
|
|
PC |
= PC + 1, если условие false |
||
PC |
= PC + 2, если следующая команда однословная |
||
PC |
= PC + 3, если следующая команда двухсловная |
||
Слов |
1 |
(2 байта) |
|
Циклов |
1 |
если условие false |
|
|
|
2 если условие true |
Команда SEC
Устанавливает флаг переноса (С) в регистре SREG Операция
|
С = 1 |
|
|
|
|
Синтаксис |
|
Операнды |
PC |
|
Признаки |
SEC |
|
|
PC |
= PC + 1 |
C(l) |
Слов |
1 |
(2 байта) |
|
|
|
Циклов |
1 |
|
|
|
|
Команда SEH
Устанавливает флаг полупереноса (Н) в регистре SREG Операция
|
Н = 1 |
|
|
Синтаксис |
Операнды |
PC |
Признаки |
SEH |
|
PC = PC + 1 |
H(l) |
Слов |
1 (2 байта) |
|
|
Циклов |
1 |
|
|
Команда SLEEP
Устанавливает «спящий» режим в зависимости от состояния регистра управления MCUCR При появлении прерывания контроллер «просыпается», выполняет одну команду после SLEEP и затем отрабатывает прерывание
Синтаксис |
|
Операнды |
PC |
|
|
SLEEP |
|
|
|
PC = PC + 1 |
|
Слов |
1 (2 байта) |
|
|
|
|
Циклов |
1 |
|
|
|
|
Команда ST |
|
|
|
|
|
Загружает |
один |
байт из |
регистра в |
SRAM Адрес ячейки |
SRAM |
находится в одном из 16-битных регистров-указателей X, Y или Z |
|||||
регистрового файла |
Доступ к памяти осуществляется внутри текущей |
||||
страницы SRAM (64 |
Кбайта) |
Для доступа к другой странице |
SRAM |
необходимо изменить номер страницы в регистре RAMPX, RAMPY или RAMPZ (в зависимости от выбранного регистра-указателя)
Операция |
|
Комментарий |
|
||
(i) (R) |
= Rr |
|
R - X / Y / Z Не изменяется |
||
(и) (R) |
= Rr, |
R= R+l |
R - X / Y / Z |
|
|
|
|
|
После инкрементирования |
||
(in) R |
= R-l, |
(R) = Rr |
R - X / Y / Z |
|
|
|
|
|
До декрементирования |
||
Синтаксис |
Операнды |
PC |
|
Обозначения |
|
ST R,Rr |
0<r<31 |
PC |
= PC + 1 |
R - X / Y / Z |
|
(n)ST R+,Rr |
0<r<3l |
PC |
= PC + 1 |
R - X / Y / Z |
|
(ni)ST -R,Rr |
0<r<31 |
PC |
= PC + 1 |
R - X / Y / Z |
|
Слов |
1 (2 |
байта) |
|
|
|
Циклов |
2 |
|
|
|
|
Команда STD
Загружает один байт из регистра в SRAM Адрес ячейки SRAM находится в одном из 16-битных регистров-указателей Y или Z регистрового файла Доступ к памяти осуществляется внутри текущей страницы SRAM (64К байта) Для доступа к другой странице SRAM необходимо изменить номер страницы в регистре RAMPY или RAMPZ (в зависимости от выбранного регистра-указателя)
396 |
|
СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ |
||
Операция |
|
Комментарий |
|
|
(R+q) |
= Rr |
|
R - Y /Z He изменяется, |
|
|
|
|
q - Смещение |
|
Синтаксис |
Операнды |
PC |
Обозначения |
|
STD R+q, Rr |
0<r<3l, |
PC = PC + 1 |
R - Y /Z |
|
|
|
0 ^ q ^ 6 3 |
|
|
Слов |
1 (2 байта) |
|
|
|
Циклов |
2 |
|
|
|
Команда STS
Запоминание байта из регистра в ячейке SRAM 16-битный адрес должен быть корректен Доступ к памяти ограничен текущей страницей SRAM (64 Кбайта) Для доступа к памяти выше 64 Кбайт используется регистр RAMPZ
Операция
(k)= Rr
Синтаксис |
Операнды |
PC |
|
STS k,Rr |
0<r<3l, |
PC |
= PC + 2 |
|
0<k<65535 |
|
|
Слов |
2 (4 байта) |
|
|
Циклов |
3 |
|
|
Команда SUB
Вычитание содержимого двух регистров Результат размещается в регистре Rd
Операция
|
Rd |
=Rd - Rr |
|
Синтаксис |
|
Операнды |
PC |
SUB Rd,Rr |
0<d<31, |
PC = PC + 1 |
|
|
|
0<r<31 |
|
Признаки |
H,S,V,N,Z,C |
|
|
Слов |
1 (2 байта) |
|
|
Циклов |
1 |
|
|
ПРИЛОЖЕНИЕ 2 КОМАНДЫ МИКРОКОНТРОЛЛЕРОВ AVR ФИРМЫ ATMEL |
397 |
Команда SUBI
Вычитание константы из содержимого регистра Результат размещается в регистре Rd Команда работает с регистрами R16-R31
Операция
|
Rd |
= Rd - К |
|
Синтаксис |
|
Операнды |
PC |
SUBI Rd,K |
16<d<31, |
PC -PC+1 |
|
|
|
0<K^255 |
|
Признаки |
H,S,V,N,Z,C |
|
|
Слов |
1 (2 |
байта) |
|
Циклов |
1 |
|
|
Команда SWAP
Меняет местами старший и младший тетрады регистра Операция
R(7-4) = Rd(3-0), R(3-0) = Rd(7-4)
Синтаксис |
Операнды |
PC |
SWAP Rd |
0<d<31 |
PC = PC + 1 |
Слов 1 (2 байта) Циклов 1
Команда TST
Тестирует регистр на нулевой или отрицательный результат Выполняет операцию AND регистра с самим собой Регистр остается неизмененным
Операция
|
|
Rd and Rd |
|
|
Синтаксис |
Операнды |
PC |
Признаки |
|
TST Rd |
|
0^d<31 |
PC = PC + 1 |
S,V(0),N,Z |
Слов |
1 |
(2 байта) |
|
|
Циклов |
|
1 |
|
|
Команда WDR
Перезапуск Watchdog таймера
Бродин В.Б., Калинин А.В.
Системы на микроконтроллерах и БИС программируемой логики
Главный редактор Я В Григорьева
Технический директор Е В Новиков
Главный художник О В Будко
ПО Л Ь З О В А Т Е Л Ь
Ра г а ( - ) Туре
I N L E G A L U S E
Подписано в печать 24 12 2001 Формат 70x100 ‘/ie Печать офсетная 25 печ л
Тираж 5000 экз Заказ № 5121
«Издательство ЭКОМ», лицензия ЛД № 065036 от 28 02 1997 ПБОЮЛ Тараев Сергей Павлович, лицензия ИД № 01612 от 19 04 2000 117342 Москва, ул Бутлерова, д 17, оф 105
Телефон для оптовых покупателей (095) 330-68-65
Отпечатано в ОАО «Можайский полиграфический комбинат» 143200 г Можайск, ул Мира, 93