Лекция: Особенности проектирования технических систем и устройств
Каждая команда PIC16F84 представляет собой 14-разрядное слово, содержащее поле кода операции OPCOD и поле одного или более операндов, которые могут участвовать в этой команде. Система команд PIC16F84 приведена в таблице 19.3 и включает в себя команды работы с байтами, команды работы с битами, команды передачи управления и операции с константами. Она отличается от системы команд PIC16C5X (см. Приложение В1), лишь тем, что группа команд передачи управления и операций с константами дополнена четырьмя новыми командами: ADDLW, RETFIE, RETURN, SULW (см. приложение В2).
Для команд работы с байтами «f» обозначает регистр, с которым производится действие; а бит «d» определяет регистр назначения. Если «d» =0 результат помещается в W регистр, при «d»=1 результат помещается в регистр «f», заданный в команде.
Для команд работы с битами «b» обозначает номер бита, участвующего в команде, а «f» -это регистр в котором этот бит расположен. Для команд управления и операций с константами «k» обозначает 8-ми или 11- битную константу или идентификатор.
Все команды выполняются в течение одного командного цикла, кроме следующих двух случаев:
— переход по проверке условия, если результат поиска истина;
— изменение программного счетчика как результат выполнения команды.
В этих случаях команда выполняется за два цикла, с выполнением второго цикла как NOP. Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с тактовой частотой 4 Мгц время выполнения команды составит 1 мкс.
Таблица 1.3.
Cистема команд PIC16F84
| Мнемокод | Название команды | Примечания |
| Команды работы с байтами | ||
| ADDWF f, d | Сложение W с f | 2,3 |
| ANDWF f, d | Логическое «И» W и f | 2,3 |
| CLRF f | Сброс регистра f | |
| CLRW — | Сброс регистра W | — |
| COMF f, d | Инверсия регистра f | 2,3 |
| DECF f, d | Декремент регистра f | 2,3 |
| DECFSZ f, d | Декремент f, пропустить команду, если 0 | 2,3 |
| INCF f, d | Инкремент регистра f | 2,3 |
| INCFSZ f, d | Инкремент f, пропустить команду, если 0 | 2,3 |
| IORWF f, d | Логическое «ИЛИ » W и f | 2,3 |
| MOVF f, d | Пересылка регистра f | 2,3 |
Окончание табл. 1.3.
| Мнемокод | Название команды | Примечания |
| MOVWF f | Пересылка W в f | |
| NOP — | Холостая команда | — |
| RLF f, d | Сдвиг f влево через перенос | 2,3 |
| RRF f, d | Сдвиг f вправо через перенос | 2,3 |
| SUBWF f, d | Вычитание W из f | 2,3 |
| SWAPF f, d | Обмен местами тетрад в f | 2,3 |
| XORWF f, d | Исключающее «ИЛИ» W и f | 2,3 |
| Команды работы с битами | ||
| BCF f, b | Сброс бита в регистре f | 2,3 |
| BSF f, b | Установка бита в регистре f | 2,3 |
| BTFSC f, b | Пропустить команду, если бит в f равен нулю | — |
| BTFSS f, b | Пропустить команду, если бит в f равен единице | — |
| Команды передачи управления и операции с константами | ||
| ANDLW k | Логическое «И» константы и W | — |
| IORLW k | Логическое «ИЛИ» константы и W | — |
| MOVLW k | Пересылка константы в W | — |
| XORLW k | Исключающее «ИЛИ» константы и W | — |
| OPTION | Загрузка W в OPTION регистр | |
| ADDLW k | Сложение константы с W | |
| SUBLW k | Вычитание W из константы. | |
| CALL k | Вызов подпрограммы | — |
| CLRWDT | Сброс Watchdog таймера | — |
| GOTO k | Переход по адресу | — |
| RETLW k | Возврат из подпрограммы с загрузкой константы в W | — |
| RETFIE | Возврат из прерывания. | |
| RETURN | Возврат из подпрограммы. | |
| SLEEP | Переход в режим SLEEP | — |
| TRIS f | Загрузка TRIS регистра |
Примечания:
1. Команды TRIS и OPTION помещены в перечень команд для совместимости с семейством PIC16C5X. Их использование не рекомендуется. В PIC16C71 и PIC 16F84 регистры TRIS и OPTION доступны для чтения и записи как обычные регистры с номером.
2. Когда модифицируется регистр ввода/вывода(например MOVF PORT,1), используется значение, считываемое с выводов. Например, если в выходной защелке порта, включенного на ввод, находится «1», а внешнее устройство формирует на этом выводе «0», то в этом разряде данных будет записан «0».
3. Если операндом команды является регистр TMRO (и, если допустимо, d=1), то предварительный делитель, если он подключен к TMRO, будет обнулен.
4. Команды ADDLW, RETFIE, RETURN и SUBLW отсутствуют в системах команд PIC 12CXX и PIC 16C5X.
Более подробное описание команд с примерами их выполнения приведено в Приложении В (В1 и В2). Данную систему команд имеют все микроконтроллеры расширенного семейства (PIC16CXX). Микроконтроллеры простейшего и базового семейств (PIC12CXX и PIC16C5X) имеют урезанную систему команд (Приложение В1). Микроконтроллеры высокопроизводительного семейства (PIC17CXX) имеют расширенную (по сравнению с PIC16CXX) систему команд, которая содержит до 57-ми команд [4,5].
Особенности проектирования технических систем и устройств