Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Система команд. Каждая команда PIC16C71 представляет собой 14‑разрядное слово, содержащее поле кода операции (OPCODE) и поле одного или более операндов



Каждая команда PIC16C71 представляет собой 14‑разрядное слово, содержащее поле кода операции (OPCODE) и поле одного или более операндов, которые могут участвовать в этой команде. Формат команды приведен на рис. 3.11. Описание полей команды приведено в табл. 3.7.

Система команд PIC16С71 приведена в табл. 3.8 и включает в себя команды работы с байтами, команды работы с битами, команды управления и операции с константами. Она отличается от системы команд PIC16C5Х лишь тем, что группа команд передачи управления и операций с константами дополнена четырьмя новыми командами: ADDLW, RETFIE, RETURN, SUBLW. Эти команды в табл.3.8 выделены курсивом.

Для команд работы с байтами "f" обозначает регистр, с которым производится действие, а бит "d" определяет регистр назначения. Если "d"=0 результат помещается в W регистр, при "d"=1 результат помещается в регистр "f", заданный в команде.

Для команд работы с битами "b" обозначает номер бита, участвующего в команде, а "f" - это регистр в котором этот бит расположен. Для команд управления и операций с константами "k" обозначает 8-ми или 11- битную константу или идентификатор.

Все команды выполняются в течение одного командного цикла, кроме следующих двух случаев:

- переход по проверке условия, если результат поиска истина;

- изменение программного счетчика как результат выполнения команды.

В этих случаях команда выполняется за два цикла, с выполнением второго цикла как NOP. Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с тактовой частотой 4 Мгц время выполнения команды составит 2 мкс.


Команды работы с байтами

