20
Set de instrucciones Microcontrolador PIC. Estas son las todas las instrucciones que hay para poder programar el Pic 16c5x, 16c6, 16c 16c", 16f84 , 16f873 . #as encontraremos en orden al$a%etico. E n total son &! y haciendo un clic so%re una de ellas podemos acceder a su respecti'a descr NOTA ) #as instrucciones OPTION yTRIS incluidas en este listado, no $orman parte del set de instru de los PIC 16$" y 16$"!&. 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 *++# - Codi$icaci(n 11 111x ---- ---- ADDWF ADD W to F Sintaxis *++ $, d Codi$icaci(n ///1 11d$ $$$$

Set de Instrucciones Microcontrolador PIC

Embed Size (px)

DESCRIPTION

instrucciones para pic 16f84a

Citation preview

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 descripcin: NOTA: Las instrucciones OPTION y TRIS incluidas en este listado, no forman parte del set de instrucciones de los PIC 16f84 y 16f873. ADDLWADDWF ANDLW ANDWF BCF BSF BTFSC BTFSSCALLCLRF CLRW CLRWDT COMF DECF DECFSZ GOTOINCFINCFSZ IORLW IORWF MOVF MOVLW MOVWFNOPOPTION RETFIE RETLW RETURN RLF RRFSLEEPSUBLW SUBWF SWAPF TRIS XORLW XORWF

ADDLWADD Literal to W

SintaxisADDLW k

Codificacin11111xkkkkkkkk

Palabras, Ciclos1, 1

OperacinW + k -> W

Bit de estadoC, DC, Z

DescripcinAade el contenido de W al contenido de k, y almacena el resultado en W Atencin: Esta instruccin no existe en los Pic 16c5X

ADDWFADD W to F

SintaxisADDWF f, d

Codificacin000111dfffff

000111dfffffff

Palabras, Ciclos1, 1

OperacinW + f -> f si d=1 W + f -> W si d=0

Bit de estadoC, DC, Z

DescripcinAade 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

ANDLWAND Literal and W

SintaxisANDLW k

Codificacin

1110kkkkkkkk

111001kkkkKkkk

Palabras, Ciclos1, 1

OperacinW AND k -> W

Bit de estadoZ

DescripcinEfecta un AND lgico entre el contenido de W y el literal k, y lo almacena en W

ANDWFAND W with F

SintaxisANDWF f, d

Codificacin

000101dfffff

000101dfffffff

Palabras, Ciclos1, 1

OperacinW AND f -> f si d=1W AND f -> W si d=0

Bit de estadoZ

DescripcinEfecta un AND lgico 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

BCFBit Clear F

SintaxisBCF f, b

Codificacin

0100bbbfffff

0100bbbfffffff

Palabras, Ciclos1, 1

Operacin0 -> b(f)

Bit de estadoNinguno

DescripcinPone a cero el bit numero b de f

BSFBit Set F

SintaxisBSF f, b

Codificacin

0101bbbfffff

0101bbbfffffff

Palabras, Ciclos1, 1

Operacin1 -> b(f)

Bit de estadoNinguno

DescripcinPone a uno el bit numero b de f

Volver a la lista

BTFSCBit Test, Skip If Clear

SintaxisBTFSC f, b

Codificacin

0110bbbfffff

0110bbbfffffff

Palabras, Ciclos1, 1 o 2

OperacinSalta si b(f)=0

Bit de estadoNinguno

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

BTFSSBit Test, Skip If Set

SintaxisBTFSS f, b

Codificacin

0111bbbfffff

0111bbbfffffff

Palabras, Ciclos1, 1 o 2

OperacinSalta si b(f)=1

Bit de estadoNinguno

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

Volver a la lista

CALLSubrutina Call

SintaxisCALL k

Codificacin

1001kkkkkkkk

100kkkkkkkkkkk

Palabras, Ciclos1, 2

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

DescripcinGuarda la direccin de vuelta en la pila y despues llama a la subrutina situada en la direccin cargada en el PC. Atencin: El modo de calculo de la direccin difiere segn la familia PIC utilizada. Tambin hay que posicionar bien PA2, PA1, PA0 (16c5X) o el registro PCLATH (en los demas PIC), antes de ejecutar la instruccin CALL

CLRFClear F with F

SintaxisCLRF f

Codificacin0000011fffff

0000011fffffff

Palabras, Ciclos1, 1

Operacin00 -> f

Bit de estadoZ

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

Volver a la lista

