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 

ADDWF  
ANDLW  
ANDWF 
BCF  
BSF 
BTFSC  
BTFSS

CALL

CLRF 
CLRW  
CLRWDT  
COMF  
DECF 
DECFSZ  
GOTO

INCF

INCFSZ  
IORLW  
IORWF 
MOVF  
MOVLW 
MOVWF

NOP

OPTION  
RETFIE 
RETLW  
RETURN 
RLF  
RRF

SLEEP

SUBLW 
SUBWF  
SWAPF 
TRIS  
XORLW 
XORWF

 

 

 

 

ADDLW

ADD Literal to W

Sintaxis

ADDLW   k

Codificación

11

111x

kkkk

kkkk

 

 

Palabras, Ciclos

1, 1

Operación

W + k -> W

Bit de estado

C, DC, Z

Descripción

Añade el contenido de W al contenido de k, y almacena el resultado en W

 

Atención: Esta instrucción no existe en los Pic 16c5X

 

 

 

 

 

 

ADDWF

ADD W to F

Sintaxis

ADDWF f, d

Codificación

0001

11df

 

 

ffff

00

0111

dfff

ffff

 

 

 

Palabras, Ciclos

1, 1

Operación

W + f -> f si d=1

 

W + f -> W si d=0 

Bit de estado

C, DC, Z

Descripción

Añade el contenido de W al contenido 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

Sintaxis

ANDLW k

Codificación

 

1110

kkkk

kkkk

 

11

1001

kkkk

Kkkk

 

 

Palabras, Ciclos

1, 1

Operación

W AND k -> W

Bit de estado

Z

Descripción

Efectúa un AND lógico entre el contenido de W y el literal k, y lo almacena en W

 

 

 

 

 

 

ANDWF

AND W with F

Sintaxis

ANDWF f, d

Codificación

 

0001

01df

ffff

 

00

0101

dfff

ffff

 

 

Palabras, Ciclos

1, 1

Operación

W AND f -> f si d=1

W AND f -> W si d=0 

Bit de estado

Z

Descripción

Efectúa un AND lógico entre el contenido de W y el contenido de f, y almacena el resultado en W si d=0, y en f si d=1

 

 

Volver a la lista

 
   

 

BCF

Bit Clear F

Sintaxis

BCF f, b

Codificación

 

0100

bbbf

ffff

 

01

00bb

bfff

ffff

 
 
 

Palabras, Ciclos

1, 1

Operación

0 -> b(f)

Bit de estado

Ninguno

Descripción

Pone a cero el bit numero b de f

 

 

 

 

 

BSF

Bit Set F

Sintaxis

BSF f, b

Codificación

 

0101

bbbf

ffff

 

01

01bb

bfff

ffff

 
 
 

Palabras, Ciclos

1, 1

Operación

1 -> b(f) 

Bit de estado

Ninguno

Descripción

Pone a uno el bit numero b de f

 

 

Volver a la lista

 
  

BTFSC

Bit Test, Skip If Clear

Sintaxis

BTFSC f, b

Codificación

 

0110

bbbf

ffff

 

01

10bb

bfff

ffff

 
 

 

Palabras, Ciclos

1, 1 o 2

Operación

Salta si b(f)=0

Bit de estado

Ninguno

Descripción

Si el bit numero b de f es nulo, la instrucción que sigue a esta se ignora y se trata como un NOP. En este caso, y solo en este caso, la instrucción BTFSC precisa dos ciclos para ejecutarse.

 

 

 

 

 

BTFSS

Bit Test, Skip If Set

Sintaxis

BTFSS f, b

Codificación

 

0111

bbbf

ffff

 

01

11bb

bfff

ffff

 

Palabras, Ciclos

1, 1 o 2

Operación

Salta si b(f)=1

Bit de estado

Ninguno

Descripción

Si el bit numero b de f esta en uno, la instrucción que sigue a esta se ignora y se trata como un NOP. En este caso, y solo en este caso, la instrucción BTFSC precisa dos ciclos para ejecutarse.

 

 

Volver a la lista

   

 

CALL

Subrutina Call

Sintaxis

CALL k

Codificación

 

1001

kkkk

kkkk

 

10

0kkk

kkkk

kkkk

 

 

Palabras, Ciclos

1, 2

Operación

En el caso de los 16c5X:

 

