MicroCHIP.RU
Главная Документация Отладочные средства Справочник Поиск Ссылки
 Assembler PICmicro   Примеры применения   Словарь терминов   Маркировка чипов   Корпуса 
 

Сводная таблица команд семейства PIC16C5X

МнемоникаКраткое описаниеЦиклов12-ти битный кодИзменяет флагиПрим.
БАЙТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ
ADDWF f,dСложение W и f10001 11DF FFFFC, DC, Z1, 2, 4
ANDWF f,dПоразрядная операция "И" W и f10001 01DF FFFFZ2, 4
CLRF fОчистка регистра f10000 011F FFFFZ4
CLRWОчистка регистра W10000 0100 0000Z
COMF f,dИнвертирование битов регистра f10010 01DF FFFFZ
DECF f,dУменьшение значения регистра f10000 11DF FFFFZ2, 4
DECFSZ f,dУменьшение значения регистра f, пропуск следующей инструкции если результат равен нулю.1(2)0010 11DF FFFFнет2, 4
INCF f,dУвеличение значения регистра f на 110010 10DF FFFFZ2, 4
INCFSZ f,dУвеличение значения регистра f, пропуск следующей инструкции если результат равен нулю.1(2)0011 11DF FFFFнет2, 4
IORLW kЛогическая операция включающего ИЛИ с символом и W11101 KKKK KKKKZ2, 4
IORWF f,dЛогическая операция включающего ИЛИ W и f10001 00DF FFFFZ
MOVF f,dПересылка содержимого регистра f10000 00DF FFFFZ2, 4
MOVWF fПересылка содержимого регистра W в регистр f10000 001F FFFFнет1, 4
NOPПустая команда10000 0000 0000нет
RLF f,dЦиклический сдвиг влево через флаг переноса10011 01DF FFFFC2, 4
RRF f,dЦиклический сдвига вправо через флаг переноса10011 00DF FFFFC2, 4
SUBWF f,dВычитание W из f10000 10DF FFFFC, DC, Z1, 2, 4
SWAPF f,dОбмен местами полу-байт регистра f10011 10DF FFFFнет2, 4
XORWF f,dЛогическая операция исключающего ИЛИ с W и f10001 10DF FFFFZ2, 4
БИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ
BCF f,dОчистка бита в f10100 BBBF FFFFнет2, 4
BSF f,bУстановка бита в f10101 BBBF FFFFнет2, 4
BTFSC f,bПроверка на равенство бита нулю, пропускаем след. команду если да.1(2)0110 BBBF FFFFнет
BTFSS f,bПроверка на равенство бита 1, пропускаем след. команду если да.1(2)0111 BBBF FFFFНет
СИМВОЛЬНЫЕ КОМАНДЫ И КОМАНДЫ ВЕТВЛЕНИЯ
ANDLW kЛогическая операция "И" с символом и W11110 KKKK KKKKZ
CALL kВызов процедуры21001 KKKK KKKKнет1
CLRWDTСброс Сторожевого Таймера (WDT)10000 0000 0100 TO, PD
GOTO kБезусловный переход2101K KKKK KKKKнет
MOVLW kПересылка литеры в регистр W11100 KKKK KKKKнет
OPTIONЗагрузка данных в регистр OPTION10000 0000 0010нет
RETLW kВозврат с литерой в W21000 KKKK KKKKнет
SLEEPПереход в режим "сна"10000 0000 0011TO, PD
TRIS fЗагрузка данных в регистр TRIS10000 0000 0FFFнет3
XORLW kЛогическая операция исключающего ИЛИ с символом и W11111 KKKK KKKKZ

Примечания:
  1. 9-й бит счетчика команд будет установлен в 0 любой инструкцией, которая производит запись в регистр PC, кроме команды GOTO. (Просмотрите документацию по конкретному микроконтроллеру, раздел Память / Косвенная адресация данных / Регистры INDF и FSR (Memory Section/indirect Data Addressing, INDF and FSR Registers)
  2. Когда регистр ввода вывода используется для модификации самого себя (MOVF PORTB, 1), то для записи будут использоваться значения 0/1 непосредственно с ножек микроконтролера, а не значение записаное в выходную защелку порта. (См. схему устройства ноги ввода вывода из даташита.) Например если в защелку записана единица, а порт сконфигурен на ввод данных и снаружи на этом выводе логический 0, то в PORTB будет записан 0! Смысл в том, что выход защелки отделен от ножки контроллера тристабильным буфером и на вход считывается именно нога контроллера, которая за буфером. Поэтому вроде писали в порт 1, а читается 0, вот он то и пишется обратно.
  3. Инструкция TRIS f, где f=5,6, или 7 пишет значение аккумулятора W регистр управления тристабильным состоянием выходов защелок портов PORTA , B или C соответственно. 1 переводит выход в высокоимпендансное состояние и отключает от ноги выход защелки. Смысл весь в том что входной защелки у контроллера нет и нога читается прямо в шину. А на выход есть защелка у которой есть регистр управления состоянием выхода TRIS. Поэтому если выход защелки включен, то что пишем на вывод, то и читается взад, а если выход в Z состоянии, то что мы там писали на вывод не важно, все равно защелка от ноги оторвана, а взад читается то, что на ноге, а там может быть все что угодно.
  4. Если команда оперирует с регистром TMR0(и при этом d=1), тогда предделитель обнуляется (если он относится к модулю Timer 0)