CLRWClear W register

SintaxisCLRW

Codificacin

000001000000

0000010xxxxxxx

Palabras, Ciclos1, 1

Operacin00 -> W

Bit de estadoZ

DescripcinPone el registro W a cero y activa el bit Z

CLRWDTClear Watchdog Timer

SintaxisCLRWDT

Codificacin

000000000100

00000001100100

Palabras, Ciclos1, 1

Operacin00 -> WDT y 0 -> predivisor del temporizador

Bit de estado1 -> TO y 1 -> PD

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

Volver a la lista

COMFComplement F

SintaxisCOMF f, d

Codificacin001001dfffff

001001dfffffff

Palabras, Ciclos1, 1

Operacin~f -> f su d=1 ~f -> W si d=0

Bit de estadoZ

DescripcinHace 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 vara)

DECFDecrement F to F

SintaxisDECF f, d

Codificacin

000011dfffff

000011dfffffff

Palabras, Ciclos1, 1

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

Bit de estadoZ

DescripcinDecrementa 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

DECFSZDecrement F, Skip If Zero

SintaxisDECFSZ f, d

Codificacin

001011dfffff

001011dfffffff

Palabras, Ciclos1, 1(2)

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

Bit de estadoNinguno

DescripcinDecrementa 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 instruccin y en este caso la instruccin dura dos ciclos.

GOTOSalto Incondicionalwith F

SintaxisGOTO k

Codificacin

101kkkkkkkkk

101kkkkkkkkkkk

Palabras, Ciclos1, 2

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

DescripcinLLama a la subrutina situada en la direccin cargada en el PC Atencin: El modo de clculo de la direccin difiere segn la familia de PIC utilizada. Tambin hay que posicionar correctamente PA2, PA1, PA0 (16c5X) o el registro PCLATH (en los demas PIC) antes de ejecutar la instruccin GOTO

Volver a la lista

INCFIncrement F

SintaxisINCF f, d

Codificacin001010dfffff

001010dfffffff

Palabras, Ciclos1, 1

Operacinf + 1 -> f si d=1 f + 1 -> W si d=0

Bit de estadoZ

DescripcinIncrementa 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 vara)

INCFSZIncrement F, Skip if Zero

SintaxisINCFSZ f, d

Codificacin001111dfffff

001111dfffffff

Palabras, Ciclos1, 1(2)

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

Bit de estadoNinguno

DescripcinIncrementa 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 instruccin y en este caso, esta instruccin dura dos ciclos

Volver a la lista

IORLWInclusive OR Literal With W

SintaxisIORLW k

Codificacin

1101kkkkkkkk

111000kkkkkkkk

Palabras, Ciclos1, 1

OperacinW OR k -> W

Bit de estadoZ

DescripcinEfecta un OR lgico inclusivo entre el contenido de W y el literal K, y almacena el resultado en W

IORWFInclusive OR W With f

SintaxisIORWF f, d

Codificacin

000100dfffff

110100dfffffff

Palabras, Ciclos1, 1

OperacinW OR f -> f si d=1W OR f -> W si d=0

Bit de estadoZ

DescripcinEfecta un OR lgico 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

MOVFMove F

SintaxisMOVF f, d

Codificacin001000dfffff

001000dfffffff

Palabras, Ciclos1, 1

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

Bit de estadoZ

DescripcinPone el contenido de f en f si d=1 o f en W si d=0 Atencin: El desplazamiento de f en f que pareceria inutil, permite comprobar el contenido de f con respecto a cero ya que esta instuccin acta sobre el bit Z

MOVLWMove Literal to W with F

SintaxisMOVLW k

Codificacin

1100kkkkkkkk

1100xxkkkkkkkk

Palabras, Ciclos1, 1

Operacink -> W

Bit de estadoNinguno

DescripcinCarga W con el literal k

Volver a la lista

MOVWFMove W to F

SintaxisMOVWF f

Codificacin0000001fffff

0000001fffffff

Palabras, Ciclos1, 1

OperacinW -> f

Bit de estadoNinguno

DescripcinCarga f con el contenido de W

NOPNo Operation

SintaxisNOP

Codificacin

000000000000

000xx00000

Palabras, Ciclos1, 1

OperacinNinguna

Bit de estadoNinguna

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

Volver a la lista

OPTIONLoad Option Register

SintaxisOption

Codificacin

000000000010

00000001100010

Palabras, Ciclos1, 1

OperacinW -> OPTION

Bit de estadoNinguno

