Sunteți pe pagina 1din 20

Set de instrucciones Microcontrolador PIC.

Estas son las todas las instrucciones que hay para poder programar el Pic 16c5x, 16c64, 16c71, 16c74,
16c84, 16f84, 16f873. Las encontraremos en orden alfabetico.

En total son 37 y haciendo un clic sobre una de ellas podemos acceder a su respectiva descripción:

NOTA: Las instrucciones OPTION y TRIS incluidas en este listado, no forman parte del set de instrucciones
de los PIC 16f84 y 16f873.

ADDLW CALL
INCF NOP SLEEP
ADDWF CLRF
INCFSZ OPTION SUBLW
ANDLW CLRW
IORLW RETFIE SUBWF
ANDWF CLRWDT
IORWF RETLW SWAPF
BCF COMF
MOVF RETURN TRIS
BSF DECF
MOVLW RLF XORLW
BTFSC DECFSZ
MOVWF RRF XORWF
BTFSS GOTO

ADDLW ADD Literal to W


ADDWF ADD W to F
Sintaxis ADDLW k
Sintaxis ADDWF f, d
11 111x kkkk kkkk
Codificación Codificación 0001 11df ffff
00 0111 dfff ffff
Palabras, Ciclos 1, 1
Operación W + k -> W
Bit de estado C, DC, Z Palabras,
1, 1
Ciclos
Añade el contenido de W al
contenido de k, y almacena el W + f -> f si d=1
resultado en W Operación
Descripción
W + f -> W si d=0
Atención: Esta instrucción no Bit de
C, DC, Z
existe en los Pic 16c5X estado
Añade el contenido de W al contenido
Descripción de f, y almacena el resultado en W si
d=0, y en f si d=1

Volver a la lista

ANDLW AND Literal and W ANDWF AND W with F


Sintaxis ANDLW k Sintaxis ANDWF f, d

1110 kkkk kkkk 0001 01df ffff


Codificación Codificación
11 1001 kkkk Kkkk 00 0101 dfff ffff
Palabras, Palabras,
1, 1 1, 1
Ciclos Ciclos
Operación W AND k -> W W AND f -> f si d=1
Operación
Bit de W AND f -> W si d=0
Z
estado Bit de
Z
Efectúa un AND lógico entre el estado
Descripción contenido de W y el literal k, y lo Efectúa un AND lógico entre el
almacena en W contenido de W y el contenido de f, y
Descripción
almacena el resultado en W si d=0, y
en f si d=1

Volver a la lista

BCF Bit Clear F BSF Bit Set F


Sintaxis BCF f, b Sintaxis BSF f, b

0100 bbbf ffff 0101 bbbf ffff


Codificación 01 00bb bfff ffff Codificación 01 01bb bfff ffff
Palabras, Palabras,
1, 1 1, 1
Ciclos Ciclos
Operación 0 -> b(f) Operación 1 -> b(f)
Bit de Bit de
Ninguno Ninguno
estado estado
Descripción Pone a cero el bit numero b de f Descripción Pone a uno el bit numero b de f

Volver a la lista

BTFSC Bit Test, Skip If Clear BTFSS Bit Test, Skip If Set
Sintaxis BTFSC f, b Sintaxis BTFSS f, b

0110 bbbf ffff 0111 bbbf ffff


Codificación
Codificación 01 10bb bfff ffff 01 11bb bfff ffff

Palabras,
1, 1 o 2
Ciclos
Palabras, Operación Salta si b(f)=1
1, 1 o 2
Ciclos
Bit de
Operación Salta si b(f)=0 Ninguno
estado
Bit de Si el bit numero b de f esta en uno, la
Ninguno
estado instrucción que sigue a esta se ignora
Descripción
Si el bit numero b de f es nulo, la y se trata como un NOP. En este caso,
Descripción
instrucción que sigue a esta se ignora y solo en este caso, la instrucción
y se trata como un NOP. En este caso, BTFSC precisa dos ciclos para
y solo en este caso, la instrucción ejecutarse.
BTFSC precisa dos ciclos para
ejecutarse.

Volver a la lista

CALL Subrutina Call CLRF Clear F with F


Sintaxis CALL k Sintaxis CLRF f

1001 kkkk kkkk 0000 011f ffff


Codificación 10 0kkk kkkk kkkk Codificación
00 0001 1fff ffff

