PIC-контроллеры - система комманд

Каждая команда представляет собой 14-разрядное слово, содержащее поле кода операции OPCODE и поле операндов. Система команд включает в себя команды работы с байтами, команды работы с битами, команды управления и операции с константами.

Для команд работы с байтами "f" обозначает регистр, с которым производится действие, а бит "d" определяет регистр назначения. При "d"=0 результат помещается в регистр W, при "d"=1 результат помещается в регистр "f", заданный в команде.

Для команд работы с битами "b" обозначает номер бита, участвющего в команде, а "f" - регистр, в котором этот бит расположен.

Для команд управления и операций с константами "k" обозначает 8- или 11-битовую константу или идентификатор.

Все команды выполняются в течение одного командного цикла, кроме следующих двух случаев:
Переход по проверке условия, если результат проверки условия - истина.
Изменение счетчика команд как результат выполнения команды.

В этих случаях команда выполняется за два цикла с выполнением второго цикла как NOP. Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с частотой 4 МГц время выполнения команды составит 1 мкс. Если выполняется переход по проверке условия или в результате выполнения команды изменился счетчик команд, время выполнения этой команды при тактовой частоте 4 МГц составит 2 мкс.

Принятые обозначения
f:        Адрес регистра
W:        Рабочий регистр
b:        Номер бита в 8-ми разрядном регистре
k:        Константа
x:        Не используется. Ассемблер формирует код с х=0
d:        Регистр назначения:
d=0         результат в регистре W
d=1         результат в регистре f.
        По умолчанию d=1
label:        Имя метки
TOS:        Вершина стека
РС:        Счетчик команд
ТО:        Тайм-аут
PD:        Выключение питания
dest:        Регистр назначения: рабочий регистр W или регистр, заданный в команде
[]:        Необязательные параметры
():        Содержание
-->:        Присвоение
<>:        Битовое поле
О:        Из набора
Сайт посвящен средам разработки радиоэлектронных устройств на микроконтроллерах и программированию микроконтроллеров

На этом сайте Вы узнаете основы программирования микроконтроллеров, сможете скачать необходимые прграммы для написания программ и прошивки микроконтроллеров, а также найдете популярные и доступные для повторения в практике программаторы.
Copyright 2003 Your Web Page Inc. All rights reserved.

Меню:
------------------------------------
Программаторы, программирование микросхем памяти. программаторы микроконтроллеров

Программаторы:
# - Pony Prog
# - ExtraPic
# - EZoFlash+
# - SilPROG
# - PRUF Plus
# - ICProg
Обозначение
Функция
Циклы
Код команды
Биты состояния
Примеча- ния
ADDLW
Сложение константы и W
1
11 111x kkkk kkkk
C, DC, Z

ADDWF
Сложение W c f
1
00 0111 dfff ffff
C, DC, Z
1, 2
ANDLW
Логическое И константы и W
1
11 1001 kkkk kkkk
Z

ANDWF
Логическое И W и f
1
00 0101 dfff ffff
Z
1, 2
BCF
Сброс бита в регистре f
1
01 00bb bfff ffff

1, 2
BSF
Установка бита в регистре f
1
01 01bb bfff ffff

1, 2
BTFSC
Пропустить команду, если бит в f равен нулю
1 (2)
01 10bb bfff ffff

3
BTFSS
Пропустить команду, если бит в f равен единице
1 (2)
01 11bb bfff ffff

3
CALL
Вызов подпрограммы
2
10 0kkk kkkk kkkk


CLRF
Сброс регистра f
1
00 0001 1fff ffff
Z
2
CLRW
Сброс регистра W
1
00 0001 0xxx xxxx
Z

CLRWDT
Сброс сторожевого таймера WDT
1
00 0000 0110 0100
__  __
TO, PD

COMF
Инверсия регистра f
1
00 1001 dfff ffff
Z
1, 2
DECF
Декремент регистра f
1
00 0011 dfff ffff
Z
1, 2
DECFSZ
Декремент f, пропустить команду, если 0
1 (2)
00 1011 dfff ffff

1, 2, 3
GOTO
Переход по адресу
2
10 1kkk kkkk kkkk


INCF
Инкремент регистра f
1
00 1010 dfff ffff
Z
1, 2
INCFSZ
Инкремент f, пропустить команду, если 0
1 (2)
00 1111 dfff ffff

1, 2, 3
IORLW
Логическое ИЛИ константы и W
1
11 1000 kkkk kkkk
Z

IORWF
Логическое ИЛИ W и f
1
00 0100 dfff ffff
Z
1, 2
MOVF
Пересылка регистра f
1
00 1000 dfff ffff
Z
1, 2
MOVLW
Пересылка константы в W
1
11 00xx kkkk kkkk


MOVWF
Пересылка W в f
1
00 0000 1fff ffff


NOP
Холостая команда
1
00 0000 0xx0 0000


OPTION
Загрузка регистра OPTION
1
00 0000 0110 0010


RETFIE
Возврат из прерывания
2
00 0000 0000 1001


RETLW
Возврат из подпрограммы с загрузкой константы в W
2
11 01xx kkkk kkkk


RETURN
Возврат из подпрограммы
2
00 0000 0000 1000


RLF
Сдвиг f влево через перенос
1
00 1101 dfff ffff
C
1, 2
RRF
Сдвиг f вправо через перенос
1
00 1100 dfff ffff
C
1, 2
SLEEP
Переход в режим SLEEP
1
00 0000 0110 0011
__  __
TO, PD

SUBLW
Вычитание W из константы
1
11 110x kkkk kkkk
C, DC, Z

SUBWF
Вычитание W из f
1
00 0010 dfff ffff
C, DC, Z
1, 2
SWAPF
Обмен местами тетрад вf
1
00 1110 dfff ffff

1, 2
TRIS
Загрузка регистра TRIS
1
00 0000 0110 0fff


XORLW
Исключающее ИЛИ константы и W
1
11 1010 kkkk kkkk
Z

XORWF
Исключающее ИЛИ W и f
1
00 0110 dfff ffff

1, 2
Примечание:

Если модифицируется регистр ввода/вывода (например, MOVF PORTB,1), то используется значение, считываемое с выводов. Например, если в выходной защелке порта, включенного на ввод, находится "1", а внешнее устройство формирует на этом выводе "0", то в этом разряде данных будет записан "0".

Если операндом команды является содержимое регистра TMRO (и, если допустимо, d=1), то предварительный делитель, если он подключен к TMRO, будет сброшен.

Если в результате выполнения команды изменяется счетчик команд, или выполняется переход по проверке условия, то команда выполняется за два цикла. Второй цикл выплняется как NOP.
Proteus-Download.narod.ru

Сайт по программированию микроконтроллеров
Hosted by uCoz