НАБОР КОМАНД 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)
Читайте далее: MAX724, MAX726 5 А/2 А, ШИМ - импульсные, DC/DC понижающие стабилизаторы, О мерах безопасности при изготовлении и наладке устройств, Транзисторные сглаживающие фильтры, Как читать штрих код, Необычные профессии микросхем для часов, Применение АЦП КР572ПВ5, Экономичный преобразователь кода для семисегментного индикатора, Схема, обеспечивающая развертку по диагональной оси любого осциллографа, Мощный транзистор в лавинном режиме, Простой индикатор уровня сигнала на ИН13, Кварцевый фильтр, Повышение частоты кварца, Драйвер лазерной указки, Подставка для паяльника, Имитируем работу клавиатуры, Как удлинить ось, Как закрепить тонкое сверло в патроне электродрели, Нож для зачистки проводов, Третья рука радиоконструктора,
|