direccionamiento microcontroladores pic

19
MODOS DE DIRECCIONAMIENTO Microcontroladores MsC. Ing. Luz Adanaqué 25.01.2016

Transcript of direccionamiento microcontroladores pic

Page 1: direccionamiento microcontroladores pic

MODOS DE DIRECCIONAMIENTO

Microcontroladores

MsC. Ing. Luz Adanaqué

25.01.2016

Page 2: direccionamiento microcontroladores pic

MODOS DE

DIRECCIONAMIENTO Son las formas en las que se obtienen los datos que serán utilizados en la instrucción.

Existen 4 modos de direccionamiento:

Inherente, Literal, Directo e Indirecto.

1. En el direccionamiento inherente la instrucción no tiene operando, o éste viene especificado en el propio código de operación.

Ejm:

RESET (los operandos son todos los registros) y

NOP (No realiza operación, no hay operando).

1. En el direccionamiento literal el operando se indica en la instrucción en forma explícita.

Ejm:

GOTO 0x100:Salto incondicional a la dirección 100h

MOVLW .23: Cargar en el PC el valor 23.

Page 3: direccionamiento microcontroladores pic

DIRECCIONAMIENTO DIRECTO

En este modo la dirección en la que se encuentra el valor del operando viene indicada en forma explícita en la instrucción.

Operando de tipo byte:

MOVOFF 0x011, 0x120

Instrucción Origen, Destino

MOVWF 0x06, 0

Banco de acceso rápido

MOVWF 0xB4

BSR y el byte indicado en la

instrucción

Page 4: direccionamiento microcontroladores pic

DIRECCIONAMIENTO DIRECTO

Operando de tipo bit:

En la instrucción se especifica el registro en el que se encuentra el bit y luego la posición del bit dentro del registro.

1. BSF 0x31, 6

Para facilitar las tareas de programación, en el lenguaje ensamblador los valores numéricos que corresponden a los literales o a las direcciones de memoria se representan mediante etiquetas:

VAR1 EQU 0x010

CTE EQU .24

MOVLW CTE1

MOVWF VAR1,0

Page 5: direccionamiento microcontroladores pic

DIRECCIONAMIENTO INDIRECTO

En este modo la dirección de memoria en la que se encuentra el dato

viene especificado en uno de los registros FSR0, FSR1 y FSR2.

Para acceder al valor se debe escribir la dirección del dato (12 bits)

en el registro FSRx (FSRxH[3..0] y FSRxL[3..0]) y se lee/escribe el

dato en el registro INDFx.

Page 6: direccionamiento microcontroladores pic

DIRECCIONAMIENTO INDIRECTO

Además de los INDFx existen otros registros virtuales que permiten acceder el dato apuntado por los FSRx, que permiten operaciones adicionales:

POSTDEC0, POSTDEC1, POSTDEC2.

POSTINC0, POSTINC1, POSTINC2.

PREINC0, PREINC1, PREINC2.

PLUSW0, PLUSW1, PLUSW2.

La lectura de estos registros virtuales mediante direccionamiento indirecto da como resultado 0x00

La escritura de estos registros virtuales mediante direccionamiento indirecto da como resultado un NOP.

No se deben modificar los valores de los FSRx mediante direccionamiento indirecto, se debe acceder a estos registros siempre mediante direccionamiento directo.

Page 7: direccionamiento microcontroladores pic

PIPELINING DE INSTRUCCIONES

Page 8: direccionamiento microcontroladores pic

ETAPAS DE INSTRUCCION

La ejecución de una instrucción podría descomponerse en las siguientes 5 etapas:

1.F: Alimentación de la instrucción (fetch).

2. D: Decodificación de la instrucción.

3. O: Extracción y cálculo de los operandos.

4. E: Ejecución (en la ALU).

5. W: Escritura del resultado (write).

Page 9: direccionamiento microcontroladores pic

PIPELINING DE INSTRUCCIONES

Page 10: direccionamiento microcontroladores pic

El pipeline se concentra en las evitar las dependencias entre los datos.

Page 11: direccionamiento microcontroladores pic

SOLUCION DE UNA DEPENDENCIA

Page 12: direccionamiento microcontroladores pic

INSTRUCCIONES

ESPECIALES

Instrucción GOTO

Page 13: direccionamiento microcontroladores pic

INSTRUCCIONES

ESPECIALES

Instrucción CALL

Page 14: direccionamiento microcontroladores pic

INSTRUCCIONES

ESPECIALES

Instrucción

RETURN

Page 15: direccionamiento microcontroladores pic

OSCILADORES

XT: Que trabaja con frecuencias no mayores de 4 Mhz.

LP: (Low Power) para frecuencias entre 32 y 200 Khz. Este modo está destinado para trabajar con un cristal de menor frecuencia, que, como consecuencia, hará que el PIC consuma menos corriente

Page 16: direccionamiento microcontroladores pic

TIPOS DE OSCILADORES

HS: Oscilador tipo "HS" (High Speed) para frecuencias comprendidas entre 4 y 20 MHz. Habremos de usar esta configuración cuando usemos cristales mayores de 4 MHz. La conexión es la misma que la de un cristal normal, a no ser que usemos un circuito oscilador.

INTOSC

EXTRC

Page 17: direccionamiento microcontroladores pic

RESET Cuando se ejecuta un reset, se producen dos acciones importantes.

El contador de programa se vuelve a colocar en el principio del programa (0000 h).

Los registros modificados vuelven a su estado por defecto.

El reset puede ser provocado por 3 causas diferentes que dan origen a 5 modos:

1. Conexión de la alimentación al PIC POR (Power On Reset).

2. Activando la patilla MLCR mientras el PIC está en modo normal.

3. Activando la patilla MLCR mientras el PIC está en modo SLEEP.

4. Un desbordamiento del WDT mientras el PIC está en modo normal.

5. Un desbordamiento del WDT mientras el PIC está en modo SLEEP.

Page 18: direccionamiento microcontroladores pic

FUENTES DE RESET Power On Reset:

Cuando se alimenta al PIC, se genera automáticamente un reset gracias a un circuito interno que detecta la subida de la tensión de alimentación en el rango de 1.2 a 1,7 voltios. Esto elimina la necesidad de utilizar un circuito externo mediante resistencia y condensador para conseguir un reset a la alimentción y si no va a utilizarse un reset manual, la patilla MCLR, puede conectarse a positivo (VCC) directamente o a través de una resistencia para desactivarla.

En todos los casos, salvo en el quinto, el contador de programa PC se pone a 0000 h (vector de reset), donde debe encontrarse la primera instrucción ejecutable del programa. Además todos los registros específicos (SFR) son colocados en estados predeterminados.

En el quinto caso, cuando se produce un desbordamiento del WDT mientras el PIC está en modo SLEEP.

No se produce un reset propiamente dicho, sino que el PIC se sale del modo SLEEP, se "despierta" mediante el temporizador watchdog y el PC se incrementa en una unidad para pasar a la instrucción que sigue a la instrucción SLEEP.

Igual que cuando se sale de este modo mediante una interrupción, si el bit GIE del registro INTCON está a uno.

Page 19: direccionamiento microcontroladores pic

REGISTRO STATUS

Contiene el estado aritmético de la ALU, el estado del RESET y los bits para la selección de banco.