» Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
НАБОР КОМАНД 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)
Источник: http://kazus.ru |
Категория: Справочник | Добавил: tehnomir (30.06.2011)
|
Просмотров: 1449
| Рейтинг: 0.0/0 |
|
|
|