Microcontroladores: Modos de Bajo Consumo, Direccionamiento y Directivas Clave
Clasificado en Informática
Escrito el en español con un tamaño de 3,01 KB
Modo de Bajo Consumo
En el modo de bajo consumo, el microcontrolador suspende casi todas sus funciones, incluso el oscilador principal deja de funcionar. En estas condiciones, el microcontrolador consume muy poca corriente de la fuente de alimentación: menos de 1 µA. Mientras el microcontrolador permanece en este modo, los valores almacenados en los registros de la memoria de datos no se alteran.
Se sale o se “despierta” del modo de bajo consumo cuando ocurre uno de estos eventos:
- Reset: va a ejecutar la instrucción de la dirección 0.
- Desbordamiento del WDT (si está habilitado): va a ejecutar la instrucción siguiente a sleep.
- Interrupción GIE=1: ejecuta la instrucción siguiente a sleep y luego la de la posición 4.
- Interrupción GIE=0: ejecuta la instrucción siguiente a sleep.
Modos de Direccionamiento
- Directo: Cuando la dirección del dato se da en la instrucción.
Ejemplo: movf 0x20,f
- Indirecto: Cuando la instrucción toma la dirección del dato en RDD.
Ejemplo: movwf INDF,f
- Inmediato: Cuando el dato forma parte de la instrucción.
Ejemplo: movlw 1
- Implícito:
Ejemplo: return
Directivas del Assembler
ORG
Indica la dirección de la memoria de programa a partir de la cual se colocan las instrucciones que la siguen.
Ejemplo: ORG 0x00
; el programa empieza en la dirección 0x00.
EQU
Se utiliza para asignar un nombre a la dirección de una posición de memoria.
Ejemplo: PATATA EQU 0x03
; la dirección 0x03 se denomina ‘PATATA’.
BANKSEL
(Selección directa del banco de registros). Produce el código necesario para seleccionar el banco de registros donde se encuentre la etiqueta especificada en la directiva. Esta directiva equivale a intercalar instrucciones para manipular convenientemente los bits RP1 y RP0 del registro STATUS.
Ejemplo: banksel TRISB
; Seleccionar el banco 1 pues TRISB está en ese banco.
BANKISEL
(Selección indirecta del banco de registros). Produce el código necesario para seleccionar el banco de registros donde se encuentre la etiqueta especificada en la directiva. Esta directiva manipula el bit IRP del registro STATUS para darle el valor apropiado.
Ejemplo: bankisel REG1
; se selecciona el banco en donde está REG1.
PAGESEL
(Selección de página de memoria). Esta directiva produce el código necesario para seleccionar la página de la memoria de programa donde se encuentre la etiqueta especificada en la directiva.
Ejemplo: pagesel RUT
; se selecciona la página donde está la subrutina.
UDATA
Comenzar una sección de datos no iniciados.