Palabras,
1, 2 Palabras,
Ciclos 1, 1
Ciclos
En el caso de los 16c5X:
Operación 00 -> f
Bit de
PC + 1 -> Pila, k -> PC(0-7), 0 -> Z
Operación estado
PC(8), PA2 a PA0 -> PC(9-11) Pone el contenido de f a cero y activa
En el caso de los 16c64, 71, 74, 84: PC Descripción
el bit Z.
+ 1 -> Pila, k -> PC(0-10), PCLATH(3,4)
-> PC(11,12)
Bit de
Ninguno
estado
Guarda la dirección de vuelta en la
pila y despues llama a la subrutina
situada en la dirección cargada en el
PC.

Descripción
Atención: El modo de calculo de la
dirección difiere según la familia PIC
utilizada. También hay que posicionar
bien PA2, PA1, PA0 (16c5X) o el
registro PCLATH (en los demas PIC),
antes de ejecutar la instrucción CALL

Volver a la lista

CLRW Clear W register CLRWDT Clear Watchdog Timer


Sintaxis CLRW Sintaxis CLRWDT

0000 0100 0000 0000 0000 0100


Codificación 00 0001 0xxx xxxx Codificación 00 0000 0110 0100
Palabras, Palabras,
1, 1 1, 1
Ciclos Ciclos
Operación 00 -> W 00 -> WDT y 0 -> predivisor del
Operación
Bit de temporizador
Z
estado Bit de
1 -> TO y 1 -> PD
Pone el registro W a cero y activa el estado
Descripción
bit Z Pone a cero el registro contador del
Descripción temporizador watchdog, asi como el
predivisor

Volver a la lista

COMF Complement F DECF Decrement F to F


Sintaxis COMF f, d Sintaxis DECF f, d
0010 01df ffff
Codificación 00 1001 dfff ffff 0000 11df ffff
Codificación 00 0011 dfff ffff

Palabras,
1, 1
Ciclos Palabras,
1, 1
~f -> f su d=1 Ciclos
Operación f - 1 -> f si d=1
Operación
~f -> W si d=0
Bit de
Z
estado f - 1 -> W si d=0
Hace un complemento de f bit a bit. Bit de
Z
El resultado lo almacena de nuevo en estado
Descripción
f si d=1 (borra el anterior), o en W si Decrementa el contenido de f en una
d=0 (f no varía) Descripción unidad. El resultado se guarda en W si
d=0 (f no varia), y en f si d=1

Volver a la lista

DECFSZ Decrement F, Skip If Zero GOTO Salto Incondicionalwith F


Sintaxis DECFSZ f, d Sintaxis GOTO k

0010 11df ffff 101k kkkk kkkk


Codificación 00 1011 dfff ffff Codificación 10 1kkk kkkk kkkk

Palabras, Palabras,
1, 1(2) 1, 2
Ciclos Ciclos
f - 1 -> f si d=1 En el caso de los 16c5X:
Operación
Operación
f - 1 -> W si d=0 k -> PC(0-8), PA2 PA1, PA0 -> PC(9-
11)
Bit de En el caso de los 16c64,71,74 y 84:
Ninguno
estado k -> PC(0-10), PCLATH(3,4) ->
Decrementa el contenido de f en una PC(11,12)
unidad. El resultado se guarda en W si Bit de
Ninguno
d=0 (f no varia), y en f si d=1 estado
Descripción LLama a la subrutina situada en la
dirección cargada en el PC
Si el reusltado es nulo, se ignora la
siguiente instrucción y en este caso la
instrucción dura dos ciclos. Atención: El modo de cálculo de la
Descripción dirección difiere según la familia de
PIC utilizada. También hay que
posicionar correctamente PA2, PA1,
PA0 (16c5X) o el registro PCLATH (en
los demas PIC) antes de ejecutar la
instrucción GOTO

Volver a la lista

INCF Increment F INCFSZ Increment F, Skip if Zero


Sintaxis INCF f, d Sintaxis INCFSZ f, d
0010 10df ffff 0011 11df ffff
Codificación 00 1010 dfff ffff Codificación 00 1111 dfff ffff
Palabras, Palabras,
1, 1 1, 1(2)
Ciclos Ciclos
f + 1 -> f si d=1 f + 1 -> f si d=1
Operación
Operación
f + 1 -> W si d=0 f + 1 -> W si d=0
Bit de En ambos casos: Salto si f + 1 = 0
Z
estado Bit de
Ninguno
Incrementa el contenido de f en una estado
unidad. El resultado se almacena de Incrementa el contenido de f en una
Descripción
nuebo en f si d=1 y en W si d=0(en unidad. El resultado se guarda de
este caso f no varía) nuevo en f si d=1 y en w si d=0 (en
Descripción este caso f no varia). Si el resultado
es nulo, se ignora la siguiente
instrucción y en este caso, esta
instrucción dura dos ciclos

