Система команд микроконтроллера
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Система команд микроконтроллеров PIC16F873 (PIC16F876) состоит из 35 команд. Полный перечень команд приведен в таблице 31 . Команды условно можно разделить на три группы: к первой группе относятся команды, работающие целиком с байтами; ко второй группе относятся команды, работающие с адресуемыми битами в регистрах; к третьей группе относятся команды управления процессором и команды, работающие с константами. Каждая команда представляет собой 14-разрядный двоичный код, содержащий код операции (OPCODE) и один или два операнда. Форматы команд приведены на рис.25  Большинство команд выполняются за один машинный цикл, исключение составляют команды, которые изменяют состояние счетчика команд:RETFIE, RETLW, RETURN; а также команды условий перехода: DECFSZ и INCFSZ. Эти команды выполняются за два машинных цикла. Машинный цикл состоит из 4 импульсов тактового генератора, т.е. при тактовой частоте 4 МГц время одного машинного цикла равно 1 мкс.

 

 

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

№№

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

Описание команд 14-разрядный код бит 13      бит0

Байт ориентированные команды

1

ADDWF f,d

Сложение регистров W и f 00 0111 dfff  ffff 2

ANDWF f,d   

Побитное «И» регистров Wи f 00 0101 dfff ffff 3

CLRF   f      

Очистить регистр f 00 0001 1fff ffff 4

CLRW              

Очистить регистр W 00 0001 0xxx xxxx 5

COMF f,d             

Инвертировать регистр f 00 1001 dfff ffff 6

DECF  f,d         

Вычесть 1 из регистра f 00 0011 dfff ffff 7

DECFSZ f,d        

Вычесть 1 из f и пропустить следующую команду, если f=0 00 1011 dfff ffff 8

INCF   f,d        

Прибавить 1 к регистру f 00 1010 dfff ffff 9

INCFSZ f,d        

Прибавить 1 к f и пропустить следующую команду, если f=0 00 1111 dfff ffff 10

IORWF f,d        

Побитное «ИЛИ» регистров W и f 00 0100 dfff ffff 11

MOVF f,d         

Переслать регистр f 00 1000 dfff ffff 12

MOVWF f        

Переслать регистр W в регистр f 00 0000 1fff ffff 13

NOP                  

Нет операции 00 0000 0xx0 0000 14

RLF    f,d         

Циклический сдвиг регистра f влево через перенос 00 1101 dfff ffff 15

RRF    f,d         

Циклический сдвиг регистра f вправо через перенгос 00 1100 dfff ffff 16

SUBWF f,d         

Вычесть содержимое регистра W из регистра f 00 0010 dfff ffff 17

SWAPF f,d          

Поменять местами полубайты в регистре f 00 1110 dfff ffff 18

XORWF f,d          

Побитное “Исключающее ИЛИ» регистров W и f 00 0110 dfff ffff

Бит ориентированные команды

19 BCF   f,b         

Очистить бит номер b в регистре f (b = 0 – 7)

01 00bb bfff ffff 20 BSF    f,b          

Установить в 1 бит номер b в регистре f

01 01bb bfff ffff 21 BTFSC f,b         

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

01 10bb bfff ffff 22 BTFSS f,b         

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

01 11bb bfff ffff

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

23 ADDLW k         

Сложить константу k с регистром W

11 111x kkkk kkkk 24 ANDLW k         

Побитное «И» константы k и регистра W

11 1001 kkkk kkkk 25 CALL  k         

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

10 0kkk kkkk kkkk 26 CLRWDT          

Очистить сторожевой таймер

00 0000 0110 0100 27 GOTO k           

Безусловный переход

10 1kkk kkkk kkkk 28 IORLW k        

Побитное «ИЛИ» константы и регистра W

11 1000 kkkk kkkk 29 MOVLW k       

Переслать константу в регистр W

11 00xx kkkk kkkk 30 RETFIE             

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

00 0000 0000 1001 31 RETLW k         

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

11 01xx kkkk kkkk 32 RETURN           

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

00 0000 0000 1000 33 SLEEP               

Перейти в режим энергосбережения SLEEP

00 0000 0110 0011 34 SUBLW k        

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

11 110x kkkk kkkk 35 XORLW k         

Побитное «Исключающее ИЛИ» константы и регистра W

11 1010 kkkk kkkk          

 

 

13                           8   7   6                            0
код операции
d
Адрес регистра f
При d = 0 результат остается в регистре W При d = 1 результат остается в регистре f f - 7-разрядный адрес регистра
Байт ориентированные операции с регистрами
Бит ориентированные операции с регистрами
13                10 9     7 6                          0        
код операции                   b              адрес регистра f
b – 3-разрядный номер бита в регистре f – 7-разрядный адрес регистра
Команды управления и операций с константами 13                          8 7                                    0 Код операции                        k - константа
k – 8-разрядная константа
Для команд CALL и GOTO 13              11 10                                           0 код операции                            k - константа
k – 11-разрядная константа
Рис.28. Форматы команд  микроконтроллера.

Подробное описание команд.

 

 

Дата: 2019-04-23, просмотров: 212.