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

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

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


 

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

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

Все команды подразделяются на:

  • байт-ориентированные;
  • бит-ориентированные;
  • символьные;
  • табличные;
  • команды управления.

В байт-ориентированных командах 'f' представляет собой указатель регистра в файле, 'd' определяет назначение результата, и 'a' правила доступа к памяти. Если 'd'=0 результат записывается в регистр W, иначе в регистр файла 'f'

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

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

Табличные команды используются для передачи данных между памятью программ и памятью данных. В 21-битном регистре TLBPTR указывается адрес в памяти программ. Чтение/запись в память программ производится с использованием буферного 8-битного регистра TABLAT.

В командах управления 8-битное значение 'n' используется для указания относительного знакового перехода, кроме команд BRA; RCALL где используется 21-битное значение 'n'. В командах GOTO; CALL 20-битное значение 'n' указывает абсолютный адрес для перехода.

Все команды выполняются за один командный цикл, кроме тех, которые проверяют различные условия, изменяющие программный счетчик или операции чтения/записи таблиц. В этом случае выполнение команды растягивается на два командных цикла. Команда выполняется за 3 цикла, если по условию, необходимо пропускать команду состоящую из 2-х слов. Один командный цикл состоит из 4-х периодов тактового генератора. Т.е. если частота тактового генератора равна 40МГц, то обычная команда выполнится за 100 нс, команда проверяющая условия, изменяющая программный счетчик, работающая с таблицами выполнится за 200 нс.

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

Набор команд PIC позволяет осуществлять чтение/запись в любой регистр файла, в том числе и в регистры специального назначения. Есть несколько особых случаев, в которых надо соблюдать осторожность.

1.1.1 Регистр ALUSTA в качестве приемника

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

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

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

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

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

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

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

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

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

T1: Декодирование команды или вынужденная NOP (пустая команда)
T2: Чтение или NOP
T3: Выполнение команды и обработка данных
T4: Запись или NOP

Список операндов

ОперандОписание
a Бит доступа к памяти:
a = 0: прямая адресация памяти (содержимое регистра BSR игнорируется)
a = 1: банк памяти выбирается при помощи регистра BSR
b Биты адресуются внутри 8-битного регистра (0-7)
BSR Регистр выбора банка памяти
d Бит выбора источника для пересылки результата
d = 0: результат сохраняется в регистре W
d = 1: результат сохраняется в регистре f
dest Цель назначения √ WREG или соответствующий регистр
f 8-битный адрес регистра (0x00 до 0хFF)
fs 12-битный адрес регистра источника (0x000 до 0хFFF)
fd 12-битный адрес регистра назначения (0x000 до 0хFFF)
k Поле литерала, содержит данные или метку (также может быть 8-,12- или 20-битное значение)
label Имя метки
mm Режим работы TBLPTR регистра при выполнении операций табличного чтения/записи. Может использоваться только в операциях табличного чтения/записи.
* значение не изменяется
*+ инкрементируется после выполнения команды
*- декрементируется после выполнения команды
+* инкрементируется перед выполнением команды
n Адрес для выполнения инструкций относительного перехода, или непосредственный адрес при выполнении инструкций вызова подпрограмм/перехода.
PRODH Старший байт результата после выполнения операции умножения
PRODL Младший байт результата после выполнения операции умножения
s Бит режима быстрого вызова/возврата
u Не используется или не изменяется
W Рабочий регистр (аккумулятор)
x Не важно (0 или 1)
TBLPTR 21-битный табличный указатель (указывает на адрес в памяти программы)
TABLAT 8-битная табличная защелка
TOS Вершина стека
PC Программный счетчик
PCL Младший байт программного счетчика
PCH Старший байт программного счетчика
PCLATH Старший байт защелки программного счетчика
PCLATU Младший байт защелки программного счетчика
GIE Бит глобального включения прерывания
WDT Сторожевой таймер
TO Бит Time-Out
PD Бит Power-Down
C,DC,Z,OV,N Биты статуса ALU, перенос, перенос цифры, нуль , переполнение, отрицательное значение
[ ] Необязательно
( ) Содержимое
-> Назначение (направление)
< > Регистровое битное поле

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


Горячие темы на нашем форуме:
Компания ForOffice рада предложить купить копиры Ricoh с бесплатной доставкой по Москве.
Стильный фасад. Искусство камня - декоративный облицовочный камень!
Отдел продаж: тел. (495) 223-2339 sales@microchip.ru   Skype:microchip-moscow
Rambler's Top100