Sie sind auf Seite 1von 16

El Microcontrolador 8051 CAP 2

_________________________________________________________________________
ITMAR Mazatln 8 Ing. Rufino J. Domnguez Arellano.
CAPITULO 2
Organizacin de la memoria en los Microcontroladores
8052/8051


2.1. MEMORIA DE PROGRAMAS Y DATOS


Los Microcontroladores 8052/8051 tienen separados los espacios de direcciones
para memoria de programas y memoria de datos (Figura 2.1).



La memoria de programas slo puede ser leda y tiene como mximo 64K. En el
8052 la memoria de programas interna es de 8K y en el 8051 de 4K. La seal de
autorizacin de lectura en la memoria de programas externa es PSEN.

El pin EA del Microcontrolador 8052 puesto a VCC indica que el puntero de
programa busca direcciones desde la posicin de memoria 0000H hasta la 1FFFH
de la memoria interna y de la 2000H ala FFFFH de la memoria externa mientras
que en el 8051 busca en la memoria interna de la direccin 000H hasta 0FFFH y
en la externa de la 1000H a la FFFFH. Si el pin EA es puesto a VSS, la bsqueda
de direcciones del programa se dirige a la memoria externa en todo momento.

El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 9 Ing. Rufino J. Domnguez Arellano.
La memoria de datos puede ocupar, si se desea, un espacio separado de la
memoria de programas. La memoria de datos admite operaciones de lectura y
escritura y, como se puede ver en la Figura 2.1, puede ser interna o externa y
puede direccionar, como la memoria de programas, hasta 64K. La CPU genera las
seales RD (read) y WR (write) para leer o escribir en la memoria de datos
externa.

Como anteriormente se deca, la memoria de programa y la memoria de datos
pueden coexistir en el mismo espacio de direcciones o en espacios separados; en
el primer caso se dice que la memoria es combinada y en el segundo segregada.
La memoria combinada se obtiene aplicando las seales RD y PSEN a una puerta
lgica AND y utilizando la salida de la puerta como strobe del chip de memoria
externa de programas y datos. En la Figura 2.2 se pueden observar grficamente
estos conceptos.



2.2. MEMORIA DE PROGRAMAS


En la Figura 2.3, se observa la divisin de la memoria de programas, segn se
considere mixta (interna y externa) o completamente externa.

En la parte baja de la memoria de programas se encuentran ciertas posiciones de
memoria especiales para el tratamiento de las rutinas de interrupciones. En la
Figura 2.4 se asignan las posiciones fijas de la vectorizacin de estas
interrupciones, as la posicin de memoria 0000 corresponde al RESET y el resto
figura sealado al margen.
El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 10 Ing. Rufino J. Domnguez Arellano.

Como se puede observar en la Figura 2.4, el intervalo fisico entre dos
interrupciones es de 8 bytes, espacio capaz para albergar una pequea rutina,
pero si ste no fuera suficiente se desviara el contador de programa (PC)
mediante una instruccin de salto (JMP) a una zona amplia de la memoria de
programas capaz de contener dicha rutina.



Figura 2.4



Se ha dicho anteriormente que la memoria de programa puede ser interna (en el
propio microcontrolador) o externa (en otro chip). La seleccin se realiza por
hardware, con la seal EA (Extern Access), poniendo este pin a VCC o a VSS
respectivamente. La configuracin del hardware para que el 8052/8051, como
El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 11 Ing. Rufino J. Domnguez Arellano.
microprocesador, utilice como memoria de programa la memoria externa, se
muestra en la Figura 2.5.





Se observa en la figura 2.5 que las 16 lneas de direccin corresponden al Puerto
0 al Puerto 2, que estn dedicados al bus de direcciones; aun ms, el Puerto P0
sirve como bus de direcciones y bus de datos, multiplexados en el tiempo. Esta
operacin, caracterstica de la familia de micros de Intel, se realiza de la forma
siguiente:

--El Puerto P0 emite el byte bajo de la palabra del contador de programa
(PCL). Una vez estabilizada la seal sobre P0, la seal ALE (Address Latch
Enab!e) introduce esta direccin dentro del dispositivo latch 74LS373, que
pasa a apuntar la direccin en la memoria externa de programas. Al mismo
tiempo, la parte alta del contador de programa (PCH) se emite por P2.
Entonces PSEN autoriza la lectura de cdigo de instruccin a travs del puerto
P0. En la figura 2.6(A) se muestra un cronograma de esta operacin.












El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 12 Ing. Rufino J. Domnguez Arellano.






Las secuencias de bsqueda/ejecucin son las mismas, sea la memoria de
programas interna o externa al microcontrolador; es decir, los tiempos de
ejecucin no dependen de que se utilice la memoria interna o externa.

