Реклама на сайте | Помощь сайту   English version | Datasheets 
KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

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

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



Раздел: Микроконтроллеры

Мнемоника Краткое описание Циклов 16-ти битный код Изменяет флаги Прим.
БАЙТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ
ADDWF f,d,a Сложение W и f 1 0010 01DA FFFF FFFF C, DC, Z, OV, N 1, 2, 6
ADDWFC f,d,a Сложение W и f с использованием флага переноса 1 0010 00DA FFFF FFFF C, DC, Z, OV, N 1, 2, 6
ANDWF f,d,a Поразрядная операция И W и f 1 0001 01DA FFFF FFFF Z, N 1, 2, 6
CLRF f,a Очистка регистра f 1 0110 101A FFFF FFFF Z 2, 6
COMF f,d,a Инверсия содержимого регистра 1 0001 11DA FFFF FFFF N,Z 1, 2, 6
CPFSEQ f,a Операция сравнения f с W, пропуск след. команды если f=W 1(2,3) 0110 001A FFFF FFFF Нет 4, 6
CPFSGT f,a Операция сравнения f с W, пропуск след. команды если f>W 1(2,3) 0110 010A FFFF FFFF Нет 4, 6
CPFSLT f,a Операция сравнения f с W, пропуск след. команды если f<W 1(2,3) 0110 000A FFFF FFFF Нет 4, 6
DCFSNZ f,d,a Уменьшение значения регистра f, пропуск следующей инструкции если результат не равен нулю 1(2,3) 0100 11DA FFFF FFFF Нет 1, 2, 3, 4, 6
DECF f,d,a Уменьшение значения регистра f 1 0000 01DA FFFF FFFF C, DC, Z, OV, N 1, 2, 3, 4, 6
DECFSZ f,d,a Уменьшение значения регистра f, пропуск следующей инструкции если результат равен нулю 1(2,3) 0010 11DA FFFF FFFF Нет 1, 2, 3, 4, 6
INCF f,d,a Увеличение значения регистра f 1 0010 10DA FFFF FFFF C, DC, Z, OV, N 1, 2, 3, 4, 6
INCFSZ f,d,a Увеличение значения регистра f, пропуск следующей инструкции если результат равен нулю 1(2,3) 0011 11DA FFFF FFFF Нет 1, 2, 3, 4, 6
INFSNZ f,d,a Увеличение значения регистра f, пропуск следующей инструкции если результат не равен нулю 1(2,3) 0100 10DA FFFF FFFF Нет 1, 2, 3, 4, 6
IORWF f,d,a Поразрядная операция ИЛИ W и f 1 0001 00DA FFFF FFFF Z, N 1, 2, 6
MOVF f, d, a Пересылка f 1 0101 00DA FFFF FFFF Z, N 1, 6
MOVFF fs, fd Пересылка из fs в fd 2(3) 1100 FFFF FFFF FFFFS
1111 FFFF FFFF FFFFD
Нет
MOVWF f,a Пересылка содержимого регистра W в регистр f 1 0110 111A FFFF FFFF Нет 6
MULWF f,a Умножение содержимого регистров W и f 1 0000 001A FFFF FFFF Нет 6
NEGF f, a перевод в обратную форму записи содержимого регистра f 1 0110 110A FFFF FFFF C, DC, Z, OV, N 1, 2, 6
RLCF f, d, a Сдвиг влево регистра f через перенос 1 0011 01DA FFFF FFFF C, N, Z 6
RLNCF f, d, a Сдвиг влево регистра f (без переноса) 1 0100 01DA FFFF FFFF N, Z 6
RRCF f, d, a Сдвиг вправо регистра f через перенос 1 0011 00DA FFFF FFFF C, N, Z 6
RRNCF f, d, a Сдвиг вправо регистра f (без переноса) 1 0100 00DA FFFF FFFF N, Z 6
SETF f,a Установка всех битов регистра f 1 0110 100A FFFF FFFF Нет 6
SUBFWB f,d,a Вычитание f из W c заемом 1 0101 01DA FFFF FFFF C, DC, Z, OV, N 1, 2, 6
SUBWF f,d,a Вычитание W из f 1 0101 11DA FFFF FFFF C, DC, Z, OV, N 6
SUBWFB f,d,a Вычитание W из f c заемом 1 0101 10DA FFFF FFFF C, DC, Z, OV, N 1, 2, 6
SWAPF f, d, a Обмен местами полу-байт регистра f 1 0011 10DA FFFF FFFF Нет 4, 6
TSTFSZ f,a тест f, пропуск если ноль 1(2,3) 1011 BBBA FFFF FFFF нет 1, 2, 6
XORWF f,d,a Поразрядная операция исключающего ИЛИ W и f 1 0001 10DA FFFF FFFF Z, N 1, 2, 6
БИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ
BCF f,d,a Сброс бита в f 1 1001 BBBA FFFF FFFF Нет 1, 2, 6
BSF f,d,a Установка бита в f 1 1000 BBBA FFFF FFFF Нет 1, 2, 6
BTFSC f,b,a Пропуск следующей команды если бит сброшен 1(2,3) 1011 BBBA FFFF FFFF Нет 3, 4, 6
BTFSS f,b,a Пропуск следующей команды если бит установлен 1(2,3) 1010 BBBA FFFF FFFF Нет 3, 4, 6
BTG f,b,a Инвертирование бита в регистра f 1 0111 BBBA FFFF FFFF Нет 1, 2, 6
СИМВОЛЬНЫЕ КОМАНДЫ
ADDLW k Сложение W и k 1 0000 1111 KKKK KKKK C, DC, Z, OV, N
ANDLW k Логическая операция И W и k 1 0000 1011 KKKK KKKK Z, N
IORLW k Логическая операция ИЛИ W и k 1 0000 1001 KKKK KKKK Z, N
LFSR f,k Загрузка регистра FSR 2 1110 1110 00FF KKKK
1111 0000 KKKK KKKK
Нет
MOVLB k Пересылка литеры в регистр BSR 1 0000 0001 KKKK KKKK Нет
MOVLW k Пересылка литеры в регистр W 1 0000 1110 KKKK KKKK Нет
MULLW k Умножение константы и W 1 0000 1101 KKKK KKKK Нет
RETLW k Возврат прерывания с записью константы в регистр W 2 0000 1100 KKKK KKKK Нет
SUBLW k Вычитание W из константы 1 0000 1000 KKKK KKKK C, DC, Z, OV, N
XORLW k Логическая операция исключающего ИЛИ W и k 1 0000 1010 KKKK KKKK Z, N
ТАБЛИЧНЫЕ КОМАНДЫ
TBLRD (*; *+; *-; +*) Чтение таблицы 2 0000 0000 0000 10NN
NN=0 *
NN=1 *+
Нет
TBLWT (*; *+; *-; +*) Запись в таблицу 2 0000 0000 0000 00NN
NN=0 *
NN=1 *+
Нет
КОМАНДЫ УПРАВЛЕНИЯ
BC n Переход если установлен флаг переноса (CARRY) 1(2) 1110 0010 NNNN NNNN Нет
BN n Переход если установлен флаг отрицательного результата (N) 1(2) 1110 0110 NNNN NNNN Нет
BNC n Переход если сброшен флаг переноса (CARRY) 1(2) 1110 0011 NNNN NNNN Нет
BNN n Переход если сброшен флаг отрицательного результата (N) 1(2) 1110 0111 NNNN NNNN Нет
BNOV n Переход если сброшен флаг переполнения (OV) 1(2) 1110 0101 NNNN NNNN Нет
BNZ n Переход если сброшен флаг нулевого результата (Z) 1(2) 1110 0001 NNNN NNNN Нет
BOV n Переход если установлен флаг переполнения (OV) 1(2) 1110 0100 NNNN NNNN Нет
BRA n Безусловный переход 2 1101 0NNN NNNN NNNN Нет
BZ n Переход если установлен флаг нулевого результата (Z) 1(2) 1110 0000 NNNN NNNN Нет
CALL k,s Вызов подпрограммы 2 1110 110S KKKK KKKK
1111 KKKK KKKK KKKK
Нет
CLRWDT Сброс сторожевого таймера (WDT) 1 0000 0000 0000 0100 TO, PD
DAW Десятичная коррекция регистра W 1 0000 0000 0000 0111 C
GOTO k Безусловный переход 2 1110 1111 KKKK KKKK
1111 KKKK KKKK KKKK
Нет
NOP Нет операции 1 0000 0000 0000 0000 Нет
NOP Нет операции 1 1111 XXXX XXXX XXXX XXXX Нет 4
POP Извлечение из стека 1 0000 0000 0000 0110 Нет
PUSH Размещение в стеке 1 0000 0000 0000 0101 Нет
RCALL n Относительный вызов подпрограммы 2 1101 1NNN NNNN NNNN Нет
RESET Сброс 1 0000 0000 1111 1111 Команда влияет на все флаги
RETFIE s Возврат из прерывания 2 0000 0000 0001 000S GIE/GIEH, PEIE/GIEL
RETURN s Возврат из подпрограммы 2 0000 0000 0001 001S Нет
SLEEP Переход в режим SLEEP 1 0000 0000 0000 0011 TO, PD

Примечания:
  1. При выполнении операции чтение - модификация - запись с портом ввода вывода исходное значение считывается с выводов порта, а не из выходных защелок
  2. При записи в TMR0 предделитель TMR0 сбрасывается, если он подключен к TMR0
  3. Если условие истинно, или изменяется PC, команда выполняется за два цикла. Вторая команда NOP
  4. Некоторые команды имеют 2 16-ти разрядных слова. Если по каким-то причинам счетчик команд попадет на 2-е слово команды, то оно будет выполнено как NOP.
  5. Если производится запись во внутреннюю память, то следующая команда не начнет выполнятся до тех пор пока не закончится цикл записи.
  6. В ассемблере MASM по умолчанию d=1.

 © 2003—2017 «Электронный портал»Обр@тная связь