viernes, 16 de marzo de 2012

INSTRUCCIONES

INSTRUCCIÓN SUMA

Continuando con la entrada anterior hablare sobre el PIC16F84 y sobre como realiza las operaciones.

Este PIC puede realizar las operaciones aritméticas de sumar , restar ,incrementar y decrementar un registro ademas de operaciones logicas coomo OR, AND.

La suma se realizara en aritmética binaria pura sin signo y afecta a los flags del STATUS de la siguiente forma:
AL flag Z(ZERO) El bit Z se pone en 1 si el resultado de la operacion es cero(b´00000000) y se pone Z en 0 si el resultado tiene cualquier otro valor.

Al flag C(Carry) Si hay un acarreo del bit 7 , osea que si el resultado es mayor que b´11111111 el bit C se activa a 1 y en caso contrario resulta C = 0.

Al flag DC(Digital Carry). Si hay un acarreo del bit 3 al 4 , osea que la suma de las 2 mitades menos significativa (bits 0 a 3) resulta mayor que 15 , el bit DC se pone a 1 en caso contrario se pone a 0.

Un ejemplo de esto seria asi .
(ESTAS EN DECIMAL)
   163
  +79
   ____
   242

(ESTAS EN BINARIA)
   10100011
+ 01001111
   ________
   11110010

(EN HEXADECIMAL)
  A3
  4F
____
  F2

C        DC      Z
0          1         0

INSTRUCCIÓN RESTA


La resta se realiza sumando , en binario puro sin signo , el registro "f" mas el complemento a 2 del contenido del registro W. Al realizarse la resta en 8 bits con signo el resultado no podrá exceder de +127 ni de -128.
El flag Carry indica si el resultado es positivo C se pone a 1 o es negativo C se pondrá 0. Aquí pueden ocurrir 3 casos .

Si el resultado es positivo distinto de cero , C= 1 y Z = 0
si el resultado es cero , C = 1 y Z =1
Si el resultado es negativo , C =0 y Z = 0

INCREMENTAR Y DECREMENTAR


El contenido del registro f se incrementa en una unidad y se llama (incf de increment f) , Almacenara el resultado en w si d =0   y en el registro f si d =1. El flag Z se activa a 1 si el resultado de la operación es cero ,es decir si hay desbordamiento al pasar de b´11111111 a b´00000000.

El decremento se escribe asi decf de decrement f , el contenido se decrementara en una unidad , Este almacena el resultado W si d = 0 y en el registro f si d =1. El flag Z se activa a 1 si el resultado de la operación es cero.


INSTRUCCIÓN SLEEP


Esta instrucción es muy útil porque existe muchas ocasiones en las que el microcontrolador deberá de esperar sin hacer nada , esta instrucción se utiliza para ahorrar energía los microcontroladores PIC disponen de la instrucción especial sleep que les pasa al estado de reposo o también llamado bajo consumo.

En este estado el reloj principal se detiene y se detienen sus circuitos asociados , esperando la interrupción ocasionada para despertarlo.

INSTRUCCIONES ÚTILES 


Existen muchas instrucciones útiles por ejemplo incrementar un registro en un valor n , osea aumentarlo el valor que deseemos y se utiliza esta instrucción al igual que decrementarla en una valor de n y no solamente en una unidad .

Aumentar en n valor                                                 Decrementar en n valor
movlw d'7'                                                                movlw '8'
addwf  Nombredel registro,F                                    subwf  Nombredelregistro,F

Existen muchas otras instrucciones utiles , que quizas pueda incluirlas en otra entrada.


1 comentario: