НАБОР КОМАНД PIC МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА PIC17CXXX

Мнемоника
Краткое описание
Циклов
16-ти битный код
Изменяет флаги
Прим.

БАЙТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ

ANDWF f,d
Сложение WREG и f
1
0000 111D FFFF FFFF
OV, C, DC, Z

ADDWFC f,d
Прибавление WREG и Carry bit( Бита переноса) к f
1
0001 000D FFFF FFFF
OV, C, DC, Z

ANDWF f,d
Поразрядная операция «И» c WREG и f
1
0000 101D FFFF FFFF
Z

CLRF f,s
Очистка регистра f
1
0010 100S FFFF FFFF
нет
3

COMF f,d
Инвертирование битов регистра f
1
0001 001D FFFF FFFF
Z

CPFSEQ f
Операция сравнения f с WREG, пропуск след. комманды если f=WREG
1(2)
0011 0001 FFFF FFFF
нет
6, 8

CPFSGT f
Операция сравнения f с WREG, пропуск след. комманды если f>WREG
1(2)
0011 0010 FFFF FFFF
нет
2, 6, 8

CPFSLT f
Операция сравнения f с WREG, пропуск след. комманды если f<WREG
1(2)
0011 0000 FFFF FFFF
нет
2, 6, 8

DAW f,s
Десятичная коррекция регистра WREG
1
0010 111S FFFF FFFF
C
3

DCFSNZ f,d
Уменьшение значения регистра f, пропуск следующей инструкции если результат не равен нулю.
1(2)
0010 011D FFFF FFFF
нет
6, 8

DECF f,d
Уменьшение значения регистра f
1
0000 011D FFFF FFFF
OV, C, DC, Z

DECFSZ f,d
Уменьшение значения регистра f, пропуск следующей инструкции если результат равен нулю.
1(2)
0001 011D FFFF FFFF
нет
6, 8

INCF f,d
Увеличение значения регистра f на 1
1
0001 010D FFFF FFFF
OV, C, DC, Z

INCFSZ f,d
Увеличение значения регистра f, пропуск следующей инструкции если результат равен нулю.
1(2)
0001 111D FFFF FFFF
нет
6, 8

INFSNZ f,d
Увеличение значения регистра f, пропуск следующей инструкции если результат не равен нулю.
1(2)
0010 010D FFFF FFFF
нет
6, 8

IORWF f,d
Логическая операция включающего ИЛИ WREG и f
1
0000 100D FFFF FFFF
Z

MOVFP f,p
Пересылка содержимого регистра f в p
1
011P PPPP FFFF FFFF
нет

MOVPF p,f
Пересылка содержимого регистра p в f
1
010P PPPP FFFF FFFF
Z

MOVWF f
Пересылка содержимого регистра WREG в регистр f
1
0000 0001 FFFF FFFF
нет

MULWF f
Перемножение WREG с f
1
0011 0100 FFFF FFFF
нет
9

NEGW f,s
Изменить знак WREG
1
0010 110S FFFF FFFF
OV, C, DC, Z
1, 3

NOP
Пустая команда
1
0000 0000 0000 0000
нет

RLCF f,d
Циклический сдвиг влево через флаг переноса
1
0001 101D FFFF FFFF
C

RLNCF f,d
Циклический сдвиг влево (без переноса)
1
0010 001D FFFF FFFF
нет

RRCF f,d
Циклический сдвига вправо через флаг переноса
1
0001 100D FFFF FFFF
C

RRNCF f,d
Циклический сдвига вправо (без флага переноса)
1
0010 000D FFFF FFFF
нет

SETF f,s
Установка всех битов f в 1
1
0010 101S FFFF FFFF
нет
3

SUBWF f,d
Вычитание WREG из f
1
0000 010D FFFF FFFF
OV, C, DC, Z
1

SUBWFB f,d
Вычитание W из f с заемом
1
0000 001D FFFF FFFF
OV, C, DC, Z
1

SWAPF f,d
Обмен местами полу-байт регистра f
1
0001 110D FFFF FFFF
нет

TABLRD t,i,f
Чтение таблицы
2 (3 тактов, если f=PCL)
1010 10TI FFFF FFFF
нет
7

TABLWT t,i,f
Табличная запись
2 (и больше если происходит запись во встроенную EEPROM )
1010 11TI FFFF FFFF
нет
5

