Микроконтроллер PIC16
Система команд
Г. Караганда
ADDLW ADD Literal to W
Прибавление регистра W к константе k
Синтаксис: ADDLW k
Операнды: 00H £ k £ 0FFH
Операция: (k) + (W) ® W
Биты состояния: C, DC, Z
Описание: Содержимое регистра W добавляется к 8-битовой константе k. Результат сохраняется в регистре W.
Циклов: 1
ADDWF ADD W and f
Прибавление регистра W к регистру f
Синтаксис: ADDWF f,d
Операнды: f min £ f £ f max, d Î [0,1]
Операция: (f) + (W) ® (dest)
Биты состояния: C, DC, Z
Описание: Содержимое регистра W прибавляется к содержимому регистра f. Результат сохраняется: при d = 0 – в регистре W, при d = 1 – в том же регистре f.
Циклов: 1
ANDLW AND Literal to W
Сброс битов регистра W по маске k
Синтаксис: ANDLW k
Операнды: 00H £ k £ 0FFH
Операция: (W).AND.(k) ® W
Биты состояния: Z
Описание: В регистре W сбрасываются те биты, которые в маске k равны 0.
Циклов: 1
ANDWF AND W and f
Логическое умножение регистров W и f
Синтаксис: ANDWF f,d
Операнды: f min £ f £ f max, d Î [0,1]
Операция: (W).AND.(f) ® (dest)
Биты состояния: Z
Описание: Содержимые регистров W и f поразрядно логически умножаются. Результат сохраняется: при d = 0 -- в регистре W, при d = 1 -- в том же регистре f.
Циклов: 1
BCF Bit Clear f
Сброс бита b в регистре f
Синтаксис: BCF f,b
Операнды: f min £ f £ f max, 0 £ b £ 7
Операция: 0 ® b(f)
Биты состояния: Не изменяются
Описание: Бит b в регистре f сбрасывается в 0
Циклов: 1
BSF Bit Set f
Установка бита b в регистре f
Синтаксис: BSF f,b
Операнды: f min £ f £ f max, 0 £ b £ 7
Операция: 1 ® b(f)
Биты состояния: Не изменяются
Описание: Бит b в регистре f устанавливается в 1
Циклов: 1
BTFSC Bit Test f, Skip if Clear
Пропустить команду, если бит очищен
Синтаксис: BTFSC f,b
Операнды: f min £ f £ f max, 0 £ b £ 7
Операция: Пропустить команду, если b(f) = 0
Биты состояния: Не изменяются
Описание: Если бит b регистра f равен 1, выполняется следующая команда. Если бит b регистра f равен 0, следующая команда, считанная в текущем командном цикле, игнорируется, и вместо нее в следующем цикле выполняется NOP, в результате команда выполняется за два цикла.
Циклов: 1 (2)
BTFSS Bit Test f, Skip if Set
Пропустить команду, если бит установлен
Синтаксис: BTFSS f,b
Операнды: f min £ f £ f max, 0 £ b £ 7
Операция: Пропустить команду, если b(f) = 1
Биты состояния: Не изменяются
Описание: Если бит b регистра f равен 0, выполняется следующая команда. Если бит b регистра f равен 1, следующая команда, считанная в текущем командном цикле, игнорируется, и вместо нее в следующем цикле выполняется NOP, в результате команда выполняется за два цикла.
Циклов: 1 (2)
CALL CALL subroutine
Вызов подпрограммы
Синтаксис: CALL k
Операнды: 0 £ k £ 7FFH
Операция: (PC) + 1 ® TOS, k ® PC<10:0>, (PCLATH)<4:3> ® PC<12:11>.
Биты состояния: Не изменяются
Описание: Адрес возврата (PC) + 1 сохраняется в стеке. Младшие 11 бит адреса начала подпрограммы загружаются в PC из кода команды. Старшие два бита адреса загружаются в PC из регистра PCLATH.
Циклов: 2
CLRF CLeaR f
Очистка регистра f
Синтаксис: CLRF f
Операнды: f min £ f £ f max
Операция: 00h ® f, 1 ® Z
Биты состояния: Z
Описание: Содержимое регистра f сбрасывается в 0 и бит Z устанавливается в 1.
Циклов: 1
CLRW CLeaR W
Очистка регистра W
Синтаксис: CLRW
Операнды: Нет
Операция: 00h ® W, 1 ® Z
Биты состояния: Z
Описание: Содержимое регистра W сбрасывается в 0 и бит Z устанавливается в 1.
Циклов: 1
CLRWDT CLeaR WatchDog Timer
Сброс сторожевого таймера WDT
Синтаксис: CLRWDT
Операнды: Нет
Операция: 00h ® WDT, 0 ® WDT prescaler, 1 ® TO, 1 ® PD
Биты состояния: TO, PD
Описание: Команда сбрасывает сторожевой таймер WDT и предварительный делитель. В регистре состояния STATUS устанавливаются биты TO и PD.
Циклов: 1
COMF COMplement f
Инверсия регистра f
Синтаксис: COMF f,d
Операнды: f min £ f £ f max, d Î [0,1]
Операция:. NOT.(f) ® (dest)
Биты состояния: Z
Описание: Содержимое регистра f инвертируется. Результат сохраняется: при d = 0 – в регистре W, при d = 1 – в том же регистре f.
Циклов: 1
DECF DECrement f
Декремент регистра f
Синтаксис: DECF f,d
Операнды: f min £ f £ f max, d Î [0,1]
Операция: (f) – 1 ® (dest)
Биты состояния: Z
Описание: Содержимое регистра f декрементируется. Результат сохраняется: при d = 0 -- в регистре W, при d = 1 -- в том же регистре f.
Циклов: 1
DECFSZ DECrement f, Skip if 0
Декремент f, пропустить команду, если 0
Синтаксис: DECFSZ f,d
Операнды: f min £ f £ f max, d Î [0,1]
Операция: (f) – 1 ® (dest), пропустить, если (dest) = 0
Биты состояния: Z
Описание: Содержимое регистра f декрементируется. Результат сохраняется: при d = 0 – в регистре W, при d = 1 – в том же регистре f. Если результат не равен 0, выполняется следующая команда. Если результат равен 0, следующая команда, считанная в текущем командном цикле, игнорируется, и вместо нее в следующем цикле выполняется NOP, в результате команда выполняется за два цикла.
Циклов: 1 (2)
GOTO GOTO address
Переход по адресу
Синтаксис: GOTO k
Операнды: 0 £ k £ 7FFH
Операция: (k) ® PC <10:0>,
PCLATH<4:3> ® PC<12:11>.
Биты состояния: Не изменяются
Описание: Младшие 11 бит адреса перехода загружаются в PC из кода команды. Старшие два бита адреса загружаются в PC из регистра PCLATH.
Циклов: 2
INCF INCrement f
Инкремент регистра f
Синтаксис: INCF f,d
Операнды: f min £ f £ f max, d Î [0,1]
Операция: (f) + 1 ® (dest)
Биты состояния: Z
Описание: Содержимое регистра f инкрементируется. Результат сохраняется: при d = 0 -- в регистре W, при d = 1 -- в том же регистре f.
Циклов: 1
INCFSZ INCrement f, Skip if 0
Инкремент f, пропустить команду, если 0
Синтаксис: INCFSZ f,d
Операнды: f min £ f £ f max, d Î [0,1]
Операция: (f) + 1 ® (dest), пропустить, если (dest)=0.
Биты состояния: Z
Описание: Содержимое регистра f инкрементируется. Результат сохраняется: при d = 0 – в регистре W, при d = 1 – в том же регистре f. Если результат не равен 0, выполняется следующая команда. Если результат равен 0, следующая команда, считанная в текущем командном цикле, игнорируется, и вместо нее в следующем цикле выполняется NOP, в результате команда выполняется за два цикла.
Циклов: 1 (2)
IORLW Inclusive OR Literal to W
Установка битов регистра W по маске k
Синтаксис: IORLW k
Операнды: 00H £ k £ 0FFH
Операция: (W).OR.(k) ® W
Биты состояния: Z
Описание: В регистре W устанавливаются те биты, которые в маске k равны 1.
Циклов: 1
IORWF Inclusive OR W and f
Логическое сложение регистров W и f
Синтаксис: IORWF f,d
Операнды: f min £ f £ f max, d Î [0,1]
Операция: (W).OR.(f) ® (dest)
Биты состояния: Z
Описание: Содержимые регистров W и f поразрядно логически складывается. Результат сохраняется: при d = 0 – в регистре W, при d = 1 – в том же регистре f.
Циклов: 1
MOVF MOVe f
Пересылка регистра f
Синтаксис: MOVF f,d
Операнды: f min £ f £ f max, d Î [0,1]
Операция: (f) ® (dest)
Биты состояния: Z
Описание: Содержимое регистра f пересылается: при d = 0 – в регистр W, при d = 1 – в тот же регистр f. Назначение d = 1 имеет смысл использовать для проверки регистра на 0, поскольку команда изменяет флаг Z.
Циклов: 1
MOVLW MOVe Literal to W
Загрузка константы в регистр W
Синтаксис: MOVLW k
Операнды: 00H £ k £ 0FFH
Операция: (k) ® W
Биты состояния: Не изменяются
Описание: 8-битовая константа k загружается в регистр W
Циклов: 1
MOVWF MOVe W to f
Пересылка регистра W в регистр f
Синтаксис: MOVWF f
Операнды: f min £ f £ f max
Операция: (W) ® f
Биты состояния: Не изменяются
Описание: Содержимое регистра W пересылается в регистр f.
Циклов: 1
NOP No OPeration
Холостая команда
Синтаксис: NOP
Операнды: Нет
Операция: Нет
Биты состояния: Не изменяются
Описание: Нет операции
Циклов: 1
RETFIE RETurn with Interrupt Enable
Возврат из подпрограммы с разрешением прерываний
Синтаксис: RETFIE
Операнды: Нет
Операция: (TOS) ® PC
Биты состояния: Не изменяются
Описание: Извлеченное из стека значение загружается в PC
Циклов: 2
RETLW RETurn with Literal in W
Возврат из подпрограммы с загрузкой константы в регистр W
Синтаксис: RETLW k
Операнды: 0 £ k £ 0FFH
Операция: k ® (W), (TOS) ® PC
Биты состояния: Не изменяются
Описание: 8-битовая константа k загружается в регистр W. Адрес возврата восстанавливается в PC из вершины стека (TOS)
Циклов: 2
RETURN RETURN with subroutine
Возврат из подпрограммы
Синтаксис: RETURN
Операнды: Нет
Операция: (TOS) ® PC
Биты состояния: Не изменяются
Описание: Извлеченное из стека значение загружается в PC
Циклов: 2
RLF Rotate Left f through carry
Сдвиг регистра f влево через перенос
Синтаксис: RLF f,d
Операнды: f min £ f £ f max, d Î [0,1]
Операция: f<n> ® d<n + 1>, f<7> ® C, C ® d<0>
Биты состояния: C
Описание: Содержимое регистра f сдвигается на 1 бит влево через бит переноса C. Результат сохраняется: при d = 0 -- в регистре W, при d = 1 -- в том же регистре f.
Циклов: 1
RRF Rotate Right f through carry
Сдвиг регистра f вправо через перенос
Синтаксис: RRF f,d
Операнды: f min £ f £ f max, d Î [0,1]
Операция: f<n> ® d<n - 1>, f<0> ® C, C ® d<7>
Биты состояния: C
Описание: Cодержимое регистра f сдвигается на 1 бит вправо через бит переноса C. Результат сохраняется: при d = 0 – в регистре W, при d = 1 – в том же регистре f.
Циклов: 1
SLEEP Go into standby mode
Переход в режим SLEEP
Синтаксис: SLEEP
Операнды: Нет
Операция: 00h ® WDT, 0 ® WDT prescale,
1 ® TO, 0 ® PD
Биты состояния: TO, PD
Описание: Команда сбрасывает сторожевой таймер WDT и предварительный делитель. В регистре состояния устанавливается бит TO и сбрасывается бит PD. Процессор переходит в режим SLEEP с выключенным генератором.
Циклов: 1
SUBLW SUBtract W from Literal