Volver a la lista

IORLW Inclusive OR Literal With W IORWF Inclusive OR W With f


Sintaxis IORLW k Sintaxis IORWF f, d

1101 kkkk kkkk 0001 00df ffff


Codificación Codificación
11 1000 kkkk kkkk 11 0100 dfff ffff
Palabras, Palabras,
1, 1 1, 1
Ciclos Ciclos
Operación W OR k -> W W OR f -> f si d=1
Bit de Operación
Z W OR f -> W si d=0
estado
Efectúa un OR lógico inclusivo entre Bit de
Z
Descripción el contenido de W y el literal K, y estado
almacena el resultado en W Efectúa un OR lógico inclusivo entre
el contenido de W y el contenido de f,
Descripción
y almacena el resultado en f si d=1 o
en W si d=0

Volver a la lista

MOVF Move F MOVLW Move Literal to W with F


Sintaxis MOVF f, d Sintaxis MOVLW k
0010 00df ffff
Codificación 00 1000 dfff ffff 1100 kkkk kkkk
Codificación 11 00xx kkkk kkkk

Palabras,
1, 1
Ciclos Palabras,
1, 1
Operación f -> f si d=1 Ciclos
Operación k -> W
Bit de
f -> W si d=0 Ninguno
estado
Bit de Descripción Carga W con el literal k
Z
estado
Pone el contenido de f en f si d=1 o f
en W si d=0

Descripción Atención: El desplazamiento de f en f


que pareceria inutil, permite
comprobar el contenido de f con
respecto a cero ya que esta instucción
actúa sobre el bit Z

Volver a la lista

MOVWF Move W to F NOP No Operation


Sintaxis MOVWF f Sintaxis NOP
0000 001f ffff
Codificación 00 0000 1fff ffff 0000 0000 0000
Codificación 00 0xx0 0000

Palabras,
1, 1
Ciclos
Operación W -> f Palabras,
1, 1
Bit de Ciclos
Ninguno
estado Operación Ninguna
Descripción Carga f con el contenido de W Bit de
Ninguna
estado
Consume tiempo de la maquina y
Descripción ocupa un lugar en la memoria de
programa.

Volver a la lista

OPTION Load Option Register RETFIE Return From Interrupt


Sintaxis Option Sintaxis RETFIE
00 0000 0000 1001
0000 0000 0010 Codificación
Codificación 00 0000 0110 0010
Palabras,
1, 2
Ciclos
Palabras, Operación Pila -> PC, 1 -> GIE
1, 1
Ciclos Bit de
Ninguno
Operación W -> OPTION estado
Bit de Carga el PC con el valor que se
Ninguno Descripción encuentra en la parte superior de la
estado
pila, asegurando asi la vuelta de la
Carga el registro OPTION con el interrupción. Pone a 1 el bit GIE, con
contenido de W el fin de autorizar de nuevo que se
tengan en cuenta las interrupciones

Atención: Esta instrucción no debe


Descripción utilizarse en otros circuitos que no Atención: Esta interrupción dura dos
sean los PIC 16c5x. Sin embargo, es ciclos
correctamente interpretada por los Esta instrucción no existe para los PIC
circuitos 16c64, 71, 74, 84 con el fin 16c5X
de asegurar una compatibilidad
ascendente

Volver a la lista

RETLW Return Literal to W RETURN Return from Subroutinewith F


Sintaxis RETLW k Sintaxis RETURN
00 0000 0000 0000
1000 kkkk kkkk Codificación
Codificación
11 01xx kkkk kkkk
Palabras,
1, 2
Ciclos
Palabras,
1, 2 Operación Pila -> PC
Ciclos
Operación k -> W, Pila -> PC Bit de
Ninguno
estado
Bit de Carga el PC con el valor que se
Ninguno
estado encuentra en la parte superior de la
Carga W con el literal k, y después pila, efectuando asi una vuelta a la
carga el PC con el valor que se subrutina. Se trata de la instrucción
encuentra en la parte superior de la RETLW simplificada
pila, efectuando asi un retorno de Descripción
Descripción subrutina
Atención:Esta instrucción dura dos
ciclos
Atención: Esta instrucción dura dos Esta instrucción no existe en los PIC
ciclos 16c5X

