Философия микропроцессорной техники
| Вид материала | Задача |
| 5.3. Система команд микроконтроллеров подгруппы PIC16F8X Описание команды |
- Вопросы для подготовки к экзамену по предмету, 65.62kb.
- Программа Курса «Философия техники», 93.11kb.
- Цифровые тензометрические весы, 40.52kb.
- Основы микропроцессорной техники, 69.36kb.
- Темы рефератов История развития интегральных микросхем. Факторы прогресса технологии, 23.95kb.
- Национальность: русский, 55.39kb.
- Программа Вступительных испытаний Философия и методология науки и техники По направлению, 550.27kb.
- Лекции л з, 423.36kb.
- Философия техники история и современность Оглавление Часть первая Общие основания философии, 4109.54kb.
- Тема 16. Философия культуры. Философия техники. Философия и ценностные приоритеты, 82.95kb.
5.3. Система команд микроконтроллеров подгруппы PIC16F8X
5.3.1. Перечень и форматы команд
Микроконтроллеры подгруппы PIC16F8X имеют простую и эффективную систему команд, состоящую всего из 35 команд.
Каждая команда МК подгруппы PIC16F8X представляет собой 14-битовое слово, разделенное на код операции (OPCODE), и поле для одного и более операндов, которые могут участвовать или не участвовать в этой команде. Система команд PIC16F8X является ортогональной и включает в себя команды работы с байтами, команды работы с битами и операции с константами и команды управления. В таблице 5.10 приведены описания полей команд.
| Таблица 5.10. Описания полей команд МК семейства PIC16CXXX. | |
| Поле | Описание |
| f | Адрес регистра |
| w | Рабочий регистр |
| b | Номер бита в 8-разрядном регистре |
| k | Константа |
| x | Не используется. Ассемблер формирует код с x=0 |
| d | Регистр назначения: d=0 – результат в регистре w d=1 – результат в регистре f По умолчанию d=1 |
| label | Имя метки |
| TOS | Beршина стека |
| PC | Счетчик команд |
| PCLATH | Регистр PCLATH |
| GIE | Бит разрешения всех прерываний |
| WDT | Сторожевой таймер |
| /TO | Тайм-аут |
| /PD | Выключение питания |
| dest | Регистр назначения: рабочий регистр w или регистр, заданный в команде |
| [ ] | Необязательные параметры |
| ( ) | Содержание |
| → | Присвоение |
| < > | Поле номера бита |
![]() | Из набора |
Для команд работы с байтами f обозначает регистр, с которым производится действие; d – бит, определяющий, куда положить результат. Если d =0, то результат будет помещен в регистр w, при d=1 результат будет помещен в регистр «f», упомянутый в команде.
Для команд работы с битами b обозначает номер бита, участвующего в команде, а f – это регистр, в котором данный бит расположен.
Для команд передачи управления и операций с константами, k обозначает восьми- или одиннадцатибитную константу.
Почти все команды выполняются в течение одного командного цикла. В двух случаях исполнение команды занимает два командных цикла:
- проверка условия и переход;
- изменение программного счетчика как результат выполнения команды.
Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с частотой 4 МГц время исполнения командного цикла будет 1 мкс.
Основные форматы команд МК изображены на рис. 5.15.
Система команд МК подгруппы PIC16F8X приведена в табл. 5.11.

Рис. 5.15. Основные форматы команд.
| Таблица 5.11. Система команд МК подгруппы PIC16F8X. | ||||
| Мнемоника | Описание команды | Циклы | Биты состояния | Прим. |
| ADDWF f, d | Сложение W с f | 1 | C ,DC ,Z | 1, 2 |
| ANDWF f, d | Логическое И W и f | 1 | Z | 1, 2 |
| CLRF f | Сброс регистра f | 1 | Z | 2 |
| CLRW | Сброс регистра W | 1 | Z | |
| COMF f, d | Инверсия регистра f | 1 | Z | 1, 2 |
| DECF f, d | Декремент регистра f | 1 | Z | 1, 2 |
| DECFSZ f, d | Декремент f, пропустить команду, если 0 | 1(2) | | 1, 2, 3 |
| INCF f, d | Инкремент регистра f | 1 | Z | 1, 2 |
| INCFSZ f, d | Инкремент f, пропустить команду, если 0 | 1(2) | | 1, 2, 3 |
| IORWF f, d | Логическое ИЛИ W и f | 1 | Z | 1, 2 |
| MOVF f, d | Пересылка регистра f | 1 | Z | 1, 2 |
| MOVWF f | Пересылка W в f | 1 | | |
| NOP - | Холостая команда | 1 | | |
| RLF f, d | Сдвиг f влево через перенос | 1 | C | 1, 2 |
| RRF f, d | Сдвиг f вправо через перенос | 1 | C | 1, 2 |
| SUBWF f, d | Вычитание W из f | 1 | C,DC,Z | 1, 2 |
| SWAPF f, d | Обмен местами тетрад в f | 1 | | 1, 2 |
| XORWF f, d | Исключающее ИЛИ W и f | 1 | Z | 1, 2 |
| | ||||
| BCF f, b | Сброс бита в регистре f | 1 | | 1, 2 |
| BSF f, b | Установка бита в регистре f | 1 | | 1, 2 |
| BTFSC f, b | Пропустить команду, если бит в f равен нулю | 1(2) | | 3 |
| BTFSS f, b | Пропустить команду, если бит в f равен единице | 1(2) | | 3 |
| | ||||
| ADDLW k | Сложение константы и W | 1 | C, DC, Z | |
| ANDLW k | Логическое И константы и W | 1 | Z | |
| CALL k | Вызов подпрограммы | 2 | | |
| CLRWDT - | Сброс сторожевого таймера WDT | 1 | /TO, /P | |
| GOTO k | Переход по адресу | 2 | | |
| IORLW k | Логическое ИЛИ константы и W | 1 | Z | |
| MOVLW k | Пересылка константы в W | 1 | | |
| RETFIE - | Возврат из прерывания | 2 | | |
| RETLW k | Возврат из подпрограммы с загрузкой константы в W | 2 | | |
| RETURN - | Возврат из подпрограммы | 2 | | |
| SLEEP - | Переход в режим SLEEP | 1 | /TO, /P | |
| SUBLW k | Вычитание W из константы | 1 | C, DC, Z | |
| XORLW k | Исключающее ИЛИ константы и W | 1 | Z | |
| | ||||
| Примечания к таблице:
| ||||

