 |
 |
| |
Сводная таблица команд семейства PIC16CXXX| Мнемоника | Краткое описание | Циклов | 14-ти битный код | Изменяет флаги | Прим. | |
БАЙТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ
| | ADDWF f,d | Сложение W и f | 1 | 00 0111 DFFF FFFF | C, DC, Z | 1, 2| ANDWF f,d | Поразрядная операция "И" c W и f | 1 | 00 0101 DFFF FFFF | Z | 1, 2| CLRF f | Очистка регистра f | 1 | 00 0001 1FFF FFFF | Z | 2| CLRW | Очистка регистра W | 1 | 00 0001 0000 0011 | Z | | COMF f,d | Инвертирование битов регистра f | 1 | 00 1001 DFFF FFFF | Z | 1, 2| DECF f,d | Уменьшение значения регистра f | 1 | 00 0011 DFFF FFFF | Z | 1, 2| DECFSZ f,d | Уменьшение значения регистра f, пропуск следующей инструкции если результат равен нулю. | 1(2) | 00 1011 DFFF FFFF | нет | 1, 2, 3| INCF f,d | Увеличение значения регистра f на 1 | 1 | 00 1010 DFFF FFFF | Z | 1, 2| INCFSZ f,d | Увеличение значения регистра f, пропуск следующей инструкции если результат равен нулю. | 1(2) | 00 1111 DFFF FFFF | нет | 1, 2, 3| IORWF f,d | Логическая операция включающего ИЛИ W и f | 1 | 00 0100 DFFF FFFF | Z | 1, 2| MOVF f,d | Пересылка содержимого регистра f | 1 | 00 1000 DFFF FFFF | Z | 1, 2| MOVWF f | Пересылка содержимого регистра W в регистр f | 1 | 00 0000 1FFF FFFF | нет | | NOP | Пустая команда | 1 | 00 0000 0XX0 0000 | нет | | RLF f,d | Циклический сдвиг влево через флаг переноса | 1 | 00 1101 DFFF FFFF | C | 1, 2| RRF f,d | Циклический сдвига вправо через флаг переноса | 1 | 00 1100 DFFF FFFF | C | 1, 2| SUBWF f,d | Вычитание W из f | 1 | 00 0010 DFFF FFFF | C, DC, Z | | SWAPF f,d | Обмен местами полу-байт регистра f | 1 | 00 1110 DFFF FFFF | нет | | TRIS f | Загрузка регистра TRIS | 1 | 00 0000 0110 0FFF | нет | | XORWF f,d | Логическая операция исключающего ИЛИ с W и f | 1 | 00 0110 DFFF FFFF | Z | |
БИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ
| | BCF f,d | Очистка бита в f | 1 | 01 00BB BFFF FFFF | нет | 1, 2| BSF f,b | Установка бита в f | 1 | 01 01BB BFFF FFFF | нет | 1, 2| BTFSC f,b | Проверка на равенство бита нулю, пропускаем след. команду если да. | 1(2) | 01 10BB BFFF FFFF | нет | 3| BTFSS f,b | Проверка на равенство бита 1, пропускаем след. команду если да. | 1(2) | 01 11BB BFFF FFFF | нет | 3|
СИМВОЛЬНЫЕ КОМАНДЫ И КОМАНДЫ ВЕТВЛЕНИЯ
| | ADDLW k | Сложение литеры и W | 1 | 11 111X KKKK KKKK | C, DC, Z | | ANDLW k | Логическая операция "И" с символом и W | 1 | 11 1001 KKKK KKKK | Z | | CALL k | Вызов процедуры | 2 | 10 0KKK KKKK KKKK | нет | | CLRWDT | Сброс Сторожевого Таймера (WDT) | 1 | 00 0000 0110 0100 | TO, PD | | GOTO k | Безусловный переход | 2 | 10 1KKK KKKK KKKK | нет | | IORLW k | Логическая операция включающего ИЛИ с символом и W | 1 | 11 1000 KKKK KKKK | Z | | MOVLW k | Пересылка литеры в регистр W | 1 | 11 00XX KKKK KKKK | нет | | OPTION | Загрузка данных в регистр OPTION | 1 | 00 0000 0110 0010 | нет | | RETFIE | Возврат управления после прерывания | 2 | 00 0000 0000 1001 | нет | | RETLW k | Возврат с литерой в W | 2 | 11 01XX KKKK KKKK | нет | | RETURN | Возврат из процедуры | 2 | 00 0000 0000 1000 | нет | | SLEEP | Переход в режим "сна" | 1 | 00 0000 0110 0011 | TO, PD | | SUBLW k | Вычитание W из литеры | 1 | 11 110X KKKK KKKK | C, DC, Z | | XORLW k | Логическая операция исключающего ИЛИ с символом и W | 1 | 11 1010 KKKK KKKK | Z | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
Примечания:
-
Когда регистр ввода вывода используется для модификации самого себя
(MOVF PORTB, 1), то для записи будут использоваться значения 0/1
непосредственно с ножек микроконтролера, а не значение записаное в
выходную защелку порта. (См. схему устройства ноги ввода вывода из
даташита.) Например если в защелку записана единица, а порт
сконфигурен на ввод данных и снаружи на этом выводе логический 0, то в
PORTB будет записан 0! Смысл в том, что выход защелки отделен от ножки
контроллера тристабильным буфером и на вход считывается именно нога
контроллера, которая за буфером. Поэтому вроде писали в порт 1, а
читается 0, вот он то и пишется обратно.
-
Если команда оперирует с регистром TMR0(и при этом d=1), тогда предделитель обнуляется (если он
относится к модулю Timer 0)
-
Если изменяется Программный Счетчик (PC) или условие истинно, тогда команда выполняется за
2 командных цикла. Второй командный цикл исполняется как команда NOP (Пустая операция).
|
 |
|