|
|
Здравствуйте! Суббота, 20 апреля 2024
|
статьи и документация |
программаторы |
"глюки" |
FAQ |
полезные конструкции |
мои разработки |
ссылки
|
');
//-->
|
НАБОР КОМАНД PIC МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА PIC16XXX |
|
Текстовая версия |
Мнемоника | Описание | Циклы | Флаги | Прим. |
Байт-ориентированные команды |
ADDWF f,d | Сложение W с f | 1 | C,DC,Z | 1,2 |
ANDWF f,d | Логическое "И" W с f | 1 | Z | 1,2 |
CLRF f | Сброс регистра f | 1 | Z | 2 |
CLRW | Сброс регистра W | 1 | Z | - |
COMF f,d | Инверсия регистра f | 1 | Z | 1,2 |
DECF f,d | Декремент регистра f | 1 | Z | 1,2 |
DECFSZ f,d | Декремент f, пропустить команду, если 0 | 1(2) | Z | 1,2,3 |
INCF f,d | Инкремент регистра f | 1 | Z | 1,2 |
INCFSZ f,d | Инкремент f, пропустить команду, если 0 | 1(2) | Z | 1,2,3 |
IORWF f,d | Логическое "ИЛИ" W c f | 1 | Z | 1,2 |
MOVF f,d | Пересылка регистра F | 1 | Z | 1,2 |
MOVWF f | Пересылка W в F | 1 |   | - |
NOP | Холостая команда | 1 |   | - |
RLF f,d | Вращение f влево через перенос | 1 | C | 1,2 |
RRF f,d | Вращение f вправо через перенос | 1 | C | 1,2 |
SUBWF f,d | Вычитание W из f | 1 | C,DC,Z | 1,2 |
SWAPF f,d | Обмен местами тетрад в f | 1 |   | 1,2 |
XORWF f,d | Исключающее "ИЛИ" W и f | 1 | Z | 1,2 |
Операции с константами и управляющими регистрами |
ADDLW k | Сложение константы с W | 1 | C,DC,Z | - |
ANDLW k | Логическое "И" константы и W | 1 | Z | - |
IORLW k | Логическое "ИЛИ" константы и W | 1 | Z | - |
SUBLW k | Вычитание W из константы |   |   |   |
MOVLW k | Пересылка константы в W | 1 |   | - |
XORLW k | Исключающее "ИЛИ" константы и W | 1 | Z | - |
OPTIONS | Загрузка OPTIONS регистра | 1 | 4 |
TRIS f | Загрузка TRIS регистра | 1 | 4 |
Бит-ориентированные команды |
BCF f,b | Сброс бита b в регистре f | 1 | 1,2 |
BSF f,b | Установка бита b в регистре f | 1 | 1,2 |
BTFSC f,b | Пропустить команду, если бит b=0 | 1(2) | 3 |
BTFSS f,b | Пропустить команду, если бит b=1 | 1(2) | 3 |
Переходы |
CALL k | Вызов подпрограммы | 2 | - |
CLRWDT (k) | Сброс Watchdog таймера | 1 | /TO,/PD | - |
GOTO k | Переход по адресу | 2 | -
| RETLW k | Возврат из подпрограммы с загрузкой константы в W | 2 | - |
RETFIE | Возврат из прерывания | 2 | - |
RETURN | Возврат из подпрограммы | 2 | - |
SLEEP | Переход в режим SLEEP | 1 | /TO,/PD | - |
Мнемоники специальных инструкций |
Мнемоника | Описание | Эквивалентные операции | Флаги | Прим. |
ADDCF f,d | Добавить бит C к регистру | BTFSC STATUS,0 INCF f,d | Z |
ADDDCF f,d | Добавить бит DC к регистру | BTFSC STATUS,1 INCF f,d | Z |
B k | Переход | GOTO k | - |
BC k | Переход если C=1 | BTFSC STATUS,0 GOTO k | - |
BDC k | Переход если DC=1 | BTFSC STATUS,1 GOTO k | - |
BNC k | Переход если C=0 | BTFSS STATUS,0 GOTO k | - |
BNDC k | Переход если DC=0 | BTFSS STATUS,1 GOTO k | - |
BNZ k | Переход если не ноль | BTFSS STATUS,2 GOTO k | - |
BZ k | Переход если ноль | BTFSC STATUS,2 GOTO k | - |
CLRC | Очистить бит C | BCF STATUS,0 - |
CLRDC | Очистить бит DC | BCF STATUS,1 | - |
CLRZ | Очистить бит Z | BCF STATUS,2 | - |
LCALL k |
LGOTO k |
MOVFW f | Пересылка регистра в W | MOVF f,0 | Z |
NEGF f,d | Изменение знака регистра | COMF f,1 INCF f,d Z |
SETC | Установить бит C | BSF STATUS,0 | - |
SETDC | Установить бит DC | BSF STATUS,1 | - |
SETZ | Установить бит Z | BSF STATUS,2 | - |
SKPC | Пропустить если C=1 | BTFSS STATUS,0 | - |
SKPDC | Пропустить если DC=1 | BTFSS STATUS,1 | - |
SKPNC | Пропустить если C=0 | BTFSC STATUS,0 | - |
SKPNDC | Пропустить если DC=0 | BTFSC STATUS,1 | - |
SKPNZ | Пропустить если не ноль | BTFSC STATUS,2 | - |
SKPZ | Пропустить если ноль | BTFSS STATUS,2 | - |
SUBCF f,d | Вычесть бит C из регистра | BTFSC STATUS,0 DECF f,d | Z |
SUBDCF f,d | Вычесть бит DC из регистр | BTFSC STATUS,1 DECF f,d | Z |
TSTF f | Проверка регистра | MOVF f,1 | Z |
Замечания и пояснения
f - адрес регистра (0x00 - 0x7f)
d - выбор приемника для результата (d=0: результат сохраняется в W;
d=1: результат сохраняется в регистр f. По умолчанию d=1.)
b - адрес бита (0 - 7) в регистре
k - символьное поле, константа, метка.
Примечание 1: Когда модифицируется регистр ввода/вывода, например MOVF 6,1,
значение, используемое для модификации считывается непосредственно
с ножек кристалла. Если значение защелки вывода для ножки, запрограммированной на вывод равно "1",
но внешний сигнал на этом выводе "0" из-за "навала" снаружи, то будет считываться "0".
Примечание 2: Если операндом этой команды является регистр TMR0 (и, если
допустимо, d=1), то делитель, если он подключен к Timer0, будет обнулен.
Примечание 3: Если изменяется Program Counter (PC) или выполняется заданное
условие, то команда требует два цикла. Второй цикл выполняется как NOP.
Примечание 4: Команды TRIS и OPTION помещены в перечень команд для совместимости
с семейством PIC16C5X. Их использование не рекомендуется.
В PIC16C84 регистры TRIS и OPTION доступны для чтения и записи
как обычные регистры с номером. Предупреждаем, что эти команды
могут не поддерживаться в дальнейших разработках PIC16CXX.
Более подробное описание функционирования PIC микроконтроллеров серий 16C5x,
16C71, 16C84 на русском языке и программаторы для них Вы найдете на сайте: "
Программирование железа и микроконтроллеров".
|
|
Полное или частичное воспроизведение любых материалов, содержащихся на этом сайте, допускается только с письменного разрешения
администрации. Авторские права на опубликованные на сайте материалы принадлежат их владельцам. |
Замечания? Предложения? "Мертвые" ссылки? Проблемы с загрузкой страниц? Пишите вебмастеру или в гостевую книгу
|
Designed
by Эfir studio | © 2002-03 Yuri Lysenkov |
|