La Figura 2.6 muestra el cronograma de las seales implicadas en la secuencia de
bsqueda, cuando la memoria de programas es externa. La seal PSEN se activa
dos veces por ciclo mquina, para autorizar la lectura en la memoria de
programas. Si se produce un acceso a la memoria de datos, como se muestra en
la Figura 2.6(B), no se emiten los dos impulsos PSEN, puesto que el acceso a la
memoria de datos no los necesita. Ms bien utiliza las seales RD (lectura) y WR
(escritura). Estas seales son generadas automticamente cuando el nemnico
correspondiente al cdigo de instruccin termina en la letra X.

Observe cmo el acceso a la memoria de datos toma dos ciclos ms de bus que la
memoria de programas. La Figura 2.6 muestra los cronogramas relativos a ambas
secuencias de acceso, destacando la emisin de direcciones por parte de P0 y P2,
y las seales ALE y PSEN. La seal ALE se utiliza para <latchear> el byte bajo
de direcciones dentro del latch que se dibuja en las Figuras 2.5 y 2.7.


Cuando la CPU est ejecutando un programa en la memoria interna, PSEN no se
activa y las direcciones no se emiten por los puertos.-Sin embargo ALE se sigue
emitiendo dos veces por cada ciclo mquina, pudiendo ser utilizada como seal de
reloj externo; no obstante, como se puede ver en la Figura 2.6(B), cuando se
accede a un operando utilizando la instruccin MOVX, la seal ALE desaparece.

En la Figura 2.6(B) se puede observar cmo se realiza un acceso a la memoria
externa de programas para tomar una instruccin y en el segundo ciclo se accede
El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 13 Ing. Rufino J. Domnguez Arellano.
a la memoria de datos externa para tomar un dato. En este caso observar que no
se activa PSEN.









El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 14 Ing. Rufino J. Domnguez Arellano.



2.3. MEMORIA DE DATOS


El 8052/8051 puede direccionar hasta 64 KB de memoria de datos externa. (La
instruccin MOVX se utiliza para acceder a los datos de la memoria externa.) Si
utiliza 16 bytes de direccin hgalo con MOVX @ DPTR, y si utiliza 8 bytes,
MOVX @ Ri.

La Figura 2.7 muestra la configuracin para acceder a 2 KB de memoria de datos
externa. En este caso la CPU tiene el programa interno en la ROM. El Puerto 0
multiplexea en el tiempo direcciones y datos en la RAM, y tres lneas del Puerto 2
completan el direccionamiento d los 2 Kbytes de RAM (memoria paginada). La
CPU genera las seales de lectura (RD) y escritura (WR) que necesita la RAM
externa. En la operacin de lectura de un dato se podra relacionar el cronograma
de la Figura 2.6(B) con la Figura 2.7.

En la Figura 2.8, se puede ver el mapa de la memoria de datos. La memoria
interna se encuentra dividida en tres bloques, los 128 bytes bajos, los 128 bytes
altos y el espacio ocupado, en parte, por los Registros de Funcin Especial (SFR).

Como se indica en la Figura 2.7, la memoria externa se puede direccionar
utilizando las lneas de E/S del Puerto 2 a voluntad, en funcin de la cantidad de
memoria a direccionar. Si el direccionamiento es de 8 bytes (no utiliza el Puerto 2),
el contenido de P2 permanece durante todo el ciclo para utilizar la memoria
El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 15 Ing. Rufino J. Domnguez Arellano.
paginada. Tambin se pueden utilizar 2 bytes de direcciones; byte bajo en el
Puerto 0 y byte alto en el Puerto 2. Este es el sistema clsico que permite
direccionar un mximo de 64 Kbytes.


En la memoria de datos interna se puede acceder a un total de 384 bytes para el
8052 y a 256 bytes para el 8051 incluido el rea de los registros especiales (SFR),
combinando los bloques de memoria de 128 bytes con el modo direccionamiento.





A continuacin, se va a analizar las tres reas de memoria interna: ,
rea de direccionamiento slo indirecto (para el 8052).
rea de direccionamiento indirecto y directo.
rea de direccionamiento directo y zona SFR.

2.4. AREA DE DIRECCIONAMIENTO SOLO INDIRECTO (para el
8052)


En la Figura 2.8 se observa que el rea SFR y el de direccionamiento indirecto
(80H a FFH) tienen las mismas direcciones. Sin embargo estn separados por
caminos de acceso diferentes, segn el direccionamiento de las instrucciones*.

As, la instruccin:

MOV 90H, #ABH

El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 16 Ing. Rufino J. Domnguez Arellano.
escribe ABH en la localizacin 90H de la memoria RAM de datos y concretamente
(por utilizar direccionamiento inmediato) en el Puerto 1 (90H = P1 (port1)) del rea
SFR.
En cambio, las instrucciones (en un 8052):

