Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Бродин В.Б., Калинин А.Б. Схемы на микроконтроллерах и БИС программируемой логики, 2002

.pdf
Скачиваний:
260
Добавлен:
11.03.2016
Размер:
9.1 Mб
Скачать

ПРИЛОЖЕНИЕ 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

 

 

ПРИЛОЖЕНИЕ 2 КОМАНДЫ МИКРОКОНТРОЛЛЕРОВ AVR ФИРМЫ ATMEL

393

Команда SEI

Устанавливает общий флаг прерываний I в регистре SREG Операция

 

I

= 1

 

 

Синтаксис

 

Операнды

PC

Признаки

SEI

 

 

PC = PC + 1

1(1)

Слов

1

(2 байта)

 

 

Циклов

1

 

 

 

Команда SEN

Устанавливает флаг отрицательного результата N в регистре SREG Операция

 

N = 1

 

 

Синтаксис

Операнды

PC

Признаки

SEN

 

PC = PC + 1

N(l)

Слов

1 (2 байта)

 

 

Циклов

1

 

 

Команда SER

Загружает $FF непосредственно в регистр Rd Операция

 

Rd

= $FF

 

Синтаксис

 

Операнды

PC

SER Rd

 

16<d<31

PC = PC + 1

Слов

1 (2

байта)

 

Циклов

1

 

 

Команда SES

Устанавливает флаг знака S в регистре SREG Операция

S

= 1

 

 

Синтаксис

Операнды

PC

Признаки

SES

 

PC = PC + 1

S(l)

394

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Слов

1 (2 байта)

Циклов

1

Команда SET

Устанавливает флаг Т в регистре SREG Операция

 

Т = 1

 

 

 

Синтаксис

Операнды

PC

 

Признаки

SET

 

PC

= PC + 1

T(l)

Слов

1 (2 байта)

 

 

 

Циклов

1

 

 

 

Команда SEV

Устанавливает флаг переполнения V в регистре SREG Операция

 

V

= 1

 

 

Синтаксис

 

Операнды

PC

Признаки

SEV

 

 

PC = PC + 1

V(l)

Слов

1

(2 байта)

 

 

Циклов

1

 

 

 

Команда SEZ

Устанавливает флаг нулевого результата Z в регистре SREG Операция

 

Z = 1

 

 

 

Синтаксис

Операнды

PC

 

Признаки

SEZ

 

PC

= PC + 1

Z(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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]