Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPSS Lab.rab.(ru) 2011-07-16 EP.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.79 Mб
Скачать

Система команд процессоров pic16

Каждая команда PIC16 представляет собой 14-разрядное слово, содержащее поле кода операции COM и поле аргументов ARG, условные обозначения которых приведены в таблице 2. Система команд PIC16 приведена в таблице 3.

Система команд включает в себя команды работы с байтами (арифметические и логические, команды пересылок), команды работы с битами, команды управления и операции с константами.

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

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

Для команд управления и операций с константами ‘k’ обозначает 8‑битовую константу, ‘addr’ – адрес перехода.

Все команды выполняются в течение одного такта, кроме случаев модификации счетчика команд:

  • безусловного перехода или вызова подпрограммы;

  • возврата из подпрограммы;

  • перехода в результате проверки условия;

  • изменения счётчика команд в результате выполнения команд.

В этих случаях команда выполняется за два такта.

Таблица 2. Описание полей команд

Поле

Описание

f

Адрес регистра в области памяти данных

w

Рабочий регистр W (Word)

u

Скрытый регистр для хранения промежуточных результатов (Unvisible)

b

Номер бита в 8-разрядном регистре

k

8-битная константа для команд работы с данными

addr

11-битный адрес перехода для команд GOTO и CALL

d

Регистр назначения:

d=0 или d=w – результат пересылается в регистр W

d=1 или d=f – результат пересылается в регистр с адресом f. По умолчанию d=1

GIE

Global Interrupt Enable – разрешение прерываний

PC

Program Counter Счетчик команд

TOS

Top Of Stack Вершина стека

SP

Stack Pointer Указатель стека

TO

Time-Out Тайм-аут

PD

Power Down Выключение питания

[]

Необязательные параметры

( )

Содержимое

Присвоение

Обмен

Таблица 3. Система команд PIC16

Мнемокод

Описание команды

Циклы

Биты состояния

Прим.

Команды работы с регистрами

ADDWF f, d

Сложение W с f

(w) + (f) → (d)

1

C ,DC ,Z

1, 2

ANDWF f, d

Логическое И W и f

(w) AND (f) → (d)

1

Z

1, 2

CLRF f

Сброс регистра f

00 → (f)

1

Z

2

CLRW

Сброс регистра W

00 → (w)

1

Z

COMF f, d

Инверсия регистра f

NOT (f) → (d)

1

Z

1, 2

DECF f, d

Декремент регистра f

(f) – 1 → (d)

1

Z

1, 2

DECFSZ f, d

Декремент f, пропустить команду, если 0

(f) – 1 → (u) → (d)

(PC) + 1 → (PC) при (u)=00

1(2)

1, 2, 3

INCF f, d

Инкремент регистра f

(f) + 1 → (d)

1

Z

1, 2

INCFSZ f, d

Инкремент f, пропустить команду, если 0

(f) + 1 → (u) → (d)

(PC) + 1 → (PC) при (u)=00

1(2)

1, 2, 3

IORWF f, d

Логическое ИЛИ W и f

(w) OR (f) → (d)

1

Z

1, 2

MOVF f, d

Пересылка регистра f

(f) → (u) → (d)

1

Z

1, 2

MOVWF f

Пересылка W в f

(w) → (f)

1

RLF f, d

Сдвиг f влево через С

(f) → (u)

(u) → (d)

1

C

1, 2

RRF f, d

Сдвиг f вправо через С

(f) → (u)

(u) → (d)

1

C

1, 2

Таблица 2. Продолжение

Мнемокод

Описание команды

Циклы

Биты состояния

Прим.

SUBWF f, d

Вычитание W из f

(f) – (w) → (d)

1

C,DC,Z

1, 2

SWAPF f, d

Обмен тетрад в f

(f) → (u)

(u) → (d)

1

1, 2

XORWF f, d

Исключающее ИЛИ W и f

(w) XOR (f) → (d)

1

Z

1, 2

Команды работы с константами

ANDLW k

Логическое И константы и W

k AND (w) → (w)

1

Z

ADDLW k

Сложение W и константы

k + (w) → (w)

1

C, DC, Z

CLRW

Сброс регистра W

00 → (w)

1

Z

IORLW k

Логическое ИЛИ константы и W

k OR (w) → (w)

1

Z

MOVLW k

Пересылка константы в W

k → (w)

1

SUBLW k

Вычитание W из константы

k – (w) → (w)

1

C, DC, Z

XORLW k

Исключающее ИЛИ константы и W

k XOR (w) → (w)

1

Z

Команды работы с битами

BCF f, b

Сброс бита b в регистре f

0 → (fb)

1

1, 2

BSF f, b

Установка бита b в регистре f

1 → (fb)

1

1, 2

BTFSC f, b

Пропустить команду, если бит b в f равен 0

(PC) + 1 → (PC) при (fb)=0

1(2)

BTFSS f, b

Пропустить команду, если бит b в f равен 1

(PC) + 1 → (PC) при (fb)=1

1(2)

Таблица 2. Окончание

Мнемокод

Описание команды

Циклы

Биты состояния

Прим.

Команды управления и структурирования программ

CLRWDT

Сброс сторожевого таймера WDT

1

TO, PD

NOP

Холостая команда

1

SLEEP

Переход в режим SLEEP

1

TO, PD

GOTO addr

Переход по адресу

addr → (PC)

2

CALL addr

Вызов подпрограммы

(PC) → (TOS)

(SP) + 1 → (SP)

addr → (PC)

2

RETLW k

Возврат из подпрограммы с загрузкой константы в W

k → (w)

(SP) – 1 → (SP)

(TOS) → (PC)

2

RETURN

Возврат из подпрограммы

(SP) – 1 → (SP)

(TOS) → (PC)

2

RETFIE

Возврат из подпрограммы прерывания и разрешение прерывания

(SP) – 1 → (SP)

(TOS) → (PC)

GIE=1

2

GIE=1

Примечания:

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]