Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
К MPLAB(old).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
220.16 Кб
Скачать
      1. Режим Help

В данном режиме возможно получение интересующей информации по нужному вопросу. Например, помощь по использованию MPLAB содержится в файле MPLAB Help.

Приложение 1.

В данном приложении в табл.1 прилож.1 приведено описание полей команд, а также приведена табл.2 прилож.1, содержащая описание системы команд для микроконтроллеров семейства PIC16c8x.

Табл.1 прилож.1

Поле

Описание

f

Адрес регистра.

w

Рабочий регистр.

b

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

k

Константа.

x

Не используется. Ассемблнр формирует код с х=0.

d

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

d=0-результат в регистре W;

d=1-результат в регистре f.

По умолчанию d=1.

label

Имя метки.

TOS

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

PC

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

TO

Time-Out. Тайм-аут.

PD

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

dest

Регистр назначения: рабочий регистр W или регистр, заданный в команде.

[ ]

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

( )

Содержание.

~

Присвоение.

Табл2. Прилож.1

Мнемокод

Операция

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

ADDLW k

(W)+(k)~W

Содержимое регистра W складывается с 8-битовой константой k. Результат сохраняется в регистре W.

ADDWF f,d

(W)+(f )~(dest)

Содержимое регистра W добавляется к содержимому регистра f. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в том же регистре f.

ANDLW k

(W).AND.(k)~W

Содержимое регистра W логически умножается на 8-битовую константу k. Результат сохраняется в регистре W.

ANDWF f,d

(W).AND.(f )~(dest)

Содержимое регистра W логически умножается на содержимое регистра f. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в том же регистре f.

Продолж. табл.2 прилож.1

BCF f,b

0~f(b)

Бит b регистра f сбрасывается в 0.

BSF f,b

1~f(b)

Бит b регистра f устанавливается в 1.

BTFSC f,b

Пропустить, если f(b)=0

Если бит b регистра f равен1, выполняется следующая команда. Если бит b регистра f равен 0, следующая команда, считанная в текущем командном цикле, игнорируется, и вместо неё в следующем цикле выполняется NOP, в резулбтате команда выполняется за два цикла.

BTFSS f,b

Пропустить, если f(b)=1

Если бит b регистра f равен 0, выполняется следующая команда. Если бит b регистра f равен 1, следующая команда, считанная в текущем командном цикле, игнорируется, и вместо неё в следующем цикле выполняется NOP, в резулбтате команда выполняется за два цикла.

CALL k

(PC)+1~TOS, k~PC<10:0>, (PCLATH<4:3>)~PC<12:11>

Адрес возврата (PC+1) сохраняется в стеке. Младшие 11 бит адреса загружаются в PC из кода команды. Старшие два бита адреса загружаются в РС из регистра PCLATH<4:3>.

CLRF f

00h~f, 1~Z

Содержимое регистра f сбрасывается в 0 и бит Z устанавливается в 1.

CLRW

00h~W, 1~Z

Содержимое регистра W сбрасывается в 0 и бит Z устанавливается в 1.

CLRWDT

00h~WDT, 0~WDT prescaler, 1~TO, 1~PD

Команда сбрасывает сторожевой таймер WDT и предварительный делитель. В регистре состояния устанавливаются биты TO и PD.

COMF f,d

(f )~(dest)

Содержимое регистра f инвертируется. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в том же регистре f.

DECF f,d

(f )-1~(dest)

Регистр f уменьшается на 1. . Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в том же регистре f.

Продолж. табл.2 прилож.1

DECFSZ f,d

(f )-1~(dest); пропустить, если (dest)=0

Регистр f уменьшается на 1. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в том же регистре f. Если результат не равен 0, выполняется следующая команда. Если результат равен 0, следующая команда, считанная в текущем командном цикле, игнорируется, и вместо неё в следующем цикле выполняется NOP, в результате команда выполняется за два цикла.

GOTO k

k~PC<10:0>, (PCLATH<4:3>)~PC<12:11>

Младшие 11 бит адреса загружаются в PC из кода команды. Старшие два бита адреса загружаются в PC из регистра PCLATH<4:3>.

INCF f,d

(f )+1~(dest)

Регистр f увеличивается на 1. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в том же регистре f.

INCFSZ f,d

(f )+1~(dest); пропустить,если (dest)=0

Регистр f увеличивается на 1. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в том же регистре f. Если результат не равен 0, выполняется следующая команда. Если результат равен 0, следующая команда, считанная в текущем командном цикле, игнорируется, и вместо неё в следующем цикле выполняется NOP, в результате команда выполняется за два цикла.

IORLW k

(W).OR.(k)~W

Содержимое регистра W логически складывается с 8-битовой константой k. Результат сохраняется в регистре W.

IORWF f,d

(W).OR.(f)~(dest)

Содержимое регистра W логически складывается с содержимым регистра f. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в том же регистре f.

MOVF f,d

(f)~(dest)

Содержимое регистра f пересылается в регистр W, если d=0, и в тот же регистр f, если d=1.

MOVLW k

k~(W)

8-битовая константа k загружается в регистр W.

MOVWF f

(W)~(f )

Содержимое регистра W пересылается в регистр f.

NOP

Нет

Нет операции.

Продолж. табл.2 прилож.1

RETFIE

TOS~PC, 1~GIE

Адрес возврата восстанавливается из вершины стека ( TOS ) в PC. Разрешаются прерывания.

RETLW k

k~W, TOS~PC

8-битовая константа k загружается в регистр W. Адрес возврата восстанавливается из вершины стека ( TOS ) в PC.

RETURN

TOS~PC

Адрес возврата восстанавливается из вершины стека ( TOS ) в PC.

RLF f,d

f<n>~d<n+1>, f<7>~C, C~d<0>

Содержимое регистра f сдвигается на 1 бит влево через бит переноса С. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в томже регистре f.

RRF f,d

f<n>~d<n-1>, f<0>~C, C~d<7>

Содержимое регистра f сдвигается на 1 бит вправо через бит переноса С. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в томже регистре f.

SLEEP

00h~WDT, 0~WDT prescaler, 1~TO, 0~PD

Команда сбрасывает сторожевой таймер WDT и предварительный делитель. В регистре состояния устанавлливается бит TO и сбрасывается бит PD. Процессор переходит в режим SLEEP с выключенным генератором.

SUBLW k

(k)-(W)~(W)

Содержимое регистра W вычитается из 8-битовой константы k. Результат перемещается в регистр W.

SUBWF f,d

(f )-(W)~(dest)

Содержимое регистра W вычитается из содержимого регистра f. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в том же регистре f.

SWAPF f,d

f<0:3>~d<4:7>, f<4:7>~d<0:3>

Содержимое старшей и младшей тетрад регистра f обменивается. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в том же регистре f.

XORLW k

(W).XOR.(k)~W

Содержимое регистра W поразрядно складывается с 8-битовой константой k по модулю 2. Результат сохраняется в регистре W.

Продолж. табл.2 прилож.1

XORWF f,d

(W).XOR.(f)~(dest)

Содержимое регистра W поразрядно складывается с содержимым регистра f по модулю 2. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в том же регистре f.