- •Г.И.Загарий, н.О.Ковзель, в.С.Коновалов, в.И.Моисеенко, в.И.Поддубняк, а.И.Стасюк
- •Часть 2. Характеристики микроконтроллеров и плк
- •Рецензенты:
- •Isbn – 5–7763–0384–2
- •Isbn – 966–7561–23–2
- •Isbn – 966-7561-23-2
- •Isbn – 5–7763–0384-2
- •Содержание
- •Введение
- •Раздел 1
- •1 Микроконтроллеры фирмы Atmel
- •1.1 Микроконтроллеры серии ат89, совместимые с mcs-51™
- •1.2 Микроконтроллеры avr серии ат90 с risc-архитектурой
- •2. Микроконтроллер aDμC812 семейства MicroConverter™ фирмы analog devices
- •3 Микроконтроллеры sx18ac/sx28ac фирмы scenix
- •4 Микроконтроллеры фирмы motorola
- •5 Микроконтроллеры семейства z8 фирмы zilog
- •6 Микроконтроллеры фирмы holtek
- •7 Рiс – микроконтроллеры фирмы microchip
- •7.1 Микроконтроллер pic16f84
- •7.1.1 Архитектура микроконтроллера pic16f84
- •7.1.2 Типы корпусов и исполнения
- •7.1.3 Назначение выводов
- •7.1.4 Регистры pic16f84
- •7.1.5 Прямая и косвенная адресация регистров
- •7.1.6 Модуль таймера/счетчика
- •7.1.7 Предварительный делитель
- •7.1.8 Регистр слова состоянияStatus
- •7.1.8.1 Программные флаги регистра слова состояния
- •7.1.8.2 Аппаратные флаги состояния
- •7.1.9 Регистр option
- •7.1.11 Организация встроенного пзу
- •7.1.12 Программный счетчик и адресация пзу
- •7.1.13 Стек и возвраты из подпрограмм
- •7.1.14 Данные в eeprom
- •7.1.15 Управление eeprom Управляющие регистры для eeprom
- •Регистры eecon1 и eecon2
- •7.1.16 Организация прерываний
- •Внешнее прерывание
- •Прерывание от переполнения счетчика/таймера
- •Прерывание от порта rb
- •Прерывание от eeprom
- •7.1.17 Регистры (порты) ввода/вывода
- •7.1.18 Использование портов ввода/вывода ra и rb Организация двунаправленных портов
- •Последовательное обращение к портам ввода/вывода
- •7.1.19 Специальные функции
- •Сторожевой таймер wdt
- •Тактовый генератор
- •Таймер сброса dtr
- •Биты конфигурации
- •Защита программы от считывания
- •Режим пониженного энергопотребления
- •7.2 Обзор команд и обозначения
- •7.2.1 Описание команд
- •7.3Технология разработки и отладки рабочих программ для омк рiс16/17
- •7.3.1 Правила записи программ на языке Ассемблера
- •Операция
- •Операнд
- •Директивы Ассемблера
- •7.3.2 Структура рабочей программы
- •7.3.3 Преобразование исходного текста рабочей программы в объектный модуль
- •7.4 Интегрированная среда разработки рабочих программ mplab для омк pic
- •7.4.1 Назначение и основные функциональные возможности mplab
- •7.4.2 Краткая характеристика основных программ Редактор mplab
- •Ассемблер mpasm
- •Компилятор mplab-c
- •Программный симулятор-отладчик mplab-sim
- •7.4.3 Главное окно средыMplab Главное меню mplab
- •МенюFile
- •МенюProject
- •МенюEdit
- •МенюDebug (отладка)
- •Меню picstart plus (меню программирования)
- •МенюOptions (параметры)
- •МенюTools
- •7.4.4 Инструментальная панельMplab
- •7.4.5 Строка состояния mplab
- •7.5 Пример разработки программы с использованием mplab
- •7.5.1 Постановка задачи и разработка алгоритма ее решения
- •7.5.2 Написание исходного текста программы
- •Раздел 2
- •8. Характеристики программируемых логических контроллеров
- •8.1. Контроллеры семейства модикон
- •8.1.1. Контроллер tsx 07 Nano
- •Варианты конфигураций
- •Импульсные выходы
- •Программное обеспечение
- •Контрольные вопросы:
- •8.1.2. Контроллер tsx Momentum Общая характеристика
- •Концепция построения
- •Архитектура tsx Momentum
- •Подключение tsx Momentum к сети Modbus Plus
- •Коммуникационный адаптер для сети Interbus
- •Коммуникационный адаптер для сети Profibus dp
- •Коммуникационный адаптер для сети fipio
- •Коммуникационный адаптер для сети Ethernet I/o
- •Базовые модули ввода – вывода
- •Заключение
- •Контрольные вопросы
- •8.1.3. Микроконтроллер tsx 37 Micro Общая характеристика
- •Базовое исполнение tsx 37-10
- •Дисплейный блок
- •Базовое исполнение tsx 37-21 и tsx 37-22
- •Источники питания
- •Коммуникационные возможности
- •Заключение
- •Контрольные вопросы
- •8.2. КонтроллерыTsxQuantum Общая характеристика
- •Источники питания
- •Модули ввода-вывода
- •Модули интерфейса Quantum
- •Заключение
- •Контрольные вопросы
- •8.3. Контроллеры Siemens
- •8.3.1. КонтроллерSimaticS7-200
- •Центральные процессоры
- •Входы и выходы контроллеров s7-200
- •Коммуникационный модуль
- •8.3.2.Контроллер Simatic s7-300
- •Центральные процессоры
- •Сигнальные модули
- •Функциональные модули
- •Коммуникационные модули
- •Заключение
- •Контрольные вопросы
- •8.3.3. Контроллер Simatic s7-400
- •Центральные процессоры
- •Модули ввода-вывода
- •Функциональные модули
- •Коммуникационные процессоры
- •Блоки питания
- •Заключение
- •Контрольные вопросы
- •Раздел 3
- •9. Разработка микропроцессорных систем железнодорожной автоматики
- •9.1. Постановка задачи
- •9.2. Характеристика входных и выходных сигналов.
- •9.3. Разработка структуры системы
- •9.4. Конфигурация цепей ввода-вывода
- •9.5. Определение необходимого количества модулей ввода-вывода
- •9.6.Принципиальные и монтажные схемы
- •Индивидуальные задания
- •10. Примеры практической реализации микропроцессорных систем
- •10.1.Микропроцессорная диспетчерская централизация
- •Объекты контроля
- •Объекты управления
- •10.2.Микропроцессорный маршрутный набор электрической централизации
- •10.2.1 Постановка задачи
- •10.2.2 Общая структура системы управления.
- •10.2.3 Расчет количества входных и выходных сигналов.
- •Расчет потребного количества выходов
- •Управление стрелкой
- •Перечень объектов контроля
- •Расчет потребного количества входов
- •Выбор конфигурации программируемого логического контроллера
- •Разработка структуры информационного взаимодействия компонентов системы
- •Программируемые контроллеры для систем управления.
- •Часть 2. Характеристики микроконтроллеров и плк
- •61052, Харьков, ул. Красноармейская, 7, тел. 24-22-98.
- •61052, Харків, вул. Червоноармійська, 7, тел. 24-22-98.
7.2.1 Описание команд
ADDLW |
Сложить константу и регистр W | |||||||||||
Синтаксис: |
[label] |
ADDLW |
k |
| ||||||||
Операнды: |
0 ≤ k ≤ 255 |
|
| |||||||||
Операция: |
(W)+k→(W) |
|
| |||||||||
Изменяемые биты состояния: |
C, DC, Z |
|
| |||||||||
Код: |
11 |
111х |
kkkk |
kkkk |
| |||||||
Описание: |
Содержимое регистра W увеличивается на значение 'k' и результат помещается в регистр W | |||||||||||
Слов: |
1 |
|
| |||||||||
Циклов: |
1 |
|
| |||||||||
Пример: |
ADDLW |
0х15 |
|
| ||||||||
|
До выполнения команды |
|
| |||||||||
|
W = 0x10 |
|
|
| ||||||||
|
После выполнения команды |
|
| |||||||||
|
W = 0x25 |
|
|
|
ADDWF |
Сложить регистр W и регистр f | ||||||||||
Синтаксис: |
[label] |
ADDWf |
F,d |
| |||||||
Операнды: |
0 ≤ f ≤ 127 d Î [0,1] |
|
| ||||||||
Операция: |
(W)+(f)→(dest) |
|
| ||||||||
Изменяемые биты состояния: |
C, DC, Z |
|
| ||||||||
Код: |
00 |
0111 |
dfff |
ffff |
| ||||||
Описание: |
Содержимое регистра Wувеличивается на значение регистраf; если d=0 результат помещается в регистрW, если d=1 результат помещается в регистрf | ||||||||||
Слов: |
1 |
|
| ||||||||
Циклов: |
1 |
|
| ||||||||
Пример: |
ADDWF |
FSR,0 |
|
| |||||||
|
До выполнения команды |
|
| ||||||||
|
W = 0x17 FSR = 0xC2 |
|
| ||||||||
|
После выполнения команды |
|
| ||||||||
|
W = 0xD9 FSR = 0xC2 |
|
| ||||||||
ANDLW |
Конъюнкция регистра W и константы k | ||||||||||
Синтаксис: |
[label] |
ANDLW |
k |
| |||||||
Операнды: |
0 ≤ f ≤ 255 |
| |||||||||
Операция: |
(W) И (k)→(W) |
| |||||||||
Изменяемые биты состояния: |
Z |
| |||||||||
Код: |
11 |
1001 |
kkkk |
kkkk |
| ||||||
Описание: |
Производится конъюнкция содержимого константы kи регистраW, результат помещается в регистрW | ||||||||||
Слов: |
1 |
|
| ||||||||
Циклов: |
1 |
|
| ||||||||
Пример: |
ANDLW |
0x5F |
|
| |||||||
|
До выполнения команды |
|
| ||||||||
|
W = 0xA3 |
|
| ||||||||
|
После выполнения команды |
|
| ||||||||
|
W = 0x03 |
|
|
ANDWF |
Конъюнкция регистра 'f' и регистра W | ||||||||||||||||||||
Синтаксис: |
[label] |
ANDWF |
f,d |
| |||||||||||||||||
Операнды: |
0 ≤ f ≤ 127 d Î [0,1] |
| |||||||||||||||||||
Операция: |
(W) И (f)→(dest) |
| |||||||||||||||||||
Изменяемые биты состояния: |
Z |
| |||||||||||||||||||
Код: |
00 |
0101 |
dfff |
ffff |
| ||||||||||||||||
Описание: |
Производится конъюнкция содержимого регистра 'f' и регистраW если d=0, результат помещается в регистрW, если d=1, результат помещается в регистрf | ||||||||||||||||||||
Слов: |
1 |
|
| ||||||||||||||||||
Циклов: |
1 |
|
| ||||||||||||||||||
Пример: |
ANDWF |
FSR,1 |
|
| |||||||||||||||||
|
До выполнения команды |
|
| ||||||||||||||||||
|
W = 0x17 FSR = 0xC2 |
|
| ||||||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||||||
|
W = 0x17 FSR = 0x02 |
|
| ||||||||||||||||||
BCF |
Обнуление бита в регистре f | ||||||||||||||||||||
Синтаксис: |
[label] |
BCF |
F,b |
| |||||||||||||||||
Операнды: |
0 ≤ f ≤ 127 0 ≤ b ≤ 7 |
| |||||||||||||||||||
Операция: |
0→f,<b> |
| |||||||||||||||||||
Изменяемые биты состояния: |
- |
| |||||||||||||||||||
Код: |
01 |
00bb |
bfff |
ffff |
| ||||||||||||||||
Описание: |
Обнуляется бит 'b' в регистре 'f' | ||||||||||||||||||||
Слов: |
1 |
|
| ||||||||||||||||||
Циклов: |
1 |
|
| ||||||||||||||||||
Пример: |
BCF |
FLAG_REG,7 |
|
| |||||||||||||||||
|
До выполнения команды |
|
| ||||||||||||||||||
|
W FLAG_REG = 0xC7 |
|
| ||||||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||||||
|
W FLAG_REG = 0x47 |
|
|
BSF |
Установить бит в регистре f в состояние 1 | ||||||||||
Синтаксис: |
[label] |
BSF |
F,b |
| |||||||
Операнды: |
0 ≤ f ≤ 127 0 ≤ b ≤ 7 |
| |||||||||
Операция: |
1→f,<b> |
| |||||||||
Изменяемые биты состояния: |
- |
| |||||||||
Код: |
01 |
01bb |
bfff |
ffff |
| ||||||
Описание: |
Устанавливается в '1' бит 'b' в регистре 'f' | ||||||||||
Слов: |
1 |
|
| ||||||||
Циклов: |
1 |
|
| ||||||||
Пример: |
BSF |
FLAG_REG,7 |
|
| |||||||
|
До выполнения команды |
|
| ||||||||
|
W FLAG_REG = 0x0A |
|
| ||||||||
|
После выполнения команды |
|
| ||||||||
|
W FLAG_REG = 0x8A |
|
|
BTFSC |
Проверить бит в регистре f; переход, если бит = 0 | ||||||||||||
Синтаксис: |
[label] |
BTFSC |
F,b |
| |||||||||
Операнды: |
0 ≤ f ≤ 127 0 ≤ b ≤ 7 |
| |||||||||||
Операция: |
Пропуск команды, если (f,<b>)=0 |
| |||||||||||
Изменяемые биты состояния: |
Z |
| |||||||||||
Код: |
01 |
10bb |
bfff |
ffff |
| ||||||||
Описание: |
если бит 'b' в регистре 'f'=0, следующая команда пропускается | ||||||||||||
Слов: |
1 |
|
| ||||||||||
Циклов: |
1(2) |
|
| ||||||||||
Пример: |
HERE |
BTFSC |
FLAG,1 |
| |||||||||
|
FALSE |
GOTO |
PROCESS_CODE |
| |||||||||
|
TRUE |
|
|
| |||||||||
|
До выполнения команды |
|
| ||||||||||
|
PC = address HERE |
|
| ||||||||||
|
После выполнения команды |
|
| ||||||||||
|
если FLAG<1> = 0 PC = address TRUE Если FLAG<1> = 1 PC = address FALSE |
|
|
BTFSS |
Проверить бит в регистре f; переход, если бит = 1 | |||||||||||||
Синтаксис: |
[label] |
BTFSS |
F,b |
| ||||||||||
Операнды: |
0 ≤ f ≤ 127 0 ≤ b ≤ 7 |
| ||||||||||||
Операция: |
Пропуск команды, если (f,<b>)=1 |
| ||||||||||||
Изменяемые биты состояния: |
Z |
| ||||||||||||
Код: |
01 |
11bb |
bfff |
ffff |
| |||||||||
Описание: |
если бит 'b' в регистре 'f'=1, следующая команда пропускается | |||||||||||||
Слов: |
1 |
|
| |||||||||||
Циклов: |
1(2) |
|
| |||||||||||
Пример: |
HERE |
BTFSS |
FLAG,1 |
| ||||||||||
|
FALSE |
GOTO |
PROCESS_CODE |
| ||||||||||
|
TRUE |
· · · |
|
| ||||||||||
|
До выполнения команды |
|
| |||||||||||
|
PC = address HERE |
|
| |||||||||||
|
После выполнения команды |
|
| |||||||||||
|
если FLAG<1> = 0 PC = address FALSE Если FLAG<1> = 1 PC = address TRUE |
|
|
CALL |
Вызов подпрограммы | ||||||||||||||||||||||
Синтаксис: |
[label] |
CALL |
k |
| |||||||||||||||||||
Операнды: |
0 ≤ k ≤ 2047 |
| |||||||||||||||||||||
Операция: |
(PC)+1→TOS, k→(PC<10:0>), (PCLATH<4:3>→(PC<12:11>) |
| |||||||||||||||||||||
Изменяемые биты состояния: |
- |
| |||||||||||||||||||||
Код: |
10 |
0kkk |
kkkk |
kkkk |
| ||||||||||||||||||
Описание: |
Вызов подпрограммы. Вначале адрес (PC+1) записывается в вершину стека; затем в биты <10:0> счетчика команд подставляется значение константыk; старшие биты считываются изPCLATH. Команда выполняется в течение двух циклов |
| |||||||||||||||||||||
Слов: |
1 |
|
| ||||||||||||||||||||
Циклов: |
2 |
|
| ||||||||||||||||||||
Пример: |
HERE |
CALL |
THERE |
| |||||||||||||||||||
|
До выполнения команды |
|
| ||||||||||||||||||||
|
PC = address HERE |
|
| ||||||||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||||||||
|
PC = address THERE TOS = address HERE |
|
| ||||||||||||||||||||
CLRF |
Обнуление регистра f |
| |||||||||||||||||||||
Синтаксис: |
[label] |
CLRF |
f |
|
| ||||||||||||||||||
Операнды: |
0 ≤ f ≤ 127 |
|
| ||||||||||||||||||||
Операция: |
00h→(f) 1 →Z |
|
| ||||||||||||||||||||
Изменяемые биты состояния: |
Z |
|
| ||||||||||||||||||||
Код: |
00 |
0001 |
1fff |
ffff |
| ||||||||||||||||||
Описание: |
Обнуляется регистр fи бит нуляZустанавливается в 1 |
| |||||||||||||||||||||
Слов: |
1 |
|
|
| |||||||||||||||||||
Циклов: |
1 |
|
|
| |||||||||||||||||||
Пример: |
CLRF |
FLAG_REG |
|
|
| ||||||||||||||||||
|
До выполнения команды |
|
|
| |||||||||||||||||||
|
FLAG_REG = 0x5A |
|
|
| |||||||||||||||||||
|
После выполнения команды |
|
|
| |||||||||||||||||||
|
FLAG_REG = 0x00 Z = 1 |
|
|
|
CLRW |
Обнуление регистра W | ||||||||||||||
Синтаксис: |
[label] |
CLRW |
|
| |||||||||||
Операнды: |
- |
| |||||||||||||
Операция: |
00h→(W) 1 →Z |
| |||||||||||||
Изменяемые биты состояния: |
Z |
| |||||||||||||
Код: |
00 |
0001 |
0000 |
0011 |
| ||||||||||
Описание: |
Обнуляется регистр W и бит нуля Z устанавливается в 1 | ||||||||||||||
Слов: |
1 |
|
| ||||||||||||
Циклов: |
1 |
|
| ||||||||||||
Пример: |
CLRW |
|
|
| |||||||||||
|
До выполнения команды |
|
| ||||||||||||
|
W = 0x5A |
|
| ||||||||||||
|
После выполнения команды |
|
| ||||||||||||
|
W = 0x00 Z = 1 |
|
|
CLRWDT |
Обнуление сторожевого таймера WDT | |||||||||||||
Синтаксис: |
[label] |
CLRWDT |
|
| ||||||||||
Операнды: |
- |
| ||||||||||||
Операция: |
00h→(WDT) 0 → WDT prescaler 1 → 1 → |
| ||||||||||||
Изменяемые биты состояния: |
, |
| ||||||||||||
Код: |
00 |
0000 |
0110 |
0100 |
| |||||||||
Описание: |
Сбрасывается регистр WDTи предделитель. Биты и регистра статуса устанавливаются в '1'. | |||||||||||||
Слов: |
1 |
|
| |||||||||||
Циклов: |
1 |
|
| |||||||||||
Пример: |
CLRWDT |
|
|
| ||||||||||
|
До выполнения команды |
|
| |||||||||||
|
WDT = ? |
|
| |||||||||||
|
После выполнения команды |
|
| |||||||||||
|
WDT counter = 0x00 WDT prescaler = 0x00 = 1 = 1 |
|
|
COMF |
Инвертирование регистра f | ||||||||||||||||||||||||
Синтаксис: |
[label] |
COMF |
f,d |
| |||||||||||||||||||||
Операнды: |
0 ≤ f ≤ 127 d Î [0,1] |
| |||||||||||||||||||||||
Операция: |
(f) → (dest) |
| |||||||||||||||||||||||
Изменяемые биты состояния: |
Z |
| |||||||||||||||||||||||
Код: |
00 |
1001 |
dfff |
ffff |
| ||||||||||||||||||||
Описание: |
Инвертируется содержимое регистра 'f'. Если 'd' = 0, результат помещается в регистрW. Если 'd' = 1, результат помещается в регистр 'f'. | ||||||||||||||||||||||||
Слов: |
1 |
|
| ||||||||||||||||||||||
Циклов: |
1 |
|
| ||||||||||||||||||||||
Пример: |
COMF |
REG1,0 |
|
| |||||||||||||||||||||
|
До выполнения команды |
|
| ||||||||||||||||||||||
|
REG1 = 0x13 |
|
| ||||||||||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||||||||||
|
REG1 = 0x13 W = 0xEC |
|
| ||||||||||||||||||||||
DECF |
Декремент регистра f | ||||||||||||||||||||||||
Синтаксис: |
[label] |
DECF |
f,d |
| |||||||||||||||||||||
Операнды: |
0 ≤ f ≤ 127 d Î [0,1] |
| |||||||||||||||||||||||
Операция: |
(f)-1 → (dest) |
| |||||||||||||||||||||||
Изменяемые биты состояния: |
Z |
| |||||||||||||||||||||||
Код: |
00 |
0011 |
dfff |
ffff |
| ||||||||||||||||||||
Описание: |
Содержимое регистра 'f' уменьшается на 1. Если 'd' = 0, результат помещается в регистрW. Если 'd' = 1, результат помещается в регистр 'f'. | ||||||||||||||||||||||||
Слов: |
1 |
|
| ||||||||||||||||||||||
Циклов: |
1 |
|
| ||||||||||||||||||||||
Пример: |
DECF |
CNT,1 |
|
| |||||||||||||||||||||
|
До выполнения команды |
|
| ||||||||||||||||||||||
|
CNT = 0x01 Z = 0 |
|
| ||||||||||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||||||||||
|
CNT = 0x00 Z = 1 |
|
|
DECFSZ |
Декремент регистра f; пропуск если 0 | |||||||||||||
Синтаксис: |
[label] |
DECFSZ |
f,d |
| ||||||||||
Операнды: |
0 ≤ f ≤ 127 d Î[0,1] |
| ||||||||||||
Операция: |
(f)-1 → (dest), пропуск следующей команды, если результат = 0 |
| ||||||||||||
Изменяемые биты состояния: |
- |
| ||||||||||||
Код: |
00 |
1011 |
dfff |
ffff |
| |||||||||
Описание: |
Содержимое регистра 'f' уменьшается на 1. Если 'd' = 0, результат помещается в регистрW. Если 'd' = 1, результат помещается в регистр 'f'. Если результат = 0, следующая команда выполняется как NOP. | |||||||||||||
Слов: |
1 |
|
| |||||||||||
Циклов: |
1(2) |
|
| |||||||||||
Пример: |
THERE
CONTINUE |
DECFSZ GOTO · · · |
CNT,1 LOOP |
| ||||||||||
|
До выполнения команды |
|
| |||||||||||
|
PC = address HERE |
|
| |||||||||||
|
После выполнения команды |
|
| |||||||||||
|
CNT = CNT-1 Если CNT = 0, PC = address CONTINUE Если CNT ≠ 0, PC = address HERE+1 |
|
|
GOTO |
Передать управление по адресу | |||||||||||||
Синтаксис: |
[label] |
GOTO |
k |
| ||||||||||
Операнды: |
0 ≤ k ≤ 2047 |
| ||||||||||||
Операция: |
k→(PC<10:0>), (PCLATH<4:3>)→(PC<12:11>) |
| ||||||||||||
Изменяемые биты состояния: |
- |
| ||||||||||||
Код: |
10 |
1kkk |
kkkk |
kkkk |
| |||||||||
Описание: |
Передача управления по адресу, заданному константой k. Для этого в разряды <10:0> счетчика команд подставляется значение константыk; старшие биты считываются изPCLATH. Команда выполняется в течение двух циклов | |||||||||||||
Слов: |
1 |
|
| |||||||||||
Циклов: |
2 |
|
| |||||||||||
Пример: |
|
GOTO |
THERE |
| ||||||||||
|
После выполнения команды |
|
| |||||||||||
|
PC = address THERE |
|
|
INCF |
Инкремент регистра f | |||||||||||||
Синтаксис: |
[label] |
INCF |
f,d |
| ||||||||||
Операнды: |
0 ≤ f ≤ 127 d Î [0,1] |
| ||||||||||||
Операция: |
(f)+1 → (dest) |
| ||||||||||||
Изменяемые биты состояния: |
Z |
| ||||||||||||
Код: |
00 |
1010 |
dfff |
ffff |
| |||||||||
Описание: |
Содержимое регистра 'f' увеличивается на 1. Если 'd' = 0, результат помещается в регистрW. Если 'd' = 1, результат помещается в регистр 'f'. | |||||||||||||
Слов: |
1 |
|
| |||||||||||
Циклов: |
1 |
|
| |||||||||||
Пример: |
INCF |
CNT,1 |
|
| ||||||||||
|
До выполнения команды |
|
| |||||||||||
|
CNT = 0xFF Z = 0 |
|
| |||||||||||
|
После выполнения команды |
|
| |||||||||||
|
CNT = 0x00 Z = 1 |
|
|
INCFSZ |
Инкремент регистра f, пропуск если 0 | |||||||||||||||||||||||
Синтаксис: |
[label] |
INCFSZ |
f,d |
| ||||||||||||||||||||
Операнды: |
0 ≤ f ≤ 127 d Î [0,1] |
| ||||||||||||||||||||||
Операция: |
(f)+1 → (dest), пропуск следующей команды, если результат = 0 |
| ||||||||||||||||||||||
Изменяемые биты состояния: |
- |
| ||||||||||||||||||||||
Код: |
00 |
1111 |
dfff |
ffff |
| |||||||||||||||||||
Описание: |
Содержимое регистра 'f' увеличивается на 1. Если 'd' = 0, результат помещается в регистрW. Если 'd' = 1, результат помещается в регистр 'f'. Если результат = 0, следующая команда выполняется как NOP. | |||||||||||||||||||||||
Слов: |
1 |
|
| |||||||||||||||||||||
Циклов: |
1(2) |
|
| |||||||||||||||||||||
Пример: |
HERE
CONTINUE |
DECFSZ GOTO · · · |
CNT,1 LOOP |
| ||||||||||||||||||||
|
До выполнения команды |
|
| |||||||||||||||||||||
|
PC = address HERE |
|
| |||||||||||||||||||||
|
После выполнения команды |
|
| |||||||||||||||||||||
|
CNT = CNT+1 Если CNT = 0, PC = address CONTINUE Если CNT ≠ 0, PC = address HERE+1 |
|
| |||||||||||||||||||||
IORLW |
Дизъюнкция константы kи регистра W | |||||||||||||||||||||||
Синтаксис: |
[label] |
IORLW |
k |
| ||||||||||||||||||||
Операнды: |
0 ≤ k ≤ 255 |
| ||||||||||||||||||||||
Операция: |
(W) ИЛИ (k)→(W) |
| ||||||||||||||||||||||
Изменяемые биты состояния: |
Z |
| ||||||||||||||||||||||
Код: |
11 |
1000 |
kkkk |
kkkk |
| |||||||||||||||||||
Описание: |
Производится дизъюнкция константы kи регистраW результат помещается в регистр W | |||||||||||||||||||||||
Слов: |
1 |
|
| |||||||||||||||||||||
Циклов: |
1 |
|
| |||||||||||||||||||||
Пример: |
IORLW |
0x35 |
|
| ||||||||||||||||||||
|
До выполнения команды |
|
| |||||||||||||||||||||
|
W = 0x9A |
|
| |||||||||||||||||||||
|
После выполнения команды |
|
| |||||||||||||||||||||
|
W = 0xBF |
|
|
IORWF |
Дизъюнкция регистра 'f' и регистра W | ||||||||||
Синтаксис: |
[label] |
IORWF |
F,d |
| |||||||
Операнды: |
0 ≤ k ≤ 127 d Î [0,1] |
| |||||||||
Операция: |
(W) ИЛИ (f)→(dest) |
| |||||||||
Изменяемые биты состояния: |
Z |
| |||||||||
Код: |
00 |
0100 |
dfff |
ffff |
| ||||||
Описание: |
Производится конъюнкция содержимого регистра 'f' и регистраW если d=0, результат помещается в регистрW, если d=1, результат помещается в регистрf | ||||||||||
Слов: |
1 |
|
| ||||||||
Циклов: |
1 |
|
| ||||||||
Пример: |
IORWF |
RESULT,0 |
|
| |||||||
|
До выполнения команды |
|
| ||||||||
|
RESULT = 0x13 W = 0x91 |
|
| ||||||||
|
После выполнения команды |
|
| ||||||||
|
RESULT = 0x13 W = 0x93 |
|
|
MOVLW |
Засылка константы kв регистр W | ||||||||||||
Синтаксис: |
[label] |
IORLW |
k |
| |||||||||
Операнды: |
0 ≤ k ≤ 255 |
| |||||||||||
Операция: |
(k)→(W) |
| |||||||||||
Изменяемые биты состояния: |
- |
| |||||||||||
Код: |
11 |
00хх |
kkkk |
kkkk |
| ||||||||
Описание: |
Производится засылка константы kв регистрW | ||||||||||||
Слов: |
1 |
|
| ||||||||||
Циклов: |
1 |
|
| ||||||||||
Пример: |
MOVLW |
0x35 |
|
| |||||||||
|
После выполнения команды |
|
| ||||||||||
|
W = 0x35 |
|
|
MOVF |
Пересылка регистра f | |||||||||||
Синтаксис: |
[label] |
MOVF |
f,d |
| ||||||||
Операнды: |
0 ≤ f ≤ 127 d Î [0,1] |
| ||||||||||
Операция: |
(f)→(dest) |
| ||||||||||
Изменяемые биты состояния: |
Z |
| ||||||||||
Код: |
00 |
1000 |
dfff |
ffff |
| |||||||
Описание: |
Производится пересылка содержимого регистра 'f': если d=0 содержимое регистра 'f'помещается в регистр W, если d=1 содержимое регистра 'f'помещается в регистрf | |||||||||||
Слов: |
1 |
|
| |||||||||
Циклов: |
1 |
|
| |||||||||
Пример: |
MOVF |
FSR,0 |
|
| ||||||||
|
После выполнения команды |
|
| |||||||||
|
W = величине регистра FSR |
|
|
MOVWF |
Пересылка регистра W в регистр f | |||||||||||
Синтаксис: |
[label] |
MOVWF |
f,d |
| ||||||||
Операнды: |
0 ≤ f ≤ 127 |
| ||||||||||
Операция: |
(W)→(f) |
| ||||||||||
Изменяемые биты состояния: |
- |
| ||||||||||
Код: |
00 |
0000 |
1fff |
ffff |
| |||||||
Описание: |
Производится пересылка содержимого регистра Wв регистрf | |||||||||||
Слов: |
1 |
|
| |||||||||
Циклов: |
1 |
|
| |||||||||
Пример: |
MOVWF |
OPTION |
|
| ||||||||
|
До выполнения команды |
|
| |||||||||
|
OPTION = 0xFF W = 0x4F |
|
| |||||||||
|
После выполнения команды |
|
| |||||||||
|
OPTION = 0x4F W = 0x4F |
|
|
NOP |
Нет операции | ||||||||||||
Синтаксис: |
[label] |
NOP |
|
| |||||||||
Операнды: |
- |
| |||||||||||
Операция: |
- |
| |||||||||||
Изменяемые биты состояния: |
- |
| |||||||||||
Код: |
00 |
0000 |
0xx0 |
0000 |
| ||||||||
Описание: |
Операций не производится | ||||||||||||
Слов: |
1 |
|
| ||||||||||
Циклов: |
1 |
|
| ||||||||||
Пример: |
NOP |
|
|
|
OPTION |
Загрузка в регистр OPTION | ||||||||||||||
Синтаксис: |
[label] |
MOVWF |
f,d |
| |||||||||||
Операнды: |
- |
| |||||||||||||
Операция: |
(W)→OPTION |
| |||||||||||||
Изменяемые биты состояния: |
- |
| |||||||||||||
Код: |
00 |
0000 |
0110 |
0010 |
| ||||||||||
Описание: |
Производится загрузка регистра Wв регистрOPTION | ||||||||||||||
Слов: |
1 |
|
| ||||||||||||
Циклов: |
1 |
|
| ||||||||||||
Пример: |
|
|
|
| |||||||||||
Примечание: |
Команда не рекомендуется к использованию |
|
|
RETRFIE |
Возврат из подпрограммы обработки прерывания | ||||||||||||||||||||||||
Синтаксис: |
[label] |
RETRFIE |
|
| |||||||||||||||||||||
Операнды: |
- |
| |||||||||||||||||||||||
Операция: |
(TOS) → (PC) 1 → GIE |
| |||||||||||||||||||||||
Изменяемые биты состояния: |
- |
| |||||||||||||||||||||||
Код: |
00 |
0000 |
0000 |
1001 |
| ||||||||||||||||||||
Описание: |
Производится засылка вершины стека (TOS) в счетчик команд (PC) ) – адрес возврата. Разрешается прерывание путем установки триггера разрешения прерывания (GIE). | ||||||||||||||||||||||||
Слов: |
1 |
|
| ||||||||||||||||||||||
Циклов: |
2 |
|
| ||||||||||||||||||||||
Пример: |
RETFIE |
|
|
| |||||||||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||||||||||
|
PC = TOS GIE = 1 |
|
| ||||||||||||||||||||||
RETLW |
Возврат из подпрограммы с загрузкой константы в регистр W | ||||||||||||||||||||||||
Синтаксис: |
[label] |
RETLW |
k |
| |||||||||||||||||||||
Операнды: |
0 ≤ k ≤ 255 |
| |||||||||||||||||||||||
Операция: |
K → (W TOS → (PC) |
| |||||||||||||||||||||||
Изменяемые биты состояния: |
- |
| |||||||||||||||||||||||
Код: |
11 |
01xx |
kkkk |
kkkk |
| ||||||||||||||||||||
Описание: |
Регистр Wзагружается константой 'k'. Производится засылка вершины стека (TOS) в счетчик команд (PC) – адрес возврата. | ||||||||||||||||||||||||
Слов: |
1 |
|
| ||||||||||||||||||||||
Циклов: |
2 |
|
| ||||||||||||||||||||||
Пример: |
TABLE |
CALL ∙ ∙ ∙ ADDWF RETLW RETLW RETLW ∙ ∙ ∙ RETLW |
TABLE
PC k1 k2 k3
kn |
;Начало таблицы ;
;конец таблицы |
| ||||||||||||||||||||
|
До выполнения команды |
|
| ||||||||||||||||||||||
|
W = 0x07 |
|
| ||||||||||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||||||||||
|
W = величина k7 |
|
|
RETURN |
Возврат из подпрограммы | ||||||||||
Синтаксис: |
[label] |
RETURN |
|
| |||||||
Операнды: |
- |
| |||||||||
Операция: |
(TOS) → (PC) |
| |||||||||
Изменяемые биты состояния: |
- |
| |||||||||
Код: |
00 |
0000 |
0000 |
1000 |
| ||||||
Описание: |
Производится засылка вершины стека (TOS) в счетчик команд (PC) – адрес возврата | ||||||||||
Слов: |
1 |
|
| ||||||||
Циклов: |
2 |
|
| ||||||||
Пример: |
RETURN |
|
|
| |||||||
|
После выполнения команды |
|
| ||||||||
|
PC = TOS |
|
|
RLF |
Сдвиг влево регистра 'f' с присоединениемCarry | ||||||||||
Синтаксис: |
[label] |
RLF |
f,d |
| |||||||
Операнды: |
0 ≤ k ≤ 127 d Î [0,1] |
| |||||||||
Операция: |
Смотри описание далее |
| |||||||||
Изменяемые биты состояния: |
C |
| |||||||||
Код: |
00 |
1101 |
dfff |
ffff |
| ||||||
Описание: |
Производится сдвиг влево содержимого регистра с присоединением флага переноса Carry (бита 0 регистра статуса) если d=0, результат помещается в регистр W, если d=1, результат помещается в регистр f | ||||||||||
Слов: |
1 |
|
| ||||||||
Циклов: |
1 |
|
| ||||||||
Пример: |
RLF |
REG1,0 |
|
| |||||||
|
До выполнения команды |
|
| ||||||||
|
REG1 = 1110 0110 C = 0 |
|
| ||||||||
|
После выполнения команды |
|
| ||||||||
|
REG1 = 1110 0110 W = 1100 1100 C = 1 |
|
|
RRF |
Сдвиг вправо регистра 'f' с присоединениемCarry | ||||||||||
Синтаксис: |
[label] |
RRF |
f,d |
| |||||||
Операнды: |
0 ≤ k ≤ 127 d Î [0,1] |
| |||||||||
Операция: |
Смотри описание далее |
| |||||||||
Изменяемые биты состояния: |
C |
| |||||||||
Код: |
00 |
1100 |
dfff |
ffff |
| ||||||
Описание: |
Производится сдвиг вправо содержимого регистра с присоединением флага переноса Carry (бита 0 регистра статуса) если d=0, результат помещается в регистр W, если d=1, результат помещается в регистр f | ||||||||||
Слов: |
1 |
|
| ||||||||
Циклов: |
1 |
|
| ||||||||
Пример: |
RLF |
REG1,0 |
|
| |||||||
|
До выполнения команды |
|
| ||||||||
|
REG1 = 1110 0110 C = 1 |
|
| ||||||||
|
После выполнения команды |
|
| ||||||||
|
REG1 = 1110 0110 W = 1111 0011 C = 0 |
|
|
SLEEP |
Переход в режим пониженного потребления | ||||||||||||||||||||||||||||||
Синтаксис: |
[label] |
SLEEP |
|
| |||||||||||||||||||||||||||
Операнды: |
- |
| |||||||||||||||||||||||||||||
Операция: |
00h→(WDT) 0 → WDT prescaler 1 → 0 → |
| |||||||||||||||||||||||||||||
Изменяемые биты состояния: |
, |
| |||||||||||||||||||||||||||||
Код: |
00 |
0000 |
0110 |
0011 |
| ||||||||||||||||||||||||||
Описание: |
Бит регистра статуса устанавливается в '0'. Бит регистра статуса устанавливается в '1'. Сторожевой таймер WDT и предделитель устанавливаются в 0. Процессор переходит в режим SLEEP. | ||||||||||||||||||||||||||||||
Слов: |
1 |
|
| ||||||||||||||||||||||||||||
Циклов: |
1 |
|
| ||||||||||||||||||||||||||||
Пример: |
SLEEP |
|
|
| |||||||||||||||||||||||||||
SUBLW |
Вычесть из константы регистр W | ||||||||||||||||||||||||||||||
Синтаксис: |
[label] |
SUBLW |
k |
| |||||||||||||||||||||||||||
Операнды: |
0 ≤ k ≤ 255 |
|
| ||||||||||||||||||||||||||||
Операция: |
k-(W)→(W) |
|
| ||||||||||||||||||||||||||||
Изменяемые биты состояния: |
C, DC, Z |
|
| ||||||||||||||||||||||||||||
Код: |
11 |
110х |
kkkk |
kkkk |
| ||||||||||||||||||||||||||
Описание: |
Регистр W вычитается из значения 'k' и результат помещается в регистр W | ||||||||||||||||||||||||||||||
Слов: |
1 |
|
| ||||||||||||||||||||||||||||
Циклов: |
1 |
|
| ||||||||||||||||||||||||||||
Пример 1: |
SUBLW |
0х02 |
|
| |||||||||||||||||||||||||||
|
До выполнения команды |
|
| ||||||||||||||||||||||||||||
|
W = 0x01 C = ? |
|
|
| |||||||||||||||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||||||||||||||||
|
W = 0x01 C = 1 |
;Результат положительный |
|
| |||||||||||||||||||||||||||
Пример 2: |
SUBLW |
0х02 |
|
| |||||||||||||||||||||||||||
|
До выполнения команды |
|
| ||||||||||||||||||||||||||||
|
W = 0x02 C = ? |
|
|
| |||||||||||||||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||||||||||||||||
|
W = 0x00 C = 1 |
;Результат ноль |
|
| |||||||||||||||||||||||||||
Пример 3: |
SUBLW |
0х02 |
|
| |||||||||||||||||||||||||||
|
До выполнения команды |
|
| ||||||||||||||||||||||||||||
|
W = 0x03 C = ? |
|
|
| |||||||||||||||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||||||||||||||||
|
W = 0xFF C = 0 |
;Результат отрицательный |
|
|
SUBWF |
Вычесть регистр W из регистра f | ||||||||||||||||
Синтаксис: |
[label] |
SUBWF |
F,d |
| |||||||||||||
Операнды: |
0 ≤ f ≤ 127 d Î [0,1] |
|
| ||||||||||||||
Операция: |
(f)-(W)→(dest) |
|
| ||||||||||||||
Изменяемые биты состояния: |
C, DC, Z |
|
| ||||||||||||||
Код: |
00 |
0010 |
dfff |
ffff |
| ||||||||||||
Описание: |
Из содержимого регистра fвычитается значение регистра W; если d=0, результат помещается в регистр W, если d=1, результат помещается в регистр f | ||||||||||||||||
Слов: |
1 |
|
| ||||||||||||||
Циклов: |
1 |
|
| ||||||||||||||
Пример 1: |
SUBWF |
REG1,1 |
|
| |||||||||||||
|
До выполнения команды |
|
| ||||||||||||||
|
REG1 = 3 W = 2 C = ? |
|
| ||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||
|
REG1 = 1 W = 2 C = 1 |
;Результат положительный |
| ||||||||||||||
Пример 2: |
SUBWF |
REG1,1 |
|
| |||||||||||||
|
До выполнения команды |
|
| ||||||||||||||
|
REG1 = 2 W = 2 C = ? |
|
| ||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||
|
REG1 = 0 W = 2 C = 1 |
;Результат ноль |
| ||||||||||||||
Пример 3: |
SUBWF |
REG1,1 |
|
| |||||||||||||
|
До выполнения команды |
|
| ||||||||||||||
|
REG1 = 1 W = 2 C = ? |
|
| ||||||||||||||
|
После выполнения команды |
|
| ||||||||||||||
|
REG1 = FF W = 2 C = 0 |
;Результат отрицательный |
|
SWAPF |
Обмен местами тетрад в регистре f | ||||
Синтаксис: |
[label] |
SWAPF |
f,d |
|
Операнды: |
0 ≤ f ≤ 127 d Î [0,1] |
|
| ||||||||||
Операция: |
(f<3:0>)→(dest<7:4>) (f<7:4>)→(dest<3:0>) |
|
| ||||||||||
Изменяемые биты состояния: |
- |
|
| ||||||||||
Код: |
00 |
1110 |
dfff |
ffff |
| ||||||||
Описание: |
Старшая и младшая тетрады регистра fобмениваются местами; если d=0, результат помещается в регистр W, если d=1, результат помещается в регистр f | ||||||||||||
Слов: |
1 |
|
| ||||||||||
Циклов: |
1 |
|
| ||||||||||
Пример: |
SWAPF |
REG,0 |
|
| |||||||||
|
До выполнения команды |
|
| ||||||||||
|
REG = 0xA5 |
|
| ||||||||||
|
После выполнения команды |
|
| ||||||||||
|
REG = 0xA5 W = 0x5A |
|
|
TRIS |
Загрузка регистра TRIS | |||||||||||||
Синтаксис: |
[label] |
TRIS |
f |
| ||||||||||
Операнды: |
5 ≤ f ≤ 7 |
|
| |||||||||||
Операция: |
(W)→регистр TRIS (f) |
|
| |||||||||||
Изменяемые биты состояния: |
- |
|
| |||||||||||
Код: |
00 |
0000 |
0110 |
0fff |
| |||||||||
Описание: |
Записывается значение регистра Wв регистры управления портами TRISA, TRISB, TRISC | |||||||||||||
Слов: |
1 |
|
| |||||||||||
Циклов: |
1 |
|
| |||||||||||
Примечание: |
Команда не рекомендуется к использованию |
|
|
XORLW |
Исключающее ИЛИ константы kи регистра W | ||||||||||
Синтаксис: |
[label] |
ADDLW |
k |
| |||||||
Операнды: |
0 ≤ k ≤ 255 |
|
| ||||||||
Операция: |
(W) XOR k→(W) |
|
| ||||||||
Изменяемые биты состояния: |
Z |
|
| ||||||||
Код: |
11 |
1010 |
kkkk |
kkkk |
| ||||||
Описание: |
Производится операция ИСКЛЮЧАЮЩЕЕ ИЛИ между содержимым регистра W и константой k; результат помещается в регистр W | ||||||||||
Слов: |
1 |
|
| ||||||||
Циклов: |
1 |
|
| ||||||||
Пример: |
XORLW |
0хAF |
|
| |||||||
|
До выполнения команды |
|
| ||||||||
|
W = 0xB5 |
|
|
| |||||||
|
После выполнения команды |
|
| ||||||||
|
W = 0x1A |
|
|
|
XORWF |
Исключающее ИЛИ регистров W и f | ||||||||||||
Синтаксис: |
[label] |
XORWf |
F,d |
| |||||||||
Операнды: |
0 ≤ f ≤ 127 d Î [0,1] |
|
| ||||||||||
Операция: |
(W) XOR (f)→(dest) |
|
| ||||||||||
Изменяемые биты состояния: |
Z |
|
| ||||||||||
Код: |
00 |
0110 |
dfff |
ffff |
| ||||||||
Описание: |
Производится операция ИСКЛЮЧАЮЩЕЕ ИЛИ между содержимым регистров W и f; если d=0, результат помещается в регистр W, если d=1, результат помещается в регистр f | ||||||||||||
Слов: |
1 |
|
| ||||||||||
Циклов: |
1 |
|
| ||||||||||
Пример: |
XORWF |
REG,1 |
|
| |||||||||
|
До выполнения команды |
|
| ||||||||||
|
REG = 0xAF W = 0xB5 |
|
| ||||||||||
|
После выполнения команды |
|
| ||||||||||
|
REG = 0x1A W = 0xB5 |
|
|
Кроме описанных команд ассемблер MPASM воспринимает и ассемблирует команды, мнемоника которых приведена в табл. 7.2.2.
Таблица 7.2.2
Мнемоника специальных инструкций
Мнемоническое обозначение Mnemonic |
Description Описание |
Equivalent Operation(s) Эквивалентные операции |
Status Устанавливаемые флаги регистра состояния | ||
ADDCF |
f,d |
Add Carry to File Добавление бита переноса к f |
BTFSC INCF |
3,0 f,d |
Z |
ADDDCF |
f,d |
Add Digit Carry to File Добавление бита десятичного переноса к f |
BTFSC INCF |
3,1 f,d |
Z |
B |
k |
Branch Ветвление |
GOTO |
k |
– |
BC |
k |
Branch on Carry Ветвление по значению переноса “1” |
BTFSC GOTO |
3,0 k |
– |
BDC |
k |
Branch on Digit Carry Ветвление по значению десятичного переноса “1” |
BTFSC GOTO |
3,1 k |
– |
BNC |
k |
Branch on No Carry Ветвление по значению переноса “0” |
BTFSS GOTO |
3,0 k |
– |
BNDC |
k |
Branch on No Digit Carry Ветвление по значению десятичного переноса “0” |
BTFSS GOTO |
3,1 k |
– |
BNZ |
k |
Branch on No Zero Ветвление по значению флага нуля “0” |
BTFSS GOTO |
3,2 k |
– |
BZ |
k |
Branch on Zero Ветвление по значению флага нуля “1” |
BTFSC GOTO |
3,2 k |
– |
CLRC |
|
Clear Carry Очистить перенос |
BCF |
3,0 |
– |
CLRDC |
|
Clear Digit Carry Очистить десятичный перенос |
BCF |
3,1 |
– |
CLRZ |
|
Clear Zero Очистить флаг нуля |
BCF |
3,2 |
– |
LCALL |
k |
|
|
|
|
LGOTO |
k |
|
|
|
|
MOVFW |
f |
Move File to W Переслать регистр f в W |
MOVF |
f,0 |
Z |
NEGF |
f,d |
Negate File Вычислить дополнение f |
COMF INCF |
f,1 f,d |
Z |
Таблица 7.2.2 (продолжение)
SETC |
|
Set Carry Установить в ”1” Carry |
BSF |
3,0 |
– |
SETDC |
|
Set Digit Carry Установить в ”1” |
BSF |
3,1 |
– |
SETZ |
|
Set Zero Установить в ”1” |
BSF |
3,2 |
– |
SKPC |
|
Skip on Carry Пропуск команды, если Carry = 1 |
BTFSS |
3,0 |
– |
SKPDC |
|
Skip on Digit Carry Пропуск команды, если Digit Carry = 1 |
BTFSS |
3,1 |
– |
SKPNC |
|
Skip on No Carry Пропуск команды, если Carry = 0 |
BTFSC |
3,0 |
– |
SKPNDC |
|
Skip on No Digit Carry Пропуск команды, если Digit Carry = 0 |
BTFSC |
3,1 |
– |
SKPNZ |
|
Skip on Non Zero Пропуск команды, если Zero = 0 |
BTFSC |
3,2 |
– |
SKPZ |
|
Skip on Zero Пропуск команды, если Zero = 1 |
BTFSS |
3,2 |
– |
SUBCF |
f,d |
Subtract Carry from File Вычитание – f – Carry |
BTFSC DECF |
3,0 f,d |
Z |
SUBDCF |
f,d |
Subtract Digit Carry from File Вычитание – f – Digit Carry |
BTFSC DECF |
3,1 f,d |
Z |
TSTF |
f |
Test File Zero := 1, если f = 0 |
MOVF |
f,1 |
Z |