Microcontrolador PIC16F84
Set de instrucciones
Para entender mejor cada instrucción se explica a continuación el significado de algunos parámetros:
f: Registro al que afecta la instrucción
W: Acumulador (Working register)
b: Número de bit (hay instrucciones que afectan a un solo bit)
k: constante (un número)
d: selección de destino del resultado de la instrucción, 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 instrucción.
Instrucciones orientadas a registros:
ADDWF f,d Suma W y el registro f, el resultado lo guarda según d (si d=0 se guarda en W y si d=1 se guarda en f).
ANDWF f,d Realiza la operación AND lógica entre W y f, el resultado lo guarda según d.
CLRF f Borra el registro f (pone todos susbits a cero).
CLRW - Borra el acumulador.
COMF f,d Calcula el complementario del registro f (los bits que estan a "0" los pone a "1" y viceversa. Resultado según d.
DECF f,d Decrementa f en uno (le resta uno). Resultado según d.
DECFSZ f,d Decrementa f y se salta la siguiente instrucción si el resultado es cero. Resultado según d.
INCF f,d Incrementa f en uno (le suma uno). Resultado según d.INCFSZ f,d Incrementa f y se salta la siguiente instrucción si el resultado es cero (cuando se desborda un registro vuelve al valor 00h). Resultado según d.
IORWF f,d Realiza la operación lógica OR entre W y f. Resultado según d.
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)
MOVWF f mueve el valor de W a f. Por ejemplo, si queremos copiar el valordel registro "REG1" al registro "REG2" (ya veremos como ponerles nombres a los registros) escribiremos:
MOVF REG1,0 ;mueve el valor de REG1 a W
MOVWF REG2 ;mueve el valor de W a REG2
Lo que va después del ; son comentarios
NOP - No hace nada, solo pierde el tiempo durante un ciclo.
RLF f,d Rota el registro f hacia la izquierda a través del bit CARRY (todos los bits se mueven un lugar hacia laizquierda, el bit 7 de f pasa al CARRY y el bit CARRY pasa al bit 0 de f). Resultado según d.
RRF f,d Lo mismo que RLF pero hacia la derecha.
SUBWF f,d Resta f y W (f - W). Resultado según d.
SWAPF f,d intercambia los 4 primeros bit de f por los otros cuatro. Resultado según d.
XORWF f,d Realiza la operación lógica XOR (OR exclusiva) entre W y f. Resultado según d.
Instrucciones orientadas a bits:BCF f,b Pone a "0" el bit b del registro f
BSF f,d Pone a "1" el bit b del registro f
BTFSC f,b Se salta la siguiente instrucción si el bit b del registro f es "0"
BTFSS f,b Se salta la siguiente instrucción si el bit b del registro f es "1"
Instrucciones orientadas a constantes y de control:
ADDLW k Le suma el valor k al acumulador (W).
ANDLW k Operación lógica AND entre W y el valor k (resultadoen W).
CALL k Llamada a subrutina cuyo inicio está en la dirección k
CLRWDT - Borra el registro Watchdog
GOTO k Salta a la dirección k de programa.
IORLW k Operación lógica OR entre W y el valor k (resultado en W)
MOVLW k carga el acumulador con el valor k. Por ejemplo, si queremos cargar el valor 2Ah en el registro "REG1" escribiremos:
MOVLW 2AH; carga el acumulador con el valor 2Ah
MOVWF REG1;mueve el valor de W a "REG1"
RETFIE - Instrucción para volver de la interrupción
RETLW k carga el valor k en W y vuelve de la interrupción
RETURN - vuelve de una subrutina.
SLEEP - El pic pasa a modo de Standby
Instrucciones para el ensamblador
Podemos usar para escribir los programas el bloc de notas de Windows, una vez escrito se guarda con extensión .asm para ensamblarlo con el MPASM.
Existenuna serie de instrucciones que son para el ensamblador y nos hacen la tarea de programación más sencilla y más legible.
EQU: Un ejemplo de esto son las etiquetas, podemos poner un nombre a un registro de memoria, esto se hace mediante la instrucción EQU. Por ejemplo:
VARIABLE1 EQU 0CH
A partir de ahora en lugar de escribir 0CH podemos escribir VARIABLE1. Con EQU también podemos poner nombre a...
Regístrate para leer el documento completo.