Volver a la lista

RLF Rotate Left F through Carry RRF Rotate Right F through Carry
Sintaxis RLF f,d Sintaxis RRF f, d
0011 00df ffff
0011 01df ffff Codificación 00 1100 dfff ffff
Codificación
00 1101 dfff ffff

Palabras, Palabras,
1, 1 1, 1
Ciclos Ciclos
Operación ver descr. Operación Ver descr.
Bit de Bit de
C C
estado estado
Rotación de un bit a la izquierda del Rotación de un bit a la derecha del
contenido de f, pasando por el bit de contenido de f, pasando por el bit de
Descripción acarreo C. Si d=1 el resultado se Descripción acarreo C. Si d=1 el resultado se
almacena en f si d=0 el resultado se introduce en f, si d=0 el resultado se
almancena en W amacena en W

Volver a la lista

SLEEP Sleep SUBLW Substract W from Literal


Sintaxis SLEEP Sintaxis SUBLW k
11 110x kkkk kkkk
0000 0000 0011 Codificación
Codificación 00 0000 0110 0011
Palabras,
1, 1
Ciclos
Palabras, Operación k - W -> W
1, 1
Ciclos Bit de
C, DC, Z
0 -> PD, 1 -> TO, 00 -> WDT, 0 -> estado
Operación
Predivisor del WDT Sustrae el contenido de W del literal k,
Bit de y almacena el resultado en W. La
PD, TO Descripción
estado sustracción se realiza en complemento
a dos
Pone el circuito a dormir con parada
del oscilador. Su consumo es inferior.
Atención: Esta instrucción no existe en
los Pic 16c5X
Descripción
Atención: Use esta instrucción con
mucho cuidado, pues puede provocar
que el micro no despierte si no se ha
seteado correctamente.

Volver a la lista

SUBWF Substract W from F SWAPF Swap F to F


Sintaxis SUBWF f, d Sintaxis SWAPF f, d
0000 10df ffff
Codificación 00 0010 dfff ffff 0011 11df ffff
Codificación
00 1110 dfff ffff
Palabras,
1, 1
Ciclos Palabras,
1, 1
f - W -> f si d=1 Ciclos
Operación f(0-3) -> f(4-7) y f(4-7) -> f(0-3)

f - W -> W si d=0 Operación


Bit de Resultado -> f si d=1
C, DC, Z Resultado -> W si d=0
estado
Sustrae el contenido de W del Bit de
Ninguno
contenido de f, y almacena el estado
Descripción resultado en W si d=0 y en f si d=1. La Intercambia los cuatro bit de mayor
sustracción se realiza en complemento peso por los cuatro de menor peso de
a dos Descripción
f, y almacena el resultado en W si d=0,
y en f si d=1

Volver a la lista

TRIS Load TRIS Register XORLW Exclusive OR Literal With W


Sintaxis TRIS f Sintaxis XORLW k

0000 0000 0fff 1111 kkkk kkkk


Codificación 00 0000 0110 0fff Codificación 11 1010 kkkk kkkk

Palabras, Palabras,
1, 1 1, 1
Ciclos Ciclos
Operación W -> registro TRIS del puerto f Operación W OR (Exclusivo) k -> W
Bit de Bit de
Ninguno Z
estado estado
Carga el contenido de W en el registro Efectúa un OR lógico exclusivo entre el
Descripción TRIS del puerto f. Descripción contenido de W y el contenido del
Literal K y almacena el resultado en W
Atención: Esta instrucción no debe
utilizarse en otros circuitos que no
sean los Pic 16c5X. No obstante, es
correctamente interpretada por los
circuitos 16c64, 71, 74, 84, con el fin
de asegurar una compatibilidad
ascendente

Volver a la lista

XORWF Exclusive Or W with F


Sintaxis XORWF f,d
0001 10df ffff
Codificación 00 0110 dfff ffff

Palabras,
1, 1
Ciclos
W OR (Exclusivo) f -> f si d=1
Operación
W OR (Exclusivo) f -> W si d=0
Bit de
Z
estado
By: Alvaro
A. Vera
Sch.
Descripción
Efectúa un Or lógico exclusivo entre el contenido de
W y el contenido de f y almacena el resultado en f si
d=1 o en W si d=0

S-ar putea să vă placă și