Перечень и форматы команд
Микроконтроллеры подгруппы PIC16F8X имеют простую и эффективную систему команд, состоящую всего из 35 команд.
Каждая команда МК подгруппы PIC16F8X представляет собой 14-битовое слово, разделенное на код операции (OPCODE), и поле для одного и более операндов, которые могут участвовать или не участвовать в этой команде. Система команд PIC16F8X является ортогональной и включает в себя команды работы с байтами, команды работы с битами и операции с константами и команды управления. В таблице 5.10 приведены описания полей команд.
Таблица 5.10. Описания полей команд МК семейства PIC16CXXX. | |
Поле | Описание |
f | Адрес регистра |
w | Рабочий регистр |
b | Номер бита в 8-разрядном регистре |
k | Константа |
x | Не используется. Ассемблер формирует код с x=0 |
d | Регистр назначения: d=0 – результат в регистре w d=1 – результат в регистре f По умолчанию d=1 |
label | Имя метки |
TOS | Beршина стека |
PC | Счетчик команд |
PCLATH | Регистр PCLATH |
GIE | Бит разрешения всех прерываний |
WDT | Сторожевой таймер |
/TO | Тайм-аут |
/PD | Выключение питания |
dest | Регистр назначения: рабочий регистр w или регистр, заданный в команде |
[ ] | Необязательные параметры |
( ) | Содержание |
→ | Присвоение |
< > | Поле номера бита |
Из набора |
Для команд работы с байтами f обозначает регистр, с которым производится действие; d – бит, определяющий, куда положить результат. Если d =0, то результат будет помещен в регистр w, при d=1 результат будет помещен в регистр «f», упомянутый в команде.
Для команд работы с битами b обозначает номер бита, участвующего в команде, а f – это регистр, в котором данный бит расположен.
Для команд передачи управления и операций с константами, k обозначает восьми- или одиннадцатибитную константу.
Почти все команды выполняются в течение одного командного цикла. В двух случаях исполнение команды занимает два командных цикла:
проверка условия и переход;
изменение программного счетчика как результат выполнения команды.
Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с частотой 4 МГц время исполнения командного цикла будет 1 мкс.
Основные форматы команд МК изображены на рис. 5.15.
Система команд МК подгруппы PIC16F8X приведена в табл. 5.11.
Рис. 5.15. Основные форматы команд.
Таблица 5.11. Система команд МК подгруппы PIC16F8X. | ||||
Мнемоника | Описание команды | Циклы | Биты состояния | Прим. |
ADDWF f, d | Сложение W с f | C ,DC ,Z | 1, 2 | |
ANDWF f, d | Логическое И W и f | Z | 1, 2 | |
CLRF f | Сброс регистра f | Z | ||
CLRW | Сброс регистра W | Z | ||
COMF f, d | Инверсия регистра f | Z | 1, 2 | |
DECF f, d | Декремент регистра f | Z | 1, 2 | |
DECFSZ f, d | Декремент f, пропустить команду, если 0 | 1(2) | 1, 2, 3 | |
INCF f, d | Инкремент регистра f | Z | 1, 2 | |
INCFSZ f, d | Инкремент f, пропустить команду, если 0 | 1(2) | 1, 2, 3 | |
IORWF f, d | Логическое ИЛИ W и f | Z | 1, 2 | |
MOVF f, d | Пересылка регистра f | Z | 1, 2 | |
MOVWF f | Пересылка W в f | |||
NOP - | Холостая команда | |||
RLF f, d | Сдвиг f влево через перенос | C | 1, 2 | |
RRF f, d | Сдвиг f вправо через перенос | C | 1, 2 | |
SUBWF f, d | Вычитание W из f | C,DC,Z | 1, 2 | |
SWAPF f, d | Обмен местами тетрад в f | 1, 2 | ||
XORWF f, d | Исключающее ИЛИ W и f | Z | 1, 2 | |
BCF f, b | Сброс бита в регистре f | 1, 2 | ||
BSF f, b | Установка бита в регистре f | 1, 2 | ||
BTFSC f, b | Пропустить команду, если бит в f равен нулю | 1(2) | ||
BTFSS f, b | Пропустить команду, если бит в f равен единице | 1(2) | ||
ADDLW k | Сложение константы и W | C, DC, Z | ||
ANDLW k | Логическое И константы и W | Z | ||
CALL k | Вызов подпрограммы | |||
CLRWDT - | Сброс сторожевого таймера WDT | /TO, /P | ||
GOTO k | Переход по адресу | |||
IORLW k | Логическое ИЛИ константы и W | Z | ||
MOVLW k | Пересылка константы в W | |||
RETFIE - | Возврат из прерывания | |||
RETLW k | Возврат из подпрограммы с загрузкой константы в W | |||
RETURN - | Возврат из подпрограммы | |||
SLEEP - | Переход в режим SLEEP | /TO, /P | ||
SUBLW k | Вычитание W из константы | C, DC, Z | ||
XORLW k | Исключающее ИЛИ константы и W | Z | ||
Примечания к таблице: Если модифицируется регистр ввода/вывода (например, MOVF PORTB,1), то используется значение, считываемое с выводов. Например, если в выходной защелке порта, включенного на ввод, находится «1», а внешнее устройство формирует на этом выводе «0», то в разряде данных будет записан «0». Если операндом команды является содержимое регистра TMRO (и, если допустимо, d=1), то предварительный делитель, если он подключен к TMRO, будет сброшен. Если в результате выполнения команды изменяется счетчик команд или выполняется переход по проверке условия, то команда выполняется за два цикла. Второй цикл выполняется как NOP. |
Дата добавления: 2015-02-10; просмотров: 736;