PC + 1 -> Pila, k -> PC(0-7), 0 -> PC(8), PA2 a PA0 -> PC(9-11) 
En el caso de los 16c64, 71, 74, 84: PC + 1 -> Pila, k -> PC(0-10), PCLATH(3,4) -> PC(11,12)

Bit de estado

Ninguno

Descripción

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 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

 

 

 

 

 

 

CLRF

Clear F with F

Sintaxis

CLRF f

Codificación

0000

011f

ffff


 

 

00

0001

1fff

ffff

 

 

Palabras, Ciclos

1, 1

Operación

00 -> f

Bit de estado

Z

Descripción

Pone el contenido de f a cero y activa el bit Z.

 

 

Volver a la lista

   

 

CLRW

Clear W register

Sintaxis

CLRW

Codificación

 

0000

0100

0000

 

00

0001

0xxx

xxxx

 

 

Palabras, Ciclos

1, 1

Operación

00 -> W

Bit de estado

Z

Descripción

Pone el registro W a cero y activa el bit Z

 

 

 

 

 

 

CLRWDT

Clear Watchdog Timer

Sintaxis

CLRWDT

Codificación

 

0000

0000

0100

 

00

0000

0110

0100

 

 

Palabras, Ciclos

1, 1

Operación

00 -> WDT y 0 -> predivisor del temporizador

Bit de estado

1 -> TO y 1 -> PD

Descripción

Pone a cero el registro contador del temporizador watchdog, asi como el predivisor

 

 

Volver a la lista

   

 

COMF

Complement F

Sintaxis

COMF f, d

Codificación

0010

01df

ffff

 

00

1001

dfff

ffff

 

 

Palabras, Ciclos

1, 1

Operación

~f -> f su d=1

 

~f -> W si d=0

Bit de estado

Z

Descripción

Hace un complemento de f bit a bit. El resultado lo almacena de nuevo en f si d=1 (borra el anterior), o en W si d=0 (f no varía)

 

 

 

 

 

 

DECF

Decrement F to F

Sintaxis

DECF f, d

Codificación

 

0000

11df

ffff

 

00

0011

dfff

ffff

 

 

Palabras, Ciclos

1, 1

Operación

f - 1 -> f si d=1

 

f - 1 -> W si d=0 

Bit de estado

Z

Descripción

Decrementa el contenido de f en una 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

Sintaxis

DECFSZ f, d

Codificación

 

0010

11df

ffff

 

00

1011

dfff

ffff

 

 

Palabras, Ciclos

1, 1(2)

Operación

f - 1 -> f si d=1

 

f - 1 -> W si d=0

Bit de estado

Ninguno

Descripción

Decrementa el contenido de f en una unidad. El resultado se guarda en W si d=0 (f no varia), y en f si d=1

 

Si el reusltado es nulo, se ignora la siguiente instrucción y en este caso la instrucción dura dos ciclos.

 

 

 

 

 

 

GOTO

Salto Incondicionalwith F

Sintaxis

GOTO k

Codificación

 

101k

kkkk

kkkk

 

10

1kkk

kkkk

kkkk

 

 

Palabras, Ciclos

1, 2

Operación

En el caso de los 16c5X:

 

k -> PC(0-8), PA2 PA1, PA0 -> PC(9-11) 
En el caso de los 16c64,71,74 y 84: 
k -> PC(0-10), PCLATH(3,4) -> PC(11,12)

Bit de estado

Ninguno

Descripción

LLama a la subrutina situada en la dirección cargada en el PC

 

Atención: El modo de cálculo de la 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

Sintaxis

INCF f, d

Codificación

0010

10df

ffff

 

00

1010

dfff

ffff

 

 

Palabras, Ciclos

1, 1

Operación

f + 1 -> f si d=1

 

f + 1 -> W si d=0

Bit de estado

Z

Descripción

Incrementa el contenido de f en una unidad. El resultado se almacena de nuebo en f si d=1 y en W si d=0(en este caso f no varía)

 

 

 

 

 

 

INCFSZ

Increment F, Skip if Zero

Sintaxis

INCFSZ f, d

Codificación

0011

11df

ffff

 

00

1111

dfff

ffff

 

 

Palabras, Ciclos

1, 1(2)

Operación

f + 1 -> f si d=1

 

f + 1 -> W si d=0 
En ambos casos: Salto si f + 1 = 0

Bit de estado

Ninguno

Descripción

