Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Каждая команда 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!