El microcontrolador PIC16F628A puede realizar operaciones aritméticas tales como: sumar, restar,incrementar o decrementar un registro.
En este post, nos enfocaremos en trabajar dos instrucciones de suma que son: addlw k y addwf f,d
INSTRUCCIÓN addlw k
Esta instrucción se encarga de sumar el contenido del registro “W” con el literal o el valor constante “k”, este resultado es almacenado en el acumulador o registro “W”. Si por alguna razón se produce un acarreo, el flag C del registro status, automáticamente se pone a “1”
Ejemplo: addlw 0x4F
Si por ejemplo, el registro W contiene el valor 0xA3, se suman de la siguiente forma:
(W)+K= W
Se hace de la siguiente forma:
0xA3+0x4F=0xF2
El resultado 0XF2 será almacenado en el registro W
Como no hay acarreo, el flag C del registro status se pone en cero “0”
Ejemplo: addlw 0x38
Si por ejemplo, el registro W contiene el valor 0xD1, se suman de la siguiente forma:
(W)+K= W
Se hace de la siguiente forma:
0xD1+0x38=0x09
El resultado 0X09 será almacenado en el registro W
Como hay acarreo, el flag C del registro status se pone en cero “1”
INSTRUCCIÓN addwf f,d
Esta instrucció se encarga de sumar el contenido del registro W al contenido del registro f. Este resultado será almacenado en W si el destino “d” es igual a cero o f si el destino “d” es igual a uno.
Al igual que en la instrucción anterior, se producirá acarreo si el flag C del registro status se pone a “1”
Ejemplo: addwf PORTA, 0
suponiendo que W contiene a 0x17 y portA contiene a 0xC2
la suma entre ellos da 0xD9 y será almacenada en W, para este caso no existe acarreo por lo cual el C=0.
Ejemplo: addwf contador, 1
suponiendo que W contiene a 0xD1 y contador contiene a 0x38
la suma entre ellos da 0x109 y será almacenada en f, para este caso existe acarreo por lo cual el C=1.
CONTENIDOS RELEVANTES.