MOV R0, #90H
MOV @R0, #ABH

escnben ABH en la direccin 90H de la memoria de dalos y por utilizar
direccionamiento indirecto escribe en la media pgina que asoma detrs de la
media pgina del SFR en la Figura 2.8.

Despus de la ejecucin de ambos modos de direccionamiento, se hallar ABH en
el registro imagen del Puerto 1 (P1) en el SFR y ABH en la direccin 90H (Figura
2.9).



2.5. AREA DE DIRECCIONAMIENTO DIRECTO E INDIRECTO
(8052/8051)


Los 128 bytes a los que se puede acceder desde ambos direccionamientos,
directo e indirecto, pueden ser divididos en tres segmentos (Figura 2.10).

A continuacin se explican brevemente las caractersticas de esta rea.





El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 17 Ing. Rufino J. Domnguez Arellano.
Banco de registros (banco 0, 1, 2 y 3). Registros R0 a R7 por banco

Los registros se localizan desde la direccin 00H a 1FH (32 bytes). Despus de la
operacin de inicializacin del microcontrolador, aplicando un nivel alto a la
terminal RESET (vase Apartado 2.7 de este captulo), el banco operativo por
defecto es el banco 0. La seleccin de otro banco de registros debe hacerse por
software escribiendo en el registro de estado PSW (vase Tabla 2.1).



El RESET inicializa el Stack Pinter (SP) en la direccin de memoria 07H y se
incrementa inmediatamente a la direccin 08H que es el primer registro R0 del
segundo banco de registros. Con el fin de usar ms de un banco de registros, el
SP se puede inicializar en otra localizacin de memoria.


Sub rea direccionable bit a bit


Esta rea tiene una longitud de 16 bytes (segmento 20H a 2FH). Cada uno de los
128 bits de este segmento se puede direccionar directamente (00H a 7FH).

Los bits se pueden referir de dos formas diferentes, bien por sus direcciones (bits
00H a bits 7FH) o por los bytes que los contienen (20H a 2FH). Esto es, los bits 0
al 7 pueden ser referidos como los bits 20.0 a 20.7 y del 8 al F, como 21.0 a 21.7,
etc.
Cada uno de los 16 bytes de este segmento puede ser tambin direccionado como
Byte.

El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 18 Ing. Rufino J. Domnguez Arellano.
Sub rea Scratch Pad

La memoria scratch pad se entiende como la memoria de un block de notas
de rpido acceso, pero de escasa capacidad. Ocupa las posiciones 30H a 7FH.
Es la memoria de trabajo (RAM) del usuario.

2:6. AREA DE REGISTROS O FUNCIONES ESPECIALES
(8052/8051)

La Tabla 2.1 muestra los registros especiales que utiliza el 8052/8051, as como
sus direcciones. Adems de la lista se proceder a dar una breve explicacin de
los mismos, considerando que un anlisis ms profundo corresponde hacerlo en
los ejercicios de aplicacin que se vern ms adelante.

* Direccionable bit a bi!,
+ Slo para el 8052.
Nota: Los nmeros hexadecimales que, como cifra ms significativa tienen un carcter alfabtico, en
algunas ocasiones y para evitar equvocos, van precedidos de la cifra cero (0),



El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 19 Ing. Rufino J. Domnguez Arellano.
ACC Acumulador: Es un registro de propsito general de los
Microcontroladores 8052/8051 y, por su frecuencia de intervencin, el ms
importante. En la programacin de aplicaciones en lenguaje ensamblador se har
referencia a l como REGISTRO A.

B Registro B: Est especializado en las operaciones de multiplicacin
y divisin, adems de ser usado como registro de datos de propsito general.

PSW Program Status Word: Contiene informacin del estado del CPU
en cada ciclo de instruccin. El cuadro 2.1 muestra el formato de la palabra de
estado.


SP Stack Pointer: Es un registro de 8 bits. Despus del RESET, el SP se
carga por defecto con la direccin 07H. Al ejecutar la primera instruccin PUSH o
CALL el SP se incrementa a la posicin 08H.



DPL y DPH Data Pointer: Su propsito principal es contener la direccin del
puntero de datos. Puede ser manipulado como un registro de 16 bits (DPTR) o
como dos registros independientes de 8 bits.

El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 20 Ing. Rufino J. Domnguez Arellano.


P0, P1, P2 y P3 Puertos 0, 1, 2 y 3: Son los latchs de los puertos P0,
P1, P2 y P3.


SBUF Serial Data Buffer: Son dos registros buffer fsicamente
separados, pero a efectos de programacin es el mismo, buffer de transmisin y
buffer de recepcin. Al escribir un dato en SBUF, el mismo comienza a
transmitirse por la lnea correspondiente del puerto serie. En el modo recepcin el
dato que ingresa por la lnea de entrada del puerto serie se registra en el buffer
receptor (SBUF).

