Está en la página 1de 6

UNIVERSIDAD TECNICA DE BABAHOYO

Instrucciones del PIC 16F628A


Debemos de conocer unas definiciones que se utilizan para explicar las instrucciones.
F: cualquier registro del microcontrolador
W: registro de trabajo
B: posicin de un bit en el registro 'f'
D: destino, puede ser 'f' (d=1) o 'W' (d=0)
Etiqueta: grupo de caracteres que marcan el inicio de una parte del programa
[]: Opcional
: Posicin de un bit dentro de un registro

Nombre: Armando Garrido Curso: IV A Ing. Sistemas Matutino


UNIVERSIDAD TECNICA DE BABAHOYO

Instrucciones orientadas a registros.


Instruccin Concepto Sintaxis Operacin Flags Ejemplo
afectados
ADDWF: Suma el contenido del registro [etiqueta] ADDWF (W) + (f) --> C, DC, Z ADDWF REG,1
Suma W y f 'W' y el registro 'f'. Si "d" es 0, el f,d (destino) Antes de la instruccin: W=0x03,
resultado se almacena en el REG=0x04
registro W. Si 'd' es 1 el resultado Despus de la instruccin: W=0x03,
se almacena en el registro 'f'. REG=0x07

ANDWF: Realiza la operacin lgica AND [etiqueta] ANDWF : (W) AND (f) --> Z ANDWF REG,1
(W AND f) entre el registro W y el registro f,d (destino) Antes de la instruccin: W=0x17,
"f". Si "d" es 0 el resultado se REG= 0xC2
almacena en el registro W. Si "d" Despus de la instruccin: W=0x17,
es 1, el resultado se almacena en REG= 0x02
el registro "f".

CLRF: Borra el contenido del registro 'f' [etiqueta] CLRF f Z CLRF REG
(Borra un y se activa el flag Z. Antes de la instruccin: REG=0x54
registro) Despus de la instruccin:
REG=0x00, Z=1

CLRW: Borra el contenido del registro [etiqueta] CLRW Z : CLRW


(Borra el 'W' y se activa el flag Z. Esta Antes de la instruccin: W=0x54
registro de instruccin no tiene operando. Despus de la instruccin: W=0x00,
trabajo W) Z=1

COMF El contenido del registro 'f' se [etiqueta] COMF f,d Z COMF REG,0
(Complementa complementa. Si d=0 el Antes de la instruccin: REG=0x13
el registro f) resultado se almacena en el Despus de la instruccin:
registro W. Si d=1 el resultado se REG=0x13, W=0xEC
almacena en el registro 'f'.
DECF: Decrementa en uno el contenido [etiqueta] DECF f,d Z DEC CONT, 1
(Decrementa f del registro 'f'. Si d=0, el Antes de la instruccin: CONT=0x01,
en 1) resultado se almacena en W. Si Z=0
d=1, el resultado se almacena en Despus de la instruccin:
'f'. CONT=0x00, Z=1

DECFSZ: El contenido del registro 'f' se [etiqueta] DECFSZ Ninguno


(Decrementa decrementa. Si 'd=0, el resultado f,d
en 1 y salta si se coloca en el registro W. Si
el resultado es d=1, el resultado se coloca en el
0) registro 'f'. Si el resultado es 0, se
salta la siguiente instruccin y se
contina con la ejecucin.

INCF: Incrementa en uno el contenido [label] INCF f,d Z INCF CONT,1


(Incrementa el del registro 'f'. Si d=0, el Antes de la instruccin: CONT=0xFF,
registro f) resultado se almacena en W. Si Z=0
d=1, el resultado se almacena en Despus de la instruccin:
'f'. CONT=0x00, Z=1

INCFSZ: El contenido del registro 'f' se [etiqueta] DECFSZ Ninguno


(Incrementa incrementa. Si d=0, el resultado f,d
en 1 y salta si se coloca en el registro W. Si
el resultado es d=1, el resultado se coloca en el
0) registro 'f'. Si el resultado es 0, se

Nombre: Armando Garrido Curso: IV A Ing. Sistemas Matutino


