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

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

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

ADDWF f,d
Сложение W и f
1
0001 11DF FFFF
C, DC, Z
1, 2, 4

ANDWF f,d
Поразрядная операция «И» W и f
1
0001 01DF FFFF
Z
2, 4

CLRF f
Очистка регистра f
1
0000 011F FFFF
Z
4

CLRW
Очистка регистра W
1
0000 0100 0000
Z

COMF f,d
Инвертирование битов регистра f
1
0010 01DF FFFF
Z

DECF f,d
Уменьшение значения регистра f
1
0000 11DF FFFF
Z
2, 4

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

INCF f,d
Увеличение значения регистра f на 1
1
0010 10DF FFFF
Z
2, 4

INCFSZ f,d
Увеличение значения регистра f, пропуск следующей инструкции если результат равен нулю.
1(2)
0011 11DF FFFF
нет
2, 4

IORLW k
Логическая операция включающего ИЛИ с символом и W
1
1101 KKKK KKKK
Z
2, 4

IORWF f,d
Логическая операция включающего ИЛИ W и f
1
0001 00DF FFFF
Z

MOVF f,d
Пересылка содержимого регистра f
1
0000 00DF FFFF
Z
2, 4

MOVWF f
Пересылка содержимого регистра W в регистр f
1
0000 001F FFFF
нет
1, 4

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

RLF f,d
Циклический сдвиг влево через флаг переноса
1
0011 01DF FFFF
C
2, 4

RRF f,d
Циклический сдвига вправо через флаг переноса
1
0011 00DF FFFF
C
2, 4

SUBWF f,d
Вычитание W из f
1
0000 10DF FFFF
C, DC, Z
1, 2, 4

SWAPF f,d
Обмен местами полу-байт регистра f
1
0011 10DF FFFF
нет
2, 4

XORWF f,d
Логическая операция исключающего ИЛИ с W и f
1
0001 10DF FFFF
Z
2, 4

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

BCF f,d
Очистка бита в f
1
0100 BBBF FFFF
нет
2, 4

BSF f,b
Установка бита в f
1
0101 BBBF FFFF
нет
2, 4

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

BTFSS f,b
Проверка на равенство бита 1, пропускаем след. команду если да.
1(2)
0111 BBBF FFFF
Нет

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

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

CALL k
Вызов процедуры
2
1001 KKKK KKKK
нет
1

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

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

MOVLW k
Пересылка литеры в регистр W
1
1100 KKKK KKKK
нет

OPTION
Загрузка данных в регистр OPTION
1
0000 0000 0010
нет

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

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

TRIS f
Загрузка данных в регистр TRIS
1
0000 0000 0FFF
нет
3

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

Примечания:

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

  • Источник

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

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