Дипломная работа: Система управления механизмом зажигания
Обозначения. I –
вход, O – выход, I/O вход/выход, P – вывод питания, TTL – стандартный TTL вход, ST – вход с триггером Шмидта.
Таблица 2. Система команд микроконтроллера PIC16F844I/P.
| Команда. |
Описание команды. |
| ADDWF f, d |
Сложение W и f |
| ANDWF f, d |
Выполняется побитное “И” содержимого регистров W и f.
Если d=0, результат сохраняется в регистре W.
Если d=1, результат сохраняется в регистре f.
|
| CLRF f |
Очистить содержимое регистра f и установить флаг Z. |
| CLRW |
Очистить содержимое регистра W и установить флаг Z. |
| COMF f, d |
Инвертировать все биты в регистре f.
Если d=0, результат сохраняется в регистре W.
Если d=1, результат сохраняется в регистре f.
|
| DECF f, d |
Декремент содержимого регистра f.
Если d=0, результат сохраняется в регистре W.
Если d=1, результат сохраняется в регистре f.
|
| DECFSZ f, d |
Вычесть 1 из f и пропустить если 0. Декремент содержимого
регистра f с пропуском, если 0.
Если d=0, результат сохраняется в регистре W.
Если d=1, результат сохраняется в регистре f.
Если результат не равен 0 – исполняется следующая инструкция.
Если результат = 0, то следующая инструкция не выполняется
(пропускается, вместо нее выполняется “виртуальный” NOP), а команда
выполняется за 2 цикла.
|
| INCF f, d |
Прибавить 1 к f. Инкремент содержимого регистра f.
Если d=0, результат сохраняется в регистре W.
Если d=1, результат сохраняется в регистре f.
|
| INCFSZ f, d |
Прибавить 1 к f и пропустить если 0. Инкремент содержимого
регистра f с пропуском, если 0.
Если d=0, результат сохраняется в регистре W.
Если d=1, результат сохраняется в регистре f.
Если результат не равен 0 – исполняется следующая инструкция.
Если результат = 0, то следующая инструкция не выполняется
(пропускается, вместо нее выполняется “виртуальный” NOP), а команда
выполняется за 2 цикла.
|
| IORWF f,d |
Побитное “ИЛИ” содержимого регистров W и f.
Если d=0 – результат сохраняется в регистре W.
Если d=1 – результат сохраняется в регистре f.
|
| MOVF f,d |
Содержимое регистра f пересылается в регистр адресата.
Если d=0 – значение сохраняется в регистре W.
Если d=1 – значение сохраняется в регистре f.
d=1 используется для проверки содержимого f на ноль.
|
| MOVWF f |
Переслать содержимое W в f. |
| NOP |
Нет операции. |
| RLF f, d |
Выполняется циклический сдвиг влево содержимого регистра f
через бит C регистра STATUS (через перенос).
Если d=0 – результат сохраняется в регистре W.
Если d=1 – результат сохраняется в регистре f.
|
| RRF f, d |
Выполняется циклический сдвиг вправо содержимого регистра f
через бит C регистра STATUS (через перенос).
Если d=0 – результат сохраняется в регистре W.
Если d=1 – результат сохраняется в регистре f.
|
| SUBWF f, d |
Вычетание содержимого регистра W из регистра f.
Если d=0 – результат сохраняется в регистре W.
Если d=1 – результат сохраняется в регистре f.
|
| SWAPF f, d |
Поменять местами старший и младший полубайты регистра f.
Если d=0 – результат сохраняется в регистре W.
Если d=1 – результат сохраняется в регистре f.
|
| XORWF f, d |
Сравнение содержимого регистров W и f (проверка на
“одинаковость”).
Побитное “Исключающее “ИЛИ” содержимого регистров W и f.
Если d=0 – результат сохраняется в регистре W.
Если d=1 – результат сохраняется в регистре f.
|
| BCF f, b |
Установить в 0 бит b регистра f. |
| BSF f, bf |
Установить в 1 бит b регистра f |
| BTFSC f, b |
Проверить бит b в регистре f.
Если бит b в регистре f =1, то исполняется следующая инструкция.
Если бит b в регистре f =0, то следующая инструкция не
выполняется (пропускается, вместо нее выполняется “виртуальный” NOP), а
команда выполняется за 2 цикла.
|
| BTFSS f, b |
Проверить бит b в регистре f.
Если бит b в регистре f=0, исполняется следующая инструкция.
Если бит b в регистре f=1, то следующая инструкция не
выполняется (пропускается, вместо нее выполняется “виртуальный” NOP), а
команда выполняется за 2 цикла.
|
| ADDLW k |
Содержимое регистра W складывается с 8 – разрядной
константой k. Результат сохраняется в регистре W. |
| SUBLW k |
Вычесть содержимое регистра W из 8 – разрядной константы k.
Результат сохраняется в регистре W. |
| MOVLW k |
Переслать константу k в регистр W. В неиспользуемых битах ассемблер
устанавливает 0. |
| ANDLW k |
Выполняется побитное “И” содержимого регистра W и 8 –
разрядной константы k. Результат сохраняется в регистре W. |
| IORLW k |
Выполняется побитное “ИЛИ” содержимого регистра W и 8 –
разрядной константы k. Результат сохраняется в регистре W. |
| XORLW k |
Сравнение содержимого регистра W и константы (проверка на
“одинаковость”). Выполняется побитное “Исключающее ИЛИ” содержимого регистра
W и 8 – разрядной константы k. Результат сохраняется в регистре W. |
| CALL |
Выполнить условный переход (переход по стеку). Адрес
следующей инструкции (PC+1) “загружается” в вершину стека (TOS). 11 бит
адреса “загружаются” из кода команды в счетчик команд PC<10:0>. 2
старших бита “загружаются” в счетчик команд PC<12:11> из регистра
PCLATH. |
| GOTO k |
Выполнить безусловный переход (стек не задействован). 11
бит адреса “загружаются” из кода команды в счетчик команд PC<10:0>. 2
старших бита “загружаются” в счетчик команд PC<12:11> из регистра
PCLATH. |
| RETURN |
Возврат из подпрограммы (по стеку). Вершина стека (TOS)
“выгружается” в счетчик команд PC. |
| RETLW k |
Возврат из подпрограммы (по стеку). В регистр W загружается
8разрядная константа. Вершина стека (TOS) “выгружается” в счетчик команд PC. |
| RETFIE |
Возврат из подпрограммы обработки прерываний (по стеку).
Вершина стека (TOS) загружается в счетчик команд PC. Осуществляется предварительное
разрешение прерываний (бит №7 регистра INTCON {GIE} устанавливается в 1). |
| CLRWDT |
Сброс WDT и предделителя (если он подключен к WDT). В
регистре STATUS, биты (TO) и (PD) устанавливаются в 1. Коэффициент деления
предделителя (если он подключен к WDT) не меняется. |
| SLEEP |
Переход в “спящий режим”. Сброс флага включения питания
(PD) в 0. Установка флага переполнения WDT (TO) в 1. Сброс WDT и его предделителя.
Перевод микроконтроллера в режим SLEEP и выключение тактового генератора. |
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 |