MicroCHIP.RU
Главная Документация Отладочные средства Справочник Поиск Ссылки Цены
 Assembler PICmicro   Примеры применения   Словарь терминов   Маркировка чипов   Корпуса 

Представляем новую линейку продуктов, поставляемых ООО "Микро-Чип":
Источники питания

Блоки  питания


 

Краткая информация по 16 битным инструкциям для семейства микроконтроллеров PIC17CXXX

Набор команд МК семейства PIC17CXX состоит из 58 команд. Длина каждой из них составляет 16-ти битное слово, разделенное на OPCODE (часть кода команды), которая указывает на тип исполняемой команды, и один или несколько операндов, которые в свою очередь в дальнейшем определяют дальнейшее выполнение инструкции. Краткая информация о командах дана в таблице 1-2. Команды подразделяются на байт-ориентированные, бит-ориентированные, символьные и команды управления. В таблице 1-1, приведено из каких составных частей состоит код команды в зависисмотси от ее принадлежности к выше определенным группам.

Для байт-ориентированных команд, 'f' - это обозначение файлового регистра, а 'd' обозначает место назначения. Обозначение файлового регистра используется для указания одного из файловых регистов используемых в командах.

Обозначение места назначения используется для указания места где сохраняется результат выполнения команды. Если 'd' равно 0, тогда результат помещается в регистре WREG. Если 'd' равно 1, тогда результат помещается в файловом регистре указанном в описании к команде.

Для бит-ориентированных команд, 'b' обозначает номер бита, который указывает изменяемый в результате исполнения команды бит, 'f' указывает файл, в котором находится этот бит.

Для символьных команд и команд управления 'k' обозначает 8-ми или 11-ти битную константу или символное значение.

ПолеОписание
fАдрес файлового регистра (от 0x00 до 0xFF)
pПериферийный регистр (от 0x00 до 0x1F)
iУправление табличным указателем. i=0 (не изменять); i=1 (увеличить после выполнения команды)
tВыбор байта таблицы. t=0 (работаем с младшим байтом); t=1 (работаем со старшим байтом)
WREGРабочий регистр (аккумулятор)
bАдрес бита внутри 8-ми битного регистра
kСимвольное поле, константа или метка
x Любое значение(=0 или 1)
Компилятор сгенерирует код с x=0 -это нужно для совместимости со всеми программными продуктами Microchip.
d Выбор где сохранять результат:
d=0 (сохранять в WREG)
d=1 (сохранять в f)
По умолчанию d=1
uНеиспользуется, кодируется как '0'
s Выбор где сохранять результат:
s=0 (сохранять в файловом регистре и в WREG)
s=1 (сохранять в файловом регистре)
По умолчанию s=1
labelИмя метки
C,DC,Z,OVБиты(флаги) статуса АЛУ
GLINTDФлаг запрета шлобальных прерываний (CPUSTA<4>)
TBLPTRУказатель на таблицу
TBLATЗащелка таблицы, состоит из TBLATL и TBLATH
TBLATLМлабший байт TBLAT
TBLATHСтарший байт TBLAT
TOSВершина стека
PCСчетчик команд (программный счетчик)
PCLATHЗаписываемый буффер для старших 5-ти бит PC
GIEФлаг разрешения глобальных прерываний
WDTСторожевой таймер
TOбит Таймаута (Time-out bit)
PDбит понижения питания (Power-Down bit)
destНазначение, либо регистр W либо другой регистр указанный в описании команды
[ ]Опционально, т.е. необязательное использование записи, которая заключена в квадратные скобки
( )Содержимое
->Занести в
< >Битовое поле в регистре
Eпринадлежит
italicопределяется пользователем

Все команды выполняются за один командный цикл, кроме тех, которые проверяют различные условия, изменяющие програмный счетчик или операции чтения/записи таблиц. В этом случае выполнение команды разтягивается на два командных цикла. Один командный цикл состоит из 4-х периодов тактового генератора. Т.е. если частота тактового генератора равна 25МГц, то обычная команда выполнится за 160 нс, команда проверяющая условия, изменяющая программный счетчик, работающая с таблицами выполнится за 320 нс.

В таблице 1-1 показаны три формата, которые может принимать команда. Во всех примерах для обозначения шестнадцатеричного числа используется формат: 0xhhh, где h - шестнадцатеричное число.

Таблица 1-1
Байт-ориентированные операции с файловым регистром
15 9 8 7 0
OPCODE df(FILE #)
d = 0 для записи результата в WREG
d = 1 для записи результата в f
f = 8-ми битный адрес файлового регистра


Операции пересылки байт <-> байт
15 13 12 8 7 0
OPCODE p (FILE #)f(FILE #)
p = адрес периферийного регистра
f = 8-ми битный адрес файлового регистра


Бит-ориентированные операции с файловым регистром
15 11 10 8 7 0
OPCODE b (BIT #)f(FILE #)
b = 3-х битный адрес
f = 8-ми битный адрес файлового регистра


Символьные команды и команды ветвления (общий вид)
15 8 7 0
OPCODE k (символ)
k = 8-ми битное непосредственное значение


Команды ветвления - GOTO и CALL
15 13 12 0
OPCODE k (символ)
k = 13-ти битное непосредственное значение

1.1 Использование Регистров Специального Назначения в качестве источника/назначения

Команды позволяют напрямую работать со всеми регистрами в том числе и со специальными. Именно при работе с этими регистрами необходимо помнить, что:

1.1.1 Регистр ALUSTA в качестве регистра назначения

Если использовать этот регистр в качестве регистра назначения, то надо иметь ввиду, что некоторые команды после своего выполнения изменяют биты этого регистра, такие как Z, C, DC OV. Они могут быть как очищены так и установлены, так что могут пеперисать ранее установленные данные. Например, команда CLRF ALUSTA должна по идее очистить регистр ALUSTA, что в принципе вначале и происходит, но после очистки устанавливается бит Z, и в итоге вместо ожидаемого 0000 0000b мы получаем 0000 0100b в этом регистре.

1.1.2 PCL в качестве регистра назначения или источника

Операции чтения, записи или чтения-изменения-записи с PCL могут привести к следующим результатам:

Чтение PCL:
CL->dest
Запись PCL:
PCLATH->PCH
8-ми битное значение dest -> PCH
Чтение-Изменение-Запись:
PCL->операнд АЛУ
PCLATH->PCH
8-ми битный результат -> PCL

Где PCH - старший байт программного счетчика(не адресуемый регистр),
PCLATH - буффер программного счетчика, dest - назначение, WREG или f.

1.1.3 Манипуляция битами

Все битовые команды работают одинаково. Сначала считывается весь регистр, далее изменяются необходимые биты и результат записывается целиком обратно в регистр (чтение-изменение-запись). Нужно это всегда помнить когда рабоаете со специальными регистрами, такими как порты.

1.2 Разбивка по тактам

Каждый командный цикл (Tcy) состоит из четырех периодов тактового генератора (T1-T4). В общем, по функциональности эти периоды можно классифицировать следующим образом:
T1: Декодирование команды или вынужденная NOP (пустая команда)
T2: Чтение или NOP
T3: Выполнение команды
T4: Запись или NOP

Сводная таблица команд


Горячие темы на нашем форуме:
Rkknat.Ru продает потолки натяжные глянцевые нашего изготовления.
Отдел продаж: тел. (495) 223-2339 sales@microchip.ru   Skype:microchip-moscow
Rambler's Top100