Microcontroladores
Enviado por kiradri • 30 de Octubre de 2014 • 384 Palabras (2 Páginas) • 165 Visitas
CONJUNTO DE INSTRUCCIONES
[1]Como ya hemos visto, para que el microcontrolador lleve acabo una tarea, debemos indicarle exactamente que debe hacer, o en otras palabras, debemos escribir el programa que el micro ejecutara. Ya hemos visto varios ejemplos y muchas de las instrucciones del pic, pero ahora veremos las 35 instrucciones del ensamblador mpasm. Estas 35 instrucciones son las mismas para toda la gama media de los microcontroladores pic así que si más adelante se quiere realizar un programa para un pic 16F877 se usaran las mismas instrucciones.
Antes de continuar es necesario definir algunos términos que se usaran para explicar las instrucciones:
f: cualquier registro del micro controlador
W: registro de trabajo
b: posición 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: posición de un bit dentro de un registro
Instrucciones orientadas a registros
ADDWF: Suma W y f
Suma el contenido del registro 'W' y el registro 'f'. Si "d" es 0, el resultado se almacena en el registro W. Si 'd' es 1 el resultado se almacena en el registro 'f'.
Sintaxis: [etiqueta] ADDWF f, d
Operación: (W) + (f) --> (destino)
Flags afectados: C, DC, Z
Ejemplo: ADDWF REG, 1
Antes de la instrucción: W=0x03, REG=0x04
Después de la instrucción: W=0x03, REG=0x07
ANDWF: W AND f
Realiza la operación lógica AND entre el registro W y el registro "f". Si "d" es 0 el resultado se almacena en el registro W. Si "d" es 1, el resultado se almacena en el registro "f".
Sintaxis: [etiqueta] ANDWF f,d
Operación: (W) AND (f) --> (destino)
Flags afectados: Z
Ejemplo: ANDWF REG,1
Antes de la instrucción: W=0x17, REG= 0xC2
Después de la instrucción: W=0x17, REG= 0x02
CLRF: Borra un registro
Borra el contenido del registro 'f' y se activa el flag Z.
Sintaxis: [etiqueta] CLRF f
Flags afectados: Z
Ejemplo: CLRF REG
Antes de la instrucción: REG=0x54
Después de la instrucción: REG=0x00, Z=1
CLRW: Borra el registro de trabajo W
Borra el contenido del registro 'W' y se activa el flag Z. Esta instruccion no tiene operandos.
Sintaxis: [etiqueta] CLRW
Flags afectados: Z
Ejemplo: CLRW
Antes de la instrucción: W=0x54
Después de la instrucción: W=0x00, Z=1
COMF: Complementa el registro f
El contenido del registro 'f' se complementa. Si d=0 el resultado se almacena en
...