Incrementa el contenido de f en una unidad. El resultado se guarda de nuevo en f si d=1 y en w si d=0 (en 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

Sintaxis

IORLW k

Codificación

 

1101

kkkk

kkkk

 

11

1000

kkkk

kkkk

 

 

Palabras, Ciclos

1, 1

Operación

W OR k -> W

Bit de estado

Z

Descripción

Efectúa un OR lógico inclusivo entre el contenido de W y el literal K, y almacena el resultado en W

 

 

 

 

 

 

IORWF

Inclusive OR W With f

Sintaxis

IORWF f, d

Codificación

 

0001

00df

ffff

 

11

0100

dfff

ffff

 

 

Palabras, Ciclos

1, 1

Operación

W OR f -> f si d=1

 

W OR f -> W si d=0

Bit de estado

Z

Descripción

Efectúa un OR lógico inclusivo 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

 

 

Volver a la lista

   

 

MOVF

Move F

Sintaxis

MOVF f, d

Codificación

0010

00df

ffff

 

00

1000

dfff

ffff

 

 

Palabras, Ciclos

1, 1

Operación

f -> f si d=1

 

f -> W si d=0

Bit de estado

Z

Descripción

Pone el contenido de f en f si d=1 o f en W si d=0

 

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

 

 

 

 

 

 

MOVLW

Move Literal to W with F

Sintaxis

MOVLW k

Codificación

 

1100

kkkk

kkkk

 

11

00xx

kkkk

kkkk

 

 

Palabras, Ciclos

1, 1

Operación

k -> W

Bit de estado

Ninguno

Descripción

Carga W con el literal k

 

 

Volver a la lista

   

 

MOVWF

Move W to F

Sintaxis

MOVWF f

Codificación

0000

001f

ffff

 

00

0000

1fff

ffff

 

 

Palabras, Ciclos

1, 1

Operación

W -> f

Bit de estado

Ninguno

Descripción

Carga f con el contenido de W

 

 

 

 

 

 

NOP

No Operation

Sintaxis

NOP

Codificación

 

0000

0000

0000

 

00

0xx0

0000

 

 

 

Palabras, Ciclos

1, 1

Operación

Ninguna

Bit de estado

Ninguna

Descripción

Consume tiempo de la maquina y ocupa un lugar en la memoria de programa.

 

 

Volver a la lista

   

 

OPTION

Load Option Register

Sintaxis

Option

Codificación

 

0000

0000

0010

 

00

0000

0110

0010

 

 

Palabras, Ciclos

1, 1

Operación

W -> OPTION

Bit de estado

Ninguno

Descripción

Carga el registro OPTION con el contenido de W

 

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

 

 

 

 

 

 

RETFIE

Return From Interrupt

Sintaxis

RETFIE

Codificación

00

0000

0000

1001

 

 

Palabras, Ciclos

1, 2

Operación

Pila -> PC, 1 -> GIE

Bit de estado

Ninguno

Descripción

Carga el PC con el valor que se encuentra en la parte superior de la pila, asegurando asi la vuelta de la interrupción. Pone a 1 el bit GIE, con el fin de autorizar de nuevo que se tengan en cuenta las interrupciones

 

Atención: Esta interrupción dura dos ciclos 
Esta instrucción no existe para los PIC 16c5X

 

 

Volver a la lista

 

 

 

RETLW

Return Literal to W

Sintaxis

RETLW k

Codificación

 

1000

kkkk

kkkk

 

11

01xx

kkkk

kkkk

 

Palabras, Ciclos

1, 2

Operación

k -> W, Pila -> PC

Bit de estado

Ninguno

Descripción

Carga W con el literal k, y después carga el PC con el valor que se encuentra en la parte superior de la pila, efectuando asi un retorno de subrutina

 

Atención: Esta instrucción dura dos ciclos

 

 

 

 

 

 

RETURN

Return from Subroutinewith F

Sintaxis

RETURN

Codificación

00

0000

0000

0000

 

 

Palabras, Ciclos

1, 2

Operación

Pila -> PC

Bit de estado

Ninguno

Descripción

Carga el PC con el valor que se encuentra en la parte superior de la pila, efectuando asi una vuelta a la subrutina. Se trata de la instrucción RETLW simplificada

 

Atención:Esta instrucción dura dos ciclos 
Esta instrucción no existe en los PIC 16c5X

 

 

Volver a la lista

 

 

 

RLF

Rotate Left F through Carry

Sintaxis

RLF f,d

Codificación

 

0011

01df

ffff

 

00

1101

dfff

ffff

 

Palabras, Ciclos

1, 1

Operación

ver descr.

Bit de estado

C

Descripción

Rotación de un bit a la izquierda del contenido de f, pasando por el bit de acarreo C. Si d=1 el resultado se almacena en f si d=0 el resultado se almancena en W

 

 

 

 

 

 

RRF

Rotate Right F through Carry

Sintaxis

RRF f, d

Codificación

0011

00df

ffff

 

00

1100

dfff

ffff

 

 

Palabras, Ciclos

1, 1

Operación

Ver descr.

Bit de estado

C

Descripción

Rotación de un bit a la derecha del contenido de f, pasando por el bit de acarreo C. Si d=1 el resultado se introduce en f, si d=0 el resultado se amacena en W

 

 

Volver a la lista

 

 

SLEEP

Sleep

Sintaxis

SLEEP

Codificación

 

0000

0000

0011

 

00

0000

0110

0011

 

 

Palabras, Ciclos

1, 1

Operación

0 -> PD, 1 -> TO, 00 -> WDT, 0 -> Predivisor del WDT

Bit de estado

PD, TO

Descripción

Pone el circuito a dormir con parada del oscilador. Su consumo es inferior.

 

Atención: Use esta instrucción con mucho cuidado, pues puede provocar que el micro no despierte si no se ha seteado correctamente.

 

 

 

 

 

SUBLW

Substract W from Literal

Sintaxis

SUBLW k

Codificación

11

110x

kkkk

kkkk

 

 

Palabras, Ciclos

1, 1

Operación

k - W -> W

Bit de estado

C, DC, Z

Descripción

Sustrae el contenido de W del literal k, y almacena el resultado en W. La sustracción se realiza en complemento a dos

 

Atención: Esta instrucción no existe en los Pic 16c5X

 

 

Volver a la lista

 

 

 

SUBWF

Substract W from F

Sintaxis

SUBWF f, d

Codificación

0000

10df

ffff

 

00

0010

dfff

ffff

 

Palabras, Ciclos

1, 1

Operación

f - W -> f si d=1

 

f - W -> W si d=0

Bit de estado

C, DC, Z

Descripción

Sustrae el contenido de W del contenido de f, y almacena el resultado en W si d=0 y en f si d=1. La sustracción se realiza en complemento a dos

 

 

 

 

 

 

SWAPF

Swap F to F

Sintaxis

SWAPF f, d

Codificación

 

0011

11df

ffff

 

00

1110

dfff

ffff

 

Palabras, Ciclos

1, 1

Operación

f(0-3) -> f(4-7) y f(4-7) -> f(0-3)

 

Resultado -> f si d=1 
Resultado -> W si d=0 

Bit de estado

Ninguno

Descripción

Intercambia los cuatro bit de mayor peso por los cuatro de menor peso de f, y almacena el resultado en W si d=0, y en f si d=1

 

 

Volver a la lista

 

 

TRIS

Load TRIS Register

Sintaxis

TRIS f

Codificación

 

0000

0000

0fff

 

00

0000

0110

0fff

 

 

Palabras, Ciclos

1, 1

Operación

W -> registro TRIS del puerto f 

Bit de estado

Ninguno

Descripción

Carga el contenido de W en el registro TRIS del puerto f.

 

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

 

 

 

 

 

 

XORLW

Exclusive OR Literal With W

Sintaxis

XORLW k

Codificación

 

1111

kkkk

kkkk

 

11

1010

kkkk

kkkk

 

 

Palabras, Ciclos

1, 1

Operación

W OR (Exclusivo) k -> W

Bit de estado

Z

Descripción

Efectúa un OR lógico exclusivo entre el contenido de W y el contenido del Literal K y almacena el resultado en W

 

 

Volver a la lista

 

 

XORWF

Exclusive Or W with F

Sintaxis

XORWF f,d

Codificación

0001

10df

ffff

 

00

0110

dfff

ffff

 

Palabras, Ciclos

1, 1

Operación

W OR (Exclusivo) f -> f si d=1

 
W OR (Exclusivo) f -> W si d=0

Bit de estado

Z

Descripción

 By:    Alvaro A. Vera Sch.

 
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