Перечень и форматы команд

Микроконтроллеры подгруппы 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;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.