1. Instrucciones
Estas son las todas las instrucciones que hay para poder programar el Pic
16c5x, 16c64, 16c71, 16c74, 16c84 (tambien abarcara los flash respectivos, en
el caso que existan) . Las encontraremos en orden alfabetico.
En total son 37 y haciendo un clic sobre una de ellas podemos acceder a su
respectiva descripción:
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
Codificación 11 111x kkkk kkkk 0001 11df ffff
Codificación
Palabras, 00 0111 dfff ffff
1, 1
Ciclos Palabras,
1, 1
Operación W + k -> W Ciclos
Bit de W + f -> f si d=1
C, DC, Z Operación
estado W + f -> W si d=0
Añade el contenido de W Bit de
C, DC, Z
al contenido de k, y estado
almacena el resultado en Añade el contenido de W
Descripción W al contenido de f, y
Atención: Esta Descripción
almacena el resultado en
instrucción no existe en W si d=0, y en f si d=1
los Pic 16c5X
Volver
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
2. 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 estado
entre el contenido de W y Efectúa un AND lógico
Descripción
el literal k, y lo almacena entre el contenido de W y
en W Descripción el contenido de f, y
almacena el resultado en
W si d=0, y en f si d=1
Volver
BCF Bit Clear F BSF Bit Set F
Sintaxis BCF f, b Sintaxis BSF f, b
0100 bbbf ffff 0101 bbbf ffff
Codificación Codificación
01 00bb bfff ffff 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
Pone a cero el bit numero Pone a uno el bit numero
Descripción Descripción
b de f b de f
Volver
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, Palabras,
1, 1 o 2 1, 1 o 2
Ciclos Ciclos
Operación Salta si b(f)=0 Operación Salta si b(f)=1
Bit de Bit de
Ninguno Ninguno
estado estado
Si el bit numero b de f es Si el bit numero b de f
Descripción nulo, la instrucción que Descripción esta en uno, la
sigue a esta se ignora y se instrucción que sigue a
3. trata como un NOP. En esta se ignora y se trata
este caso, y solo en este como un NOP. En este
caso, la instrucción caso, y solo en este caso,
BTFSC precisa dos ciclos la instrucción BTFSC
para ejecutarse. precisa dos ciclos para
ejecutarse.
Volver
CALL Subrutina Call CLRF Clear F with F
Sintaxis CALL k Sintaxis CLRF f
1001 kkkk kkkk 0000 011f ffff
Codificación Codificación
10 0kkk kkkk kkkk 00 0001 1fff ffff
Palabras, Palabras,
1, 2 1, 1
Ciclos Ciclos
En el caso de los 16c5X: Operación 00 -> f
PC + 1 -> Pila, k -> Bit de
PC(0-7), 0 -> PC(8), PA2 Z
estado
a PA0 -> PC(9-11)
Operación En el caso de los 16c64, Pone el contenido de f a
Descripción
71, 74, 84: PC + 1 -> cero y activa el bit Z.
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.
Atención: El modo de
calculo de la dirección
Descripció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
4. CLRW Clear W register CLRWDT Clear Watchdog Timer
Sintaxis CLRW Sintaxis CLRWDT
0000 0100 0000 0000 0000 0100
Codificación Codificación
00 0001 0xxx xxxx 00 0000 0110 0100
Palabras, Palabras,
1, 1 1, 1
Ciclos Ciclos
Operación 00 -> W 00 -> WDT y 0 ->
Bit de Operación predivisor del
Z temporizador
estado
Pone el registro W a cero Bit de
Descripción 1 -> TO y 1 -> PD
y activa el bit Z estado
Pone a cero el registro
contador del
Descripción
temporizador watchdog,
asi como el predivisor
Volver
COMF Complement F DECF Decrement F to F
Sintaxis COMF f, d Sintaxis DECF f, d
0010 01df ffff 0000 11df ffff
Codificación Codificación
00 1001 dfff ffff 00 0011 dfff ffff
Palabras, Palabras,
1, 1 1, 1
Ciclos Ciclos
~f -> f su d=1 f - 1 -> f si d=1
Operación Operación
~f -> W si d=0 f - 1 -> W si d=0
Bit de Bit de
Z Z
estado estado
Hace un complemento de Decrementa el contenido
f bit a bit. El resultado lo de f en una unidad. El
Descripción almacena de nuevo en f si Descripción resultado se guarda en W
d=1 (borra el anterior), o si d=0 (f no varia), y en f
en W si d=0 (f no varía) si d=1
Volver
Decrement F, Skip If Salto Incondicionalwith
DECFSZ GOTO
Zero F
Sintaxis DECFSZ f, d Sintaxis GOTO k
5. 0010 11df ffff 101k kkkk kkkk
Codificación Codificación
00 1011 dfff ffff 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
f - 1 -> W si d=0 k -> PC(0-8), PA2 PA1,
Bit de PA0 -> PC(9-11)
Ninguno En el caso de los
estado Operación
16c64,71,74 y 84:
Decrementa el contenido k -> PC(0-10),
de f en una unidad. El PCLATH(3,4) ->
resultado se guarda en W PC(11,12)
si d=0 (f no varia), y en f
si d=1 Bit de
Descripción Ninguno
Si el reusltado es nulo, se estado
ignora la siguiente LLama a la subrutina
instrucción y en este caso situada en la dirección
la instrucción dura dos cargada en el PC
ciclos. Atención: El modo de
cálculo de la dirección
difiere según la familia
de PIC utilizada.
Descripción
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
INCF Increment F Increment F, Skip if
INCFSZ
Sintaxis INCF f, d Zero
Sintaxis INCFSZ f, d
0010 10df ffff
Codificación 0011 11df ffff
00 1010 dfff ffff Codificación
00 1111 dfff ffff
Palabras,
1, 1
Ciclos Palabras,
1, 1(2)
f + 1 -> f si d=1 Ciclos
Operación
f + 1 -> W si d=0 f + 1 -> f si d=1
Bit de f + 1 -> W si d=0
Z Operación
estado En ambos casos: Salto si
f+1=0
Incrementa el contenido
Descripción Bit de
de f en una unidad. El Ninguno
estado
6. resultado se almacena de Incrementa el contenido
nuebo en f si d=1 y en W de f en una unidad. El
si d=0(en este caso f no resultado se guarda de
varía) nuevo en f si d=1 y en w
si d=0 (en este caso f no
Descripción
varia). Si el resultado es
nulo, se ignora la
siguiente instrucción y en
este caso, esta instrucción
dura dos ciclos
Volver
Inclusive OR Literal IORWF Inclusive OR W With f
IORLW
With W Sintaxis IORWF f, d
Sintaxis IORLW k
0001 00df ffff
1101 kkkk kkkk Codificación
Codificación 11 0100 dfff ffff
11 1000 kkkk kkkk
Palabras,
1, 1
Palabras, Ciclos
1, 1
Ciclos W OR f -> f si d=1
Operación
Operación W OR k -> W W OR f -> W si d=0
Bit de Bit de
Z Z
estado estado
Efectúa un OR lógico Efectúa un OR lógico
inclusivo entre el inclusivo entre el
Descripción contenido de W y el contenido de W y el
Descripción
literal K, y almacena el contenido de f, y
resultado en W almacena el resultado en
f si d=1 o en W si d=0
Volver
MOVF Move F Move Literal to W with
MOVLW
Sintaxis MOVF f, d F
Sintaxis MOVLW k
0010 00df ffff
Codificación 1100 kkkk kkkk
00 1000 dfff ffff Codificación
11 00xx kkkk kkkk
Palabras,
1, 1
Ciclos Palabras,
1, 1
f -> f si d=1 Ciclos
Operación
f -> W si d=0 Operación k -> W
Bit de Z Bit de Ninguno
7. estado estado
Pone el contenido de f en Descripción Carga W con el literal k
f si d=1 o f en W si d=0
Atención: El
desplazamiento de f en f
que pareceria inutil,
Descripción
permite comprobar el
contenido de f con
respecto a cero ya que
esta instucción actúa
sobre el bit Z
Volver
MOVWF Move W to F NOP No Operation
Sintaxis MOVWF f Sintaxis NOP
0000 001f ffff 0000 0000 0000
Codificación Codificación
00 0000 1fff ffff 00 0xx0 0000
Palabras, Palabras,
1, 1 1, 1
Ciclos Ciclos
Operación W -> f Operación Ninguna
Bit de Bit de
Ninguno Ninguna
estado estado
Carga f con el contenido Consume tiempo de la
Descripción
de W maquina y ocupa un
Descripción
lugar en la memoria de
programa.
Volver
OPTION Load Option Register RETFIE Return From Interrupt
Sintaxis Option Sintaxis RETFIE
0000 0000 0010 Codificación 00 0000 0000 1001
Codificación
00 0000 0110 0010 Palabras,
1, 2
Palabras, Ciclos
1, 1
Ciclos Operación Pila -> PC, 1 -> GIE
Operación W -> OPTION Bit de
Ninguno
Bit de estado
Ninguno
estado Carga el PC con el valor
Descripción Carga el registro Descripción que se encuentra en la
parte superior de la pila,
8. OPTION con el asegurando asi la vuelta
contenido de W de la interrupción. Pone a
Atención: Esta 1 el bit GIE, con el fin de
instrucción no debe autorizar de nuevo que se
utilizarse en otros tengan en cuenta las
circuitos que no sean los interrupciones
PIC 16c5x. Sin embargo, Atención: Esta
es correctamente interrupción dura dos
interpretada por los ciclos
circuitos 16c64, 71, 74, Esta instrucción no existe
84 con el fin de asegurar para los PIC 16c5X
una compatibilidad
ascendente
Volver
RETLW Return Literal to W Return from
RETURN
Sintaxis RETLW k Subroutinewith F
Sintaxis RETURN
1000 kkkk kkkk
Codificación Codificación 00 0000 0000 0000
11 01xx kkkk kkkk
Palabras, Palabras,
1, 2 1, 2
Ciclos Ciclos
Operación k -> W, Pila -> PC Operación Pila -> PC
Bit de Bit de
Ninguno Ninguno
estado estado
Carga W con el literal k, Carga el PC con el valor
y después carga el PC que se encuentra en la
con el valor que se parte superior de la pila,
encuentra en la parte efectuando asi una vuelta
superior de la pila, a la subrutina. Se trata de
Descripción la instrucción RETLW
efectuando asi un retorno Descripción
de subrutina simplificada
Atención: Esta Atención:Esta
instrucción dura dos instrucción dura dos
ciclos ciclos
Esta instrucción no existe
en los PIC 16c5X
Volver
Rotate Left F through Rotate Right F through
RLF RRF
Carry Carry
Sintaxis RLF f,d Sintaxis RRF f, d
9. 0011 01df ffff 0011 00df ffff
Codificación Codificación
00 1101 dfff ffff 00 1100 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 Rotación de un bit a la
izquierda del contenido derecha del contenido de
de f, pasando por el bit de f, pasando por el bit de
Descripción acarreo C. Si d=1 el Descripción acarreo C. Si d=1 el
resultado se almacena en resultado se introduce en
f si d=0 el resultado se f, si d=0 el resultado se
almancena en W amacena en W
Volver
SLEEP Sleep Substract W from
SUBLW
Sintaxis SLEEP Literal
Sintaxis SUBLW k
0000 0000 0011
Codificación Codificación 11 110x kkkk kkkk
00 0000 0110 0011
Palabras, Palabras,
1, 1 1, 1
Ciclos Ciclos
0 -> PD, 1 -> TO, 00 -> Operación k - W -> W
Operación WDT, 0 -> Predivisor del Bit de
WDT C, DC, Z
estado
Bit de Sustrae el contenido de
PD, TO
estado W del literal k, y
Pone el circuito a dormir almacena el resultado en
con parada del oscilador. W. La sustracción se
Su consumo es inferior. Descripción realiza en complemento a
Atención: Use esta dos
Descripción instrucción con mucho Atención: Esta
cuidado, pues puede instrucción no existe en
provocar que el micro no los Pic 16c5X
despierte si no se ha
seteado correctamente.
Volver
SUBWF Substract W from F SWAPF Swap F to F
10. Sintaxis SUBWF f, d Sintaxis SWAPF f, d
0000 10df ffff 0011 11df ffff
Codificación Codificación
00 0010 dfff ffff 00 1110 dfff ffff
Palabras, Palabras,
1, 1 1, 1
Ciclos Ciclos
f - W -> f si d=1 f(0-3) -> f(4-7) y f(4-7) -
Operación
f - W -> W si d=0 > f(0-3)
Operación
Bit de Resultado -> f si d=1
C, DC, Z Resultado -> W si d=0
estado
Sustrae el contenido de Bit de
Ninguno
W del contenido de f, y estado
almacena el resultado en Intercambia los cuatro bit
Descripción
W si d=0 y en f si d=1. de mayor peso por los
La sustracción se realiza cuatro de menor peso de
Descripción
en complemento a dos f, y almacena el resultado
en W si d=0, y en f si
d=1
Volver
TRIS Load TRIS Register Exclusive OR Literal
XORLW
Sintaxis TRIS f With W
Sintaxis XORLW k
0000 0000 0fff
Codificación 1111 kkkk kkkk
00 0000 0110 0fff Codificación
11 1010 kkkk kkkk
Palabras,
1, 1
Ciclos Palabras,
1, 1
W -> registro TRIS del Ciclos
Operación
puerto f W OR (Exclusivo) k ->
Operación
Bit de W
Ninguno
estado Bit de
Z
Carga el contenido de W estado
en el registro TRIS del Efectúa un OR lógico
puerto f. exclusivo entre el
Atención: Esta contenido de W y el
Descripción
instrucción no debe contenido del Literal K y
utilizarse en otros almacena el resultado en
Descripción circuitos que no sean los W
Pic 16c5X. No obstante,
es correctamente
interpretada por los
circuitos 16c64, 71, 74,
84, con el fin de asegurar
una compatibilidad
11. ascendente
Volver
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
Efectúa un Or lógico
exclusivo entre el
contenido de W y el
Descripción
contenido de f y
almacena el resultado en
f si d=1 o en W si d=0
Volver