Ноя 12

Система команд для микроконтроллеров семейства PIC16C5X (12 бит)

В данной статье представлена система команд для микроконтроллеров семейства PIC16C5X. Она будем полезна тем кто работает с этими микроконтроллерами не так давно и не помнит всех команд. В приведенной таблице можно видеть мнемонику каждой команды, краткое описание, цикл, 12-ти битный код и какие флаги изменяются при выполнении команды.

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

Мнемоника Краткое описание Циклов 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 Z 2, 4
RRF f,d Циклический сдвига вправо через флаг переноса 1 0011 00DF FFFF Z 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

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

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

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

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

Примечания:

  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)

Похожие записи:

  1. Система команд для микроконтроллеров MCS-51 В данной статье представлена система команд для микроконтроллеров MCS-51. Она...
  2. Hotkey (Хоткей) или Горячие клавиши для Microsoft Office Word Иногда намного проще, чтобы выполнить определенное действие нажать на клавиатуре...
  3. Дифференциальный усилитель В этой статье представлена общая схема дифференциального усилителя. Приведено общие...

Автор: admin


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

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:

Рейтинг@Mail.ru

Яндекс.Метрика

usa online pharmacy Fully licensed online pharmacies `<|; buy prescription drugs a large product list.