13 8   6 0
OPCODE d f(file#)

d=0 для обозначения W

d=1 для обозначения F

f=7 разрядный адрес регистра

Команды работы с битами

13 10 9 7 6 0
OPCODE b(bit) f(file#)

b=3 разрядный номер бита

f=7 разрядный адрес регистра

Команды управления и операций с константами (кроме GOTO

и CALL)

13 8 7 0
OPCODE k(константа)

k=8-ми разрядное значение

Команда GOTOи CALL

3 11 10 0
OPCODE k(константа)

k=11-ти разрядное значение

Рис. 3.13. Общий формат команды

Таблица 3.7

Описание полей команд PIC 16C71

Поле Описание
f Адрес регистра
w Рабочий регистр
b Номер бита в 8-ми разрядном регистре
k Константа
x Не используется, ассемблер формирует код с х=0

Окончание таблицы 3.7

Поле Описание
d Регистр назначения: D=0 результат в регистре W D=1 результат в регистре f По умолчанию d=1
Label Имя метки
TOS Вершина стека (Top Of Stack)
PC Счетчик команд (Program Counter)
/TO Тайм-аут (Time Out)
/PD Выключение питания (Power Down)
Dest Регистр назначения: рабочий регистр W или регистр, заданный в команде
[ ] Необязательные параметры
() Содержание
? Присвоение
< > Битовое поле
Є Из набора

Таблица 3.8

Система команд PIC 16C71

Мнемокод Название команды Циклы Код команды (14 бит)   Биты сос- тоя- ния При- меча- ния
Команды работы с байтами
ADDWF f,d Сложение W с f   00 0001 11df ffff C,DC, Z 2,3
ANDWF f,d Логическое И W и f   00 0001 01df ffff Z 2,3
CLRF f Сброс регистра f   00 0000 011f ffff Z  
CLRW - Сброс регистра W   00 0000 0100 0000 Z -
COMF f,d Инверсия регистра f   00 0010 01df ffff Z -
DECF f,d Декремент регистра f   00 0000 11df ffff Z 2,3
DECFSZ f,d Декремент f, пропустить команду, если 0 1(2) 00 0010 11df ffff   2,3

Продолжение таблицы 3.8

Мнемокод Название команды Циклы Код команды (14 бит)   Биты сос- тоя- ния При- меча- ния
INCF f,d Инкремент регистра f   00 0010 10df ffff Z 2,3
INCFSZ f,d Инкремент f, пропустить команду, если 0 1(2) 00 0011 11df ffff   2,3
IORWF f,d Логическое ИЛИ W и f   00 0001 00df ffff Z 2,3
MOVF f,d Пересылка регистра f   00 0010 00df ffff Z 2,3
MOVWF f Пересылка W в f   00 0000 001f ffff    
NOP - Холостая команда   00 0000 0000 0000   -
RLF f,d Сдвиг f влево через перенос   00 0011 01df ffff C 2,3
RRF f,d Сдвиг f вправо через перенос   00 0011 00df ffff C 2,3
SUBWF f,d Вычитание W из f   00 0000 10df ffff C,DC,Z 2,3
SWAPF f,d Обмен местами тетрад в f   00 0011 10df ffff   2,3
XORWF f,d Исключающее ИЛИ W и f   00 0001 10df ffff Z 2,3
Команды работы с битами
BCF f,b Сброс бита в регистре f   01 0100 bbbf ffff   2,3
BSF f,b Установка бита в регистре f   01 0101 bbbf ffff   2,3
BTFSC f,b Пропустить команду, если бит в f равен нулю 1(2) 01 0110 bbbf ffff   -
BTFSS f,b Пропустить команду, если бит в f равен единице 1(2) 01 0111 bbbf ffff   -
Команды передачи управления и операции с константами
ADDLW k Сложение константы с W 1 11 111x kkkk kkkk C,DC, Z 4
ANDLW k Логическое И константы и W   11 1110 kkkk kkkk Z  
IORLW k Логическое ИЛИ константы и W   11 1101 kkkk kkkk Z -
SUBLW k Вычитание W из константы. 1 11 110x kkkk kkkk C,DC, Z 4

Окончание таблицы 3.8

Мнемокод Название команды Циклы Код команды (14 бит)   Биты сос- тоя- ния При- меча- ния
CALL k Вызов подпрограммы   10 1001 kkkk kkkk   -
CLRWDT Сброс Watchdog таймера   00 0000 0000 0000 /TO, /PD -
GOTO k Переход по адресу   10 1010 kkkk kkkk   -
RETLW k Возврат из подпрограммы с загрузкой константы в W   11 1000 kkkk kkkk   -
RETFIE Возврат из прерывания. 2 00 0000 0000 1001   4
RETURN Возврат из подпрограммы. 2 00 0000 0000 1000   4
SLEEP Переход в режим SLEEP   00 0000 0000 0011 /TO, /PD -
TRIS f Загрузка TRIS регистра   00 0000 0000 0ffff    
MOVLW k Пересылка константы в W   11 1100 kkkk kkkk   -
XORLW k Исключающее ИЛИ константы и W   1111 kkkk kkkk Z -
OPTION Загрузка W в OPTION регистр   00 0000 0000 0000    

Примечания:

1. Команды TRIS и OPTION помещены в перечень команд для совместимости с семейством PIC16C5X. Их использование не рекомендуется. В PIC16C71 регистры TRIS и OPTION доступны для чтения и записи как обычные регистры с номером. Эти команды могут не поддерживаться в дальнейших разработках PIC16CXX.

2. Когда модифицируется регистр ввода/вывода (например MOVF PORT, 1), используется значение, считываемое с выводов. Например, если в выходной защелке порта, включенного на ввод, находится "1", а внешнее устройство формирует на этом выводе "0", то в этом разряде данных будет записан "0".

3. Если операндом команды является регистр TMRO (и, если допустимо, d=1), то предварительный делитель, если он подключен к TMRO, будет обнулен.

4. Команды ADDLW, RETFIE, RETURN и SUBLW отсутствуют в системах команд PIC 12CXX и PIC 16C5X.

Более подробное описание команд с примерами их выполнения приведено в Приложении В (В1 и В2) учебника по разработке программ для ОМК PIC. Данную систему команд имеют все микроконтроллеры расширенного семейства (PIC16CXX). Микроконтроллеры простейшего и базового семейств (PIC12CXX и PIC16C5X) имеют урезанную систему команд (Приложение В1). Микроконтроллеры высокопроизводительного семейства (PIC17CXX) имеют расширенную (по сравнению с PIC16CXX) систему команд, которая содержит до 57-ми команд [5,6].





Дата публикования: 2014-11-03; Прочитано: 489 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...