UNIVERSIDAD TECNICA DE BABAHOYO
salta la siguiente instruccin y se
contina con la ejecucin.

IORWF: Realiza la operacin lgica OR [etiqueta] IORWF f,d Z IORWF REG,0


(W OR f) entre el registro W y el registro Antes de la instruccin: REG=0x13,
'f'. Si d=0 el resultado se W=0x91
almacena en el registro W. Si Despus de la instruccin:
d=1, el resultado se almacn en REG=0x13, W=0x93
el registro 'f'.

MOVF: El contenido del registro 'f' se [etiqueta] MOVF f,d Z MOVF REG,0
(Mover el mueve al destino 'd'. Si d=0, el Despus de la instruccin: W=REG
registro f) destino es el registro W. Si d=1,
el destino es el propio registro
'f'.

RLF: El contenido del registro 'f' se [etiqueta] RLF f,d C RLF REG,1
(Rota el rota una posicin a la izquierda. Antes de la instruccin:
registro f a la El bit de ms peso pasa al carry REG=b'11100110', C=0
izquierda) y el carry se introduce por el bit Despus de la instruccin:
de menos peso de 'f'. Si d=0, el REG=b'11001100', C=1
resultado se coloca en el registro
W. Si d=1, el resultado queda en
el registro 'f'.
RRF: El contenido del registro 'f' se [etiqueta] RLF f,d C RLF REG,1
(Rota el rota una posicin a la derecha. El Antes de la instruccin:
registro f a la bit de menos peso pasa al carry y REG=b'11100110', C=0
derecha) el carry se introduce por el bit de Despus de la instruccin:
ms peso de 'f'. Si d=0, el REG=b'01110011', C=0
resultado se coloca en el registro
W. Si d=1, el resultado queda en
el registro 'f'.
SUBWF: Resta el contenido del registro 'f' [etiqueta] SUBWF C, DC, Z SUBWF REG,1
(Resta f W) menos el contenido del registro f,d Antes de la instruccin: REG=0x01,
W. Si d=0, el resultado se W=0x02
almacena en el registro W. Si Despus de la instruccin:
d=1, el resultado se almacena en REG=0xFF, W=0x02
el registro 'f'.
SWAPF: El nibble bajo del registro 'f' se [etiqueta] SWAPF f,d Ninguno SWAPF REG,1
(Intercambio intercambia con el nibble alto Antes de la instruccin: REG=0x54
de f) del mismo. Si d=0, el resultado Despus de la instruccin: REG=0x45
se coloca en el registro W. Si
d=1, el resultado queda en el
registro 'f'.
XORWF: Realiza la funcin lgica OR [etiqueta] XORWF Z XORWF REG,1
(W XOR f) exclusiva entre el contenido del f,d Antes de la instruccin: REG=0xAF,
registro W y el registro 'f'. Si W=0xB5
d=0, el resultado se almacena en Despus de la instruccin:
el registro W. Si d=1 el resultado REG=0x1A, W=0xB5
se almacena en el registro 'f'.

NOP: No realiza ninguna operacin, [etiqueta] NOP


(No operacin) solo consume un ciclo de reloj

Nombre: Armando Garrido Curso: IV A Ing. Sistemas Matutino


UNIVERSIDAD TECNICA DE BABAHOYO

Instrucciones orientadas a bits


Instruccin Explicacin Sintaxis Ejemplo
BCF: (Borra un bit) Borra el bit 'b' del registro 'f' [etiqueta] BCF f,b : BCF REG,0
Antes de la instruccin: REG=b'01101101'
Despus de la instruccin: REG=b'01101100'

BSF: (Activa un bit) Activa el bit 'b' del registro 'f' [etiqueta] BSF f,b BSF REG,2
Antes de la instruccin: REG=b'01001001'
Despus de la instruccin: REG=b'01001011'

BTFSC: Si el bit "b" del registro "f" es 0, [etiqueta] BTFSC f,b


(Checa un bit y salta si es 0) se salta una instruccin y se
contina con la ejecucin.