TH0-TL0, TH1-TL1, TH2-TL2 Timer Registers: Son pares de registros de 16
bits, que pueden actuar como temporizadores o contadores.

RCAP2H-RCA2PL Capture Registers: Este par de registros
actan como registros de captura del Timer 2, cuando este trabaja en modo
captura. En este modo RCAP2H y RCAP2L responden a la transicin del flanco
en el pin T2EX, copiando los valores de TH2 y TL2 sobre ellos mismos. El Timer
2, en el modo de trabajo con autorrecarga, obtiene los valores de recarga de
estos registros.

PCON Power Control Register: Para aplicaciones en donde la
caracterstica de consumo sea crtica, la versin CHMOS ofrece dos modos de
trabajo de bajo consumo: el modo POWER DOWN y el IDLE. Tambin ofrece,
este registro, posibilidades de variar la velocidad de comunicacin en el canal
SERIE.

TCON Timer/Counter Control Register: Este es un registro que
controla fundamentalmente el modo de operacin de los Timers 0 y 1 en relacin
con las interrupciones y los flancos de activacin de las mismas.


TMOD Timer /Counter Mode Control Register: Selecciona el Timer 0
o 1, el modo de operacin (Modo 0, 1 o 2), si acta como temporizador o como
contador, etc.


T2CON Timer/Counter 2 Control Register: Lo mismo que con TCON y
TMOD, pero aplicado al Timer 2.


IE Interrupt Enable Register: Es un registro para habilitar las
interrupciones. Permite que se atiendan todas las interrupciones por el
microcontrolador o slo las que el usuario considere aceptables.
El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 21 Ing. Rufino J. Domnguez Arellano.


IP Interrupt Priority Register: Cada interrupcin puede programarse
individualmente en el nivel 1 o 2 de prioridad, poniendo a 1 o a 0 los bits de este
registro. Una interrupcin de bajo nivel de prioridad se puede interrumpir por otra
de un nivel ms alto. Una interrupcin de alto nivel de prioridad no puede ser
interrumpida por otra interrupcin de un nivel ms bajo (vase Captulo 10).
SCON Serial Port Control Register: Este registro se encarga de
establecer los parmetros para la transmisin o recepcin de datos en
comunicacin serie; as, si se trata de una transmisin o recepcin, formato de la
palabra (bit de start, bits de datos, bit de .Stop), velocidad, etc.


Finalmente, en la Tabla 2.2 se hace .referencia al mapa .de memoria de los
registros SFR. Los registros que pertenecen a la columna izquierda de la tabla
estn en un rea direccionable bit a bit que corresponde a las direcciones 80H,
88H, 90H, 98H, .:., F8H.


Los registros que estn encerrados entre parntesis pertenecen solamente al
8052.


2.7. OPERACION RESET


Conectado al pin (9) de entrada RST=RESET se encuentra un Schmitt Trigger
que va a propiciar la operacin de inicializacin de los dispositivos internos del
microcontrolador.
El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 22 Ing. Rufino J. Domnguez Arellano.

Un RESET se alcanza cuando se mantiene en el pin RST, un nivel lgico alto al
menos durante dos ciclos mquina (24 perodos de reloj), mientras el oscilador
est funcionando. La CPU responde generando un RESET interno, segn el
cronograma mostrado en la Figura 2.12.

La seal externa de RESET es asncrona al reloj interno. El pin RESET es
muestreado durante la fase 2 del estado 5 de cada ciclo mquina. Los pines de los
puertos mantendrn sus actividades durante 19 perodos de reloj, despus de que
el nivel lgico del pin RESET haya sido detectado; esto es, durante 19 a 31
perodos de reloj, despus de haber aplicado externamente un nivel lgico alto al
pin RESET
.
El algoritmo del RESET interno escribe ceros en todos los registros del SFR,
excepto en los latches de los puertos, el Satck Pointer y el registro SBUF. Los
latches de los puertos son inicializados a FFH (quedan programados para la
lectura), el Stack Pointer a 07H y el SBUF es indeterminado. En la Tabla 2.3 se
muestran los valores que toman los registros despus de un RESET.



El Microcontrolador 8051 CAP 2
_________________________________________________________________________
ITMAR Mazatln 23 Ing. Rufino J. Domnguez Arellano.

El RESET automtico del microcontrolador se produce al aplicar la tensin de
alimentacin VCC al terminal RST a travs de un capacitor de 10 F y una
resistencia de 8.2 K, como indica la figura 2.13, procurando que el tiempo de
flanco de subida de la alimentacin no exceda de un milisegundo y el comienza de
los pulsos del reloj no exceda de 10 mS.

Das könnte Ihnen auch gefallen