User: alciro    User
 

Microcontroladores 8051

Share |

2. Estructura de la memoria en los microcontroladores 8051

2.2. Memoria de datos interna

Los microcontroladores 8051 disponen de una memoria interna muy limitada, un total de 256 posiciones destinadas a los datos, registros de trabajo y registros especiales. En la familia de microcontroladores 8052 se ha ampliado mediante la incorporación de 128 nuevas posiciones entre las posiciones de memoria 80H y FFH que se solapan con las actuales. Para poder acceder a un grupo o al otro se ha de hacer por medio del direccionamiento, de esta forma, a la memoria principal se accede mediante el direccionamiento directo y a la secundaria o solapada mediante el indirecto. Atendiendo a los modos de direccionamiento del microcontrolador, podemos distinguir tres zonas de memoria:

  • Área de direccionamiento directo e indirecto.
  • Área de direccionamiento solo directo.
  • Área de direccionamiento solo indirecto (en el 8052).
Memoria de datos de los microcontroladores 8051/8052

Acceso a la zona de memoria mediante el Direccionamiento Directo.

Para el acceso al área de memoria de direccionamiento directo, se utiliza la dirección a la cual se desea acceder. Por ejemplo, para situar el valor 05H en el puerto P0 (80H).

MOV 80H,#05H ; Poner el dato inmediato (constante) 05H en la posición 80H

Acceso a la zona de memoria mediante el Direccionamiento Indirecto.

Para el acceso a la zona de memoria de direccionamiento indirecto se ha de utilizar el registro interno R0 o R1.
Por ejemplo, para poner 4 posiciones, de la 90H a la 93H de memoria a 0.

MOV R0,#90H  ; Mover la dirección a la que se desea acceder al registro R0
MOV @R0,#00H ; Mover de forma indirecta, mediante el contenido de R0 el dato inmediato 0
INC R0       ; Incrementar el registro R0 apuntador (91H)
MOV @R0,#00H ; Mover un 00H a la dirección apuntada
INC R0       ; Incrementar el registro R0 apuntador (92H)
MOV @R0,#00H ; Mover un 00H a la dirección apuntada
INC R0       ; Incrementar el registro R0 apuntador (93H)
MOV @R0,#00H ; Mover un 00H a la dirección apuntada

Loading

copyright © 2007-2024  www.alciro.org  All rights reserved.         
Share |