TLRD t,f
Считывание Защелки таблицы
1
1010 00TX FFFF FFFF
нет

TLWT t,f
Запись в Защелку таблицы
1
1010 01TX FFFF FFFF
нет

TSTFSZ f
Проверка f, пропуск след. ком. если 0.
1(2)
0011 0011 FFFF FFFF
нет
6, 8

XORWF f,d
Логическая операция исключающего ИЛИ с WREG и f
1
0000 110D FFFF FFFF
Z

БИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ

BCF f,b
Очистка бита в f
1
1000 1BBB FFFF FFFF
нет

BSF f,b
Установка бита в f
1
1000 0BBB FFFF FFFF
нет

BTFSC f,b
Проверка на равенство бита нулю, пропускаем след. команду если да.
1(2)
1001 1BBB FFFF FFFF
нет
6, 8

BTFSS f,b
Проверка на равенство бита 1, пропускаем след. команду если да.
1(2)
1001 0BBB FFFF FFFF
нет
6, 8

BTG f,b
Инвертирование бита в регистра f
1
0011 1BBB FFFF FFFF
нет

СИМВОЛЬНЫЕ КОМАНДЫ И КОМАНДЫ ВЕТВЛЕНИЯ

ADDLW k
Сложение литеры и WREG
1
1011 0001 KKKK KKKK
OV, C, DC, Z

ANDLW k
Логическая операция «И» с символом и WREG
1
10011 0101 KKKK KKKK
Z

CALL k
Вызов процедуры
2
111K KKKK KKKK KKKK
нет
7

CLRWDT
Сброс Сторожевого Таймера (WDT)
1
0000 0000 0000 0100
TO, PD

GOTO k
Безусловный переход
2
110K KKKK KKKK KKKK
None
7

IORLW k
Логическая операция включающего ИЛИ с символом и WREG
1
1011 0011 KKKK KKKK
Z

LCALL k
Вызов дальней процедуры
2
1011 0111 KKKK KKKK
нет
4, 7

MOVLB k
Пересылка литеры в младший полубайт регистра BSR
1
1011 1000 UUUU KKKK
Нет

MOVLR k
Пересылка литеры в старший полубайт регистра BSR
1
1011 101X KKKK UUUU
Нет
9

MOVLW k
Пересылка литеры в регистр WREG
1
1011 0000 KKKK KKKK
нет

MULLW k
Перемножение литеры с WREG
1
1011 1100 KKKK KKKK
нет
9

RETFIE
Возврат управления после прерывания
2
0000 0000 0000 0101
GLINTD
7

RETLW k
Возврат с литерой в W
2
1011 0110 KKKK KKKK
нет
7

RETURN
Возврат из процедуры
2
0000 0000 0000 0010
нет
7

SLEEP
Переход в режим «сна»
1
0000 0000 0000 0011
TO, PD

SUBLW k
Вычитание W из литеры
1
1011 0010 KKKK KKKK
OV, C, DC, Z

XORLW k
Логическая операция исключающего ИЛИ с символом и W
1
1011 0100 KKKK KKKK
Z

Примечания:

  • Метод двоичного дополнения
  • Беззнаковая операция
  • Если s=’1′, изменяется только файл; Если s=’0′, тогда оба и WREG и file изменяются; Если нужно, что бы изменядся только Рабочий регистр (WREG), тогда необходимо сделать f = WREG.
  • Во время выполнения LCALL, содержимое PCLATH загружается в MSb регистра PC и kkkk kkkk загружется в LSb регистра PC(PCL).
  • Выполнение команды может занять несколько командных циклов при программировании EPROM, если табличный указатель относится ко внутренней EPROM. Выполнение команды завершается прерыванием. Когда команда используется для записи во внешнюю EPROM, выполнение команды занимает 2 командных цикла.
  • Если условие истинно — команда выполняется за 2 командных цикла, если ложно — за 1 ком. цикл.
  • Команда выполняется за 2 ком. цикла, кроме TABLRD с PCL (младший байт PC) которая выполняется за 3 ком. цикла.
  • «пропускаем» — означает, что команда следующая за данной не выполняется, а выполняется команда, которая находится через одну от данной. Вместо следующей за данной командой выполняется команда NOP (Пустая операция).
  • Эта команда отсутствует в микоконтроллере PIC17C42

  • Источник

    Оставить комментарий

    Вы можете использовать следующие теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>