You are on page 1of 17

Programacin Bsica con PIC

Ing. Luar Covarrubia

Set de Instrucciones del PIC


Para entender mejor cada instruccin se explica a continuacin el significado de algunos parmetros: f: Registro al que afecta la instruccin. W: Acumulador (Working register). b: Nmero de bit (hay instrucciones que afectan slo a un bit) k: Constante. d: seleccin de destino del resultado de la instruccin, puede ser 0 o 1; si es 0 el resultado se guarda en el acumulador (W) y si es 1 se guarda en el registro f al que afecta la instruccin.

FORMATOS
Tipo Escritura 0X#; #h; H# .#; D# Ejemplos 0X5A; 5Ah; H5A .5; D5

HEXADECIMAL

DECIMAL

BINARIO

B#
CARACTER

B10100110
$

ASCII

Set de Instrucciones del PIC

Instrucciones orientadas a registros


ADDWF f,d ANDWF f,d CLRF f CLRW COMF f,d
Suma de W y el registro f, el resultado lo guarda segn d. Realiza la operacin AND lgica entre W y f, el resultado lo guarda segn d. Borra el registro f (pone todos sus bits a cero). Borra el acumulador.

Calcula el complemento del registro f (los bits que estn en 0 los pone en 1 y viceversa), el resultado lo guarda segn d.

Instrucciones orientadas a registros


DECF f,d
DECFSZ f,d
Decrementa f en uno (le resta uno), el resultado lo guarda segn d.
Decrementa f y se salta la siguiente instruccin si el resultado es cero, el resultado lo guarda segn d. Incrementa f en una (le suma uno), el resultado lo guarda segn d. Incrementa f y se salta la siguiente instruccin si el resultado es cero (cuando se desborda un registro vuelve al valor 00h). Realiza la operacin lgica OR entre W y f, el resultado lo guarda segn d.

INCF f,d INCFSZ f,d

IORWF f,d

Instrucciones orientadas a registros


MOVF f,d
Mueve el contenido del registro f a W si d=0 (si d=1 lo vuelve a poner en el mismo registro). Mueve el valor de W a f.

MOVWF f

NOP
RLF f,d

No hacer nada, solo pierde el tiempo durante un ciclo.


Rota el registro f hacia la izquierda a travs del bit CARRY (acarreo); todos los bits se mueven un lugar hacia la izquierda, el bit 7 de f pasa al CARRY y el bit CARRY pasa al bit 0 de f. Resultado segn d. Lo mismo que RLF pero hacia la derecha.

RRF f,d

Instrucciones orientadas a registros


SUBWF f,d SWAPF f,d
Resta f y W (f W), el resultado lo guarda segn d. Intercambia los 4 primeros bits de f por los otros cuatro, el resultado lo guarda segn d. Realiza la operacin lgica XOR (OR exclusiva) entre W y f. Resultado segn d.

XORWF f,d

Instrucciones orientadas a bits


BCF f,b
Pone a 0 el bit b del registro f.

BSF f,b
BTFSC f,b

Pone a 1 el bit b del registro f.

Se salta la siguiente instruccin si el bit b del registro f es 0. Se salta la siguiente instruccin si el bit b del registro f es 1.

BTFSS f,b

Instrucciones orientadas a constantes y de control


ADDLW k SUBLW k ANDLW k
Le suma el valor k al acumulador (W). Resta el acumulador (W) menos el valor k (W k). Operacin lgica AND entre W y el valor k. El resultado queda en el acumulador (W). Operacin lgica OR entre W y el valor k. El resultado queda en el acumulador (W). Operacin lgica XOR (OR exclusiva) entre W y el valor k. El resultado queda en el acumulador (W).

IORLW k

XORLW k

Instrucciones orientadas a constantes y de control


MOVLW k
Carga el acumulador (W) con el valor k.

GOTO k CALL k
RETURN

Salta a la direccin (etiqueta) k de programa. Llamada a subrutina cuyo inicio esta en la direccin (etiqueta) k.
Vuelve de una subrutina.

RETLW k

Carga el valor k en el acumulador (W) y vuelve de la interrupcin.

Instrucciones orientadas a constantes y de control


RETFIE
CLRWDT
Instruccin para volver de la interrupcin. Borra el registro WATCHDOG.

SLEEP

El PIC pasa a modo Standby.

STATUS

Operacin resta: Adems de realizar una simple resta sirve para obtener las siguientes comparaciones, bien sea entre un registro (f) y el acumulador (w) o una constante (k) y el acumulador (w)

F = W, k = W; status (z=1) F >= W, k >= W; status (c=1) F < W, k < W; status (c=0) Ejemplos:

F,k
W

5 0 2 +4

6 -4

z=1

c=1

c=0

Operacin XOR: Sirve para comparar, bien sea entre un registro (f) y el acumulador (w) o una constante (k) y el acumulador (w), para ver si son iguales o diferentes

F = W, k = W; (z=1)

status

Ejemplos: F,k 11001100 W 11001100 00000000 z=1

11110010 11001100 00111110 z=0

Operacin lgica AND: Uno de sus usos es eliminar una porcin de bit sin importancia. Ejemplo: Tomar 2 valores de 4 bits, que se encuentran en un puerto de 8 bits. Todo se basa en realizar una operacin AND del registro que contiene la informacin y el acumulador (W), colocando en este; unos en los bits del registro que deben mantenerse y ceros en los que desean eliminarse. Nota: Esto tambin sirve si el valor esta en una constante, es decir una constante y W
PORTx Z3 Z2 Z1 Z0 Y3 Y2 Y1 Y0 AND W 0 0 0 0 1 1 1 1

LSB

Y3

Y2

Y1

Y0

PORTx

Z3

Z2

Z1

Z0

Y3

Y2

Y1

Y0 AND

Z3

Z2

Z1

Z0

SWAPF

MSB

Z3

Z2

Z1

Z0

Instruccin RRF Registro original b7 b6 b5 b4 b3 b2 b1 b0


Carry
C Instruccin RRF

Registro despus De la instruccin

C b7 b6 b5 b4 b3 b2 b1 b0
Nuevo Carry

Instruccin RLF
Registro original Carry Registro despus De la instruccin

b7 b6 b5 b4 b3 b2 b1 b0
Instruccin RLF C

b7 b6 b5 b4 b3 b2 b1 b0 C
Nuevo Carry

Instruccin RRF Registro original 1


Carry
1

EJEMPLOS

Registro despus De la instruccin

Instruccin RLF
Registro original Carry Registro despus De la instruccin

Nuevo Carry

0
1

Nuevo Carry

You might also like