DescripcinCarga el registro OPTION con el contenido de W Atencin: Esta instruccin 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

RETFIEReturn From Interrupt

SintaxisRETFIE

Codificacin00000000001001

Palabras, Ciclos1, 2

OperacinPila -> PC, 1 -> GIE

Bit de estadoNinguno

DescripcinCarga el PC con el valor que se encuentra en la parte superior de la pila, asegurando asi la vuelta de la interrupcin. Pone a 1 el bit GIE, con el fin de autorizar de nuevo que se tengan en cuenta las interrupciones Atencin: Esta interrupcin dura dos ciclos Esta instruccin no existe para los PIC 16c5X

Volver a la lista

RETLWReturn Literal to W

SintaxisRETLW k

Codificacin

1000kkkkkkkk

1101xxkkkkkkkk

Palabras, Ciclos1, 2

Operacink -> W, Pila -> PC

Bit de estadoNinguno

DescripcinCarga W con el literal k, y despus carga el PC con el valor que se encuentra en la parte superior de la pila, efectuando asi un retorno de subrutina Atencin: Esta instruccin dura dos ciclos

RETURNReturn from Subroutinewith F

SintaxisRETURN

Codificacin00000000000000

Palabras, Ciclos1, 2

OperacinPila -> PC

Bit de estadoNinguno

DescripcinCarga 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 instruccin RETLW simplificada Atencin:Esta instruccin dura dos ciclos Esta instruccin no existe en los PIC 16c5X

Volver a la lista

RLFRotate Left F through Carry

SintaxisRLF f,d

Codificacin

001101dfffff

001101dfffffff

Palabras, Ciclos1, 1

Operacinver descr.

Bit de estadoC

DescripcinRotacin 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

RRFRotate Right F through Carry

SintaxisRRF f, d

Codificacin001100dfffff

001100dfffffff

Palabras, Ciclos1, 1

OperacinVer descr.

Bit de estadoC

DescripcinRotacin 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

SLEEPSleep

SintaxisSLEEP

Codificacin

000000000011

00000001100011

Palabras, Ciclos1, 1

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

Bit de estadoPD, TO

DescripcinPone el circuito a dormir con parada del oscilador. Su consumo es inferior. Atencin: Use esta instruccin con mucho cuidado, pues puede provocar que el micro no despierte si no se ha seteado correctamente.

SUBLWSubstract W from Literal

SintaxisSUBLW k

Codificacin11110xkkkkkkkk

Palabras, Ciclos1, 1

Operacink - W -> W

Bit de estadoC, DC, Z

DescripcinSustrae el contenido de W del literal k, y almacena el resultado en W. La sustraccin se realiza en complemento a dos Atencin: Esta instruccin no existe en los Pic 16c5X

Volver a la lista

SUBWFSubstract W from F

SintaxisSUBWF f, d

Codificacin000010dfffff

000010dfffffff

Palabras, Ciclos1, 1

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

Bit de estadoC, DC, Z

DescripcinSustrae el contenido de W del contenido de f, y almacena el resultado en W si d=0 y en f si d=1. La sustraccin se realiza en complemento a dos

SWAPFSwap F to F

SintaxisSWAPF f, d

Codificacin

001111dfffff

001110dfffffff

Palabras, Ciclos1, 1

Operacinf(0-3) -> f(4-7) y f(4-7) -> f(0-3) Resultado -> f si d=1 Resultado -> W si d=0

Bit de estadoNinguno

DescripcinIntercambia 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

TRISLoad TRIS Register

SintaxisTRIS f

Codificacin

000000000fff

00000001100fff

Palabras, Ciclos1, 1

OperacinW -> registro TRIS del puerto f

Bit de estadoNinguno

DescripcinCarga el contenido de W en el registro TRIS del puerto f. Atencin: Esta instruccin 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

XORLWExclusive OR Literal With W

SintaxisXORLW k

Codificacin

1111kkkkkkkk

111010kkkkkkkk

Palabras, Ciclos1, 1

OperacinW OR (Exclusivo) k -> W

Bit de estadoZ

DescripcinEfecta un OR lgico exclusivo entre el contenido de W y el contenido del Literal K y almacena el resultado en W

Volver a la lista

XORWFExclusive Or W with F

SintaxisXORWF f,d

Codificacin000110dfffff

000110dfffffff

Palabras, Ciclos1, 1

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

Bit de estadoZ

DescripcinEfecta un Or lgico 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=0By: Alvaro A. Vera Sch.