Дипломная работа: Система управления механизмом зажигания
Обозначения. 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 |