BTFSS: [etiqueta] BTFSS f,b Si el bit "b" del registro "f" es 1, se salta una
(Checa un bit y salta si es 1) instruccin y se contina con la ejecucin.

Instrucciones orientadas a Constantes de Control


Instruccin Explicacin Sintaxis Flags Afectados Ejemplo
ANDLW: Realiza la operacin lgica [label] ANDWL k Z ANDLW 0x5F
(W AND literal) AND entre el registro W y la Antes de la instruccin: W=0xA3
constante "k". El resultado se Despus de la instruccin: W=0x03
almacena en el registro W.
CALL: (Llamada a Llamada y salto a subrutina. La [etiqueta] CALL k INICIO CALL DESTINO
subrutina) direccin de retorno se guarda Antes de la instruccin: PC=INICIO
en el stack. La constante "k" de Despus de la instruccin: PC=DESTINO
8 bits forma la direccin de salto
y se carga en los bits del PC. Los
bits del PC se cargan con los bits
del registro "STATUS". PC se
pone a 0.

CLRWDT: Esta instruccin borra tanto el [label] CLRWDT TO, PD


(Borra el watchdog timer) "watchdog" como el prescaler.
Los bits TO y PD del registro de
estado se ponen a "1".
GOTO: Se trata de un salto [etiqueta] GOTO k INICIO GOTO DESTINO
(Salto incondicional) incondicional. Los 9 bits de la Antes de la instruccin: PC=0
constante "k" que forman la Despus de la instruccin: PC=DESTINO
instruccin, se cargan en los bits
del PC y forman la direccin de
salto. Los bits del PC se cargan
con los bits del registro de
estado.
IORLW: (W OR literal) Se realiza la funcin lgica OR [etiqueta] IORLW k Z IORLW Ox35
entre el registro W y la contante Antes de la instruccin: W=0x9A
"k". El resultado se almacena en Despus de la instruccin: W=0xBF
el registro W.
MOVLW: El registro W se carga con el [etiqueta] MOVLW MOVLW 0x5A
(Carga un literal en W) valor de 8 bits expresado k Despus de la instruccin: W=0x5A
mediante la literal "k".
RETURN: (Regresa de una El programa regresa de la [etiqueta] RETURN
subrutina) subrutina y ejecuta la instruccin
que sigue a CALL
RETLW: El programa regresa de la [etiqueta] RETLW, RETLW, 0x45
Regresa de una subrutina y subrutina y carga el valor de 8 k Antes de la instruccin: W=xx
carga el valor K en W bits del registro k en el registro Despus de la instruccin: W=0x45
W

Nombre: Armando Garrido Curso: IV A Ing. Sistemas Matutino


UNIVERSIDAD TECNICA DE BABAHOYO
RETFIE: [etiqueta] RETFIE
(Regresa de la rutina de
servicio)
SLEEP: Al salir, activa el bit de estado [etiqueta] SLEEP TO, PD, GPWUF
(Entra en estado de reposo) TO y borra el PD. El WDT y el
prescaler se borran. Al entrar en
el modo SLEEP, se detiene el
oscilador.
XORLW: Realiza la funcin lgica OR [etiqueta] XORLW Z XORLW 0xAF
(W XOR literal) exclusiva entre el contenido del k Antes de la instruccin: W = 0xB5
registro W y la constante "k" de Despus de la instruccin: W = 0x1A
8 bits. El resultado se almacena
en el registro W.
SUBLW: A una constante "k" de 8 bits se [etiqueta] SUBLW C,DC,Z
(Resta L W) le resta el registro W. El k
resultado es guardado en el
mismo registro W.
MOVWF: El contenido del registro W se [etiqueta] MOVWF Ninguno MOVWF REG
(Mover el valor del registro W mueve al registro f. f Antes de la instruccin: REG=0x03,
al registro f) W=0xA4
Despus de la instruccin: REG=0xA4,
W=0xA4

Nombre: Armando Garrido Curso: IV A Ing. Sistemas Matutino


UNIVERSIDAD TECNICA DE BABAHOYO
ESQUEMA ELECTRICO

Nombre: Armando Garrido Curso: IV A Ing. Sistemas Matutino

También podría gustarte