Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Автоматизация тех. процессов и микропр. техника...doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

Команди мікроконтролерів pic16f87х

№

Мнемоніка команди

Функція, що виконується

Циклів

14-розрядний код

Змінен. прапор.

Біт13

Біт 0

Байт - орієнтовані команди

1. Група команд пересилання даних і завантаження регістрів

1

MOVWF f

Скопіювати зміст робочого регістра W до регістра f

1

00 0000 1fff ffff

2

MOVF f,d

Скопіювати вміст регістра f до W, якщо d=0, а якщо d=1, то зберегти у тому ж регістрі f

1

00 1000 dfff ffff

Z

3

MOVLW k

Зберегти 8-бітну константу k у регістрі W

1

11 00xx kkkk kkkk

4

CLRF f

Очистити – записати 0 у регістр f

1

00 0001 1fff ffff

Z

5

CLRW -

Очистити W

1

00 0001 0xxx xxxx

Z

6

SWAPF f,d

Поміняти місцями молодший і старший півбайти у регістрі f

1

00 1110 dfff ffff

7

CLRWDT -

Очистити WDT, прапори TO і PD встановлюються у «1»

1

00 0000 0110 0100

-TO, -PD

2. Група команд арифметичних і логічних операцій

8

ADDWF f,d

Скласти вміст регістрів W і f

1

00 0111 dfff ffff

C, DC, Z

9

ADDLW k

Скласти константу з вмістом W

1

11 111x kkkk kkkk

C, DC, Z

10

INCF f,d

Додати 1 до вмісту регістра f

1

00 1010 dfff ffff

Z

11

INCFSZ f,d

Додати 1 до вмісту регістра f і, якщо результат не дорівнює 0, то виконати наступну команду, вибрану під час виконання поточної, якщо результат 0, то пропустити (у другому циклі виконується команда NOP)

1(2)

00 1111 dfff ffff

12

SUBWF f,d

Відняти вміст регістра W із вмісту регістра f

1

00 0010 dfff ffff

C, DC, Z

13

SUBLW k

Відняти вміст регістра W із константи k

1

11 110x kkkk kkkk

C, DC, Z

14

DECF f,d

Відняти 1 із вмісту регістра f

1

00 0011 dfff ffff

Z

15

DECFSZ f,d

Відняти 1 із змісту регістра f і, якщо результат дій не рівен 0, то виконати наступну команду, обрану під час виконання поточної, якщо результат 0, то пропустити.

1(2)

00 1011 dfff ffff

16

ANDWF f,d

Побітне логічне ‘І’ змісту регістрів W та f

1

00 0101 dfff ffff

Z

17

COMF f,d

Побітна інверсія змісту регістра f

1

00 1001 dfff ffff

Z

18

IORWF f,d

Побітне ‘АБО’ змісту регістрів W та f

1

00 0100 dfff ffff

Z

19

XORWF f,d

Побітне ‘виключне АБО ’ вмісту регістрів W та f

1

00 0110 dfff ffff

Z

20

ANDLW k

Побітне ‘І’ константи та вмісту регістра W

1

11 1001 kkkk kkkk

Z

21

IORLW k

Побітне ‘АБО’ констант та вмісту регістра W

1

11 1000 kkkk kkkk

Z

22

XORLW k

Побітне ‘виключне АБО ’ константи та вмісту W

1

11 1010 kkkk kkkk

Z

3. Група команд переходів

23

GOTO k

Безумовний перехід за заданою адресою (11 біт адреси із коду команди завантажуються у лічильник команд РС, старші два біта РС завантажуються із регістра РСLATH)

2

10 1kkk kkkk kkkk

24

CALL k

Перейти до виконання підпрограми по заданій адресі (адреса наступної за CALL команди заноситься у стек )

2

10 0kkk kkkk kkkk

25

RETURN -

Повернення із підпрограми (по записаній у стек адресі)

2

00 0000 0000 1000

26

RETFIE -

Повернення із підпрограми обробки переривання з дозволом переривання (прапор глобального дозволу переривань GIE=1)

2

00 0000 0000 1001

27

RETLW k

Повернення із підпрограми з завантаженням константи у W

2

11 01xx kkkk kkkk

Група спеціальних команд

28

NOP -

Нема операції

1

00 0000 0xx0 0000

29

RLF f,d

Циклічний зсув вмісту регістра f ліворуч через перенос (біт С регістра STATUS) на один біт.

1

00 1101 dfff ffff

C

30

RRF f,d

Циклічний зсув вмісту регістра f праворуч через перенос

1

00 1100 dfff ffff

C

31

SLEEP -

Перейти в режим SLEEP зниженого енергоспоживання

1

00 0000 0110 0011

-TO, -PD

5. Біт орієнтовані команди

32

BCF f,b

Очистити біт b (b=0) у регістрі f

1

01 00bb bfff ffff

33

BSF f,b

Встановити біт b (b=1) у регістрі f

1

01 01bb bfff ffff

34

BTFSC f,b

Перевірити біт b у регістрі f, якщо b=0 пропустити наступну команду (у другому циклі виконується команда NOP)

1(2)

01 10bb bfff ffff

35

BTFSS f,b

Перевірити біт b у регістрі f, якщо b=1 пропустити наступну команду

1(2)

01 11bb bfff ffff