CAPITULO 2 Organización de la memoria en los Microcontroladores 8052/8051

Documentos relacionados
INSTITUTO TECNOLOGICO DEL MAR, Mazatlán

CAPITULO 2 REGISTROS DE FUNCIONES ESPECIALES (SFR)

ORGANIZACIÓN DE LA MEMORIA

Programación de los Microcontroladores 8052/8051 (I)

ESPACIO DE DIRECCIONES

INTRODUCCIÓN. Comunicación Serial.

El puerto serie puede operar en cuatro modos seleccionados utilizando los bit 6 = SM1 y bit 7 = SM0 del registro SCON (Apartado 9.

CAPITULO 1 CARACTERÍSTICAS GENERALES DEL MICROCONTROLADOR menú principal

BLOQUE 3 (PARTE 2) MICROCONTROLADOR 8051 DESCRIPCIÓN GENERAL

ESTRUCTURA BÁSICA DEL µc AT89C51

Programación de los Microcontroladores 8052/8051 (II)

Curso sobre Microcontroladores Familia HC9S08 de Freescale

GESTION DE MEMORIA EN LOS MICROCONTROLADORES DE LA FAMILIA MCS-51

La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

APUNTE DEL 8155 ELECTRÓNICA DIGITAL III

MANUAL DEL MICROCONTROLADOR 8051

TEMA 2. Interrupciones y periféricos básicos

Curso de Microprocesadores y Microcontroladores. Unidad 1

CAPITULO 3 MANEJO DE LOS TEMPORIZADORES Y CONTADORES

La Familia del Microcontrolador 8051

Tema 4. Organización de la memoria

ORGANIZACIÓN DEL MICROCOMPUTADOR

Comunicación Asíncrona

Integración de Equipos para Comunicaciones

LOS MICROCONTROLADORES Y EL MCS-51

Estructura de los sistemas de cómputo

Relación de Problemas I

Tablas familia MCS-51 (8051)

Introducción a la Programación en Lenguaje Ensamblador.

ESTRUCTURA FÍSICA DEL µp 8086

Control de periféricos. Puertos de Entrada/ Salida

Señales de interfase del Z80

ARQUITECTURA DEL PIC16F84A

Mapeo en el P 8086 de Intel

CURSO DE MICROCONTROLADORES PROGRAMACION E INTERCONEXIONADO DEL µc-8051

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

La familia de microcontroladores de 8 bits MCS-51 esta constituida, entre otros, por los siguientes dispositivos:

SISTEMAS OPERATIVOS Arquitectura de computadores

BLOQUE 3. Enrique Mandado Pérez María José Moure Rodríguez. Microcontroladores

MICROCONTROLADORES MCS-51

Arquitectura Interna del 8088

TEMA 1. La familia de microcontroladores 80C51

Práctica 1 : INTRODUCCIÓN Práctica 1: Introducción al 8051

Características de algunos Registros de Funciones Especiales (SFR):

P1.0,... P1.7 7 EN3 EN2

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

Elección de un microcontrolador

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

Armado de un microcomputador, basado en microcontrolador 8031

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA

MANUAL DEL MICROCONTROLADOR 8051

Capítulo 3. Microcontroladores 3.1 Definiciones

MICROPROCESADORES I ELECTRONICA DIGITAL III INTERFASE PROGRAMABLE A PERIFERICOS PPI 8255

Microcontrolador PIC16F84: Arquitectura

UNIVERSIDAD DEL AZUAY

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

TEMPORIZADORES Y CONTADORES

Diseño Basado en Microcontroladores.

MICROCONTROLADOR PIC DE MICROCHIP

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

Microcontrolador. Filosofía del bit

ARQUITECTURA INTERNA DEL µp8086

Arquitectura de Computadores II Clase #3

Trabajo Práctico 3 - Simon

INTRODUCCIÓN AL Escuela Politécnica Superior Universidad de Huelva TERCER CURSO. ELECTRÓNICA DIGITAL

Introducción al simulador

ITT-327-T Microprocesadores

2.2-1 Visión Interna PIC16F873/876. SBM

Figura 2. Formato de un dato serie síncrono.

9. Lenguaje ensamblador

MEMORIA EJERCICIO 1 EJERCICIO 2

MICROCONTROLADORES PIC

Periféricos: Timer. Cesáreo Fernández Martínez Álvaro Sánchez Miralles

Reset e interrupciones

Introducción. Modo monitor. Cuaderno técnico 4: Grabación de microcontroladores PIC

Estructura y tecnología de computadores - prácticas en ensamblador

Laboratorio de Estructuras de Computadores. Lab /99 Se dispone del siguiente programa:

La Unidad de Memoria y su

Arquitectura de computadoras

Velocidades Típicas de transferencia en Dispositivos I/O

Ejercicios del tema 4. El procesador

APELLIDOS NOMBRE GRADO SOLUCIÓN. Figura 1

MICROCONTROLADORES. 1. El PIC 16F84A es un microcontrolador de: a) 16 bits b) 8 bits c) 4 bits d) 32 bits e) 64 bits

PUERTOS DE ENTRADA / SALIDA EN UN MICROCONTROLADOR

Arquitectura de computadores I

Tema 4 Microprocesador MCF5282: Hardware

Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Sistema de memoria 1

Introducción a las Computadoras. Capítulo 3 Buses del Sistema

5 - Lenguaje Ensamblador

Curso de Microcontroladores Familia HC908 Flash de Freescale Parte II. CPU08 Core ING. DANIEL DI LELLA

TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1

TEMA 4 ESTRUCTURA VON-NEUMANN DEL COMPUTADOR DIGITAL

En este capítulo se presenta un breve resumen de la tarjeta DSK C5x que es de bajo costo,

TEMA 1: Conceptos generales. 1.- Representa los primeros 16 números decimales (del 0 al 15) usando codificación binaria y hexadecimal.

Tema 4 LA MEMORIA DE PROGRAMAS

El Reloj y el reset. El Reloj del Z80. El Reloj y el reset

TEMA 2: MICROPROCESADORES Y MICROCONTROLADORES

Modos de ahorro de energía a en los chips CMOS

Transcripción:

CAPITULO 2 Organización 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 sólo puede ser leída y tiene como máximo 64K. En el 8052 la memoria de programas interna es de 8K y en el 8051 de 4K. La señal de autorización 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 posición 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 dirección 000H hasta 0FFFH y en la externa de la 1000H a la FFFFH. Si el pin EA es puesto a VSS, la búsqueda de direcciones del programa se dirige a la memoria externa en todo momento. ITMAR Mazatlán 8 Ing. Rufino J. Domínguez 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 señales RD (read) y WR (write) para leer o escribir en la memoria de datos externa. Como anteriormente se decía, 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 señales RD y PSEN a una puerta lógica 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 gráficamente estos conceptos. 2.2. MEMORIA DE PROGRAMAS En la Figura 2.3, se observa la división de la memoria de programas, según 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 vectorización de estas interrupciones, así la posición de memoria 0000 corresponde al RESET y el resto figura señalado al margen. ITMAR Mazatlán 9 Ing. Rufino J. Domínguez 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 pequeña rutina, pero si éste no fuera suficiente se desviaría el contador de programa (PC) mediante una instrucción 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 selección se realiza por hardware, con la señal EA (Extern Access), poniendo este pin a VCC o a VSS respectivamente. La configuración del hardware para que el 8052/8051, como ITMAR Mazatlán 10 Ing. Rufino J. Domínguez 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 líneas de dirección corresponden al Puerto 0 al Puerto 2, que están dedicados al bus de direcciones; aun más, el Puerto P0 sirve como bus de direcciones y bus de datos, multiplexados en el tiempo. Esta operación, característica 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 señal sobre P0, la señal ALE (Address Latch Enab!e) introduce esta dirección dentro del dispositivo latch 74LS373, que pasa a apuntar la dirección 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 código de instrucción a través del puerto P0. En la figura 2.6(A) se muestra un cronograma de esta operación. ITMAR Mazatlán 11 Ing. Rufino J. Domínguez Arellano.

Las secuencias de búsqueda/ejecución son las mismas, sea la memoria de programas interna o externa al microcontrolador; es decir, los tiempos de ejecución no dependen de que se utilice la memoria interna o externa. La Figura 2.6 muestra el cronograma de las señales implicadas en la secuencia de búsqueda, cuando la memoria de programas es externa. La señal PSEN se activa dos veces por ciclo máquina, 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. Más bien utiliza las señales RD (lectura) y WR (escritura). Estas señales son generadas automáticamente cuando el nemónico correspondiente al código de instrucción termina en la letra X. Observe cómo el acceso a la memoria de datos toma dos ciclos más de bus que la memoria de programas. La Figura 2.6 muestra los cronogramas relativos a ambas secuencias de acceso, destacando la emisión de direcciones por parte de P0 y P2, y las señales ALE y PSEN. La señal 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 máquina, pudiendo ser utilizada como señal de reloj externo; no obstante, como se puede ver en la Figura 2.6(B), cuando se accede a un operando utilizando la instrucción MOVX, la señal ALE desaparece. En la Figura 2.6(B) se puede observar cómo se realiza un acceso a la memoria externa de programas para tomar una instrucción y en el segundo ciclo se accede ITMAR Mazatlán 12 Ing. Rufino J. Domínguez Arellano.

a la memoria de datos externa para tomar un dato. En este caso observar que no se activa PSEN. ITMAR Mazatlán 13 Ing. Rufino J. Domínguez Arellano.

2.3. MEMORIA DE DATOS El 8052/8051 puede direccionar hasta 64 KB de memoria de datos externa. (La instrucción «MOVX» se utiliza para acceder a los datos de la memoria externa.) Si utiliza 16 bytes de dirección hágalo con MOVX @ DPTR, y si utiliza 8 bytes, MOVX @ Ri. La Figura 2.7 muestra la configuración 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 líneas del Puerto 2 completan el direccionamiento dé los 2 Kbytes de RAM (memoria paginada). La CPU genera las señales de lectura (RD) y escritura (WR) que necesita la RAM externa. En la operación de lectura de un dato se podría 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 Función Especial (SFR). Como se indica en la Figura 2.7, la memoria externa se puede direccionar utilizando las líneas de E/S del Puerto 2 a voluntad, en función 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 ITMAR Mazatlán 14 Ing. Rufino J. Domínguez Arellano.

paginada. También se pueden utilizar 2 bytes de direcciones; byte bajo en el Puerto 0 y byte alto en el Puerto 2. Este es el sistema clásico que permite direccionar un máximo 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 continuación, se va a analizar las tres áreas de memoria interna:, Área de direccionamiento sólo 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 están separados por caminos de acceso diferentes, según el direccionamiento de las instrucciones*. Así, la instrucción: MOV 90H, #ABH ITMAR Mazatlán 15 Ing. Rufino J. Domínguez Arellano.

escribe ABH en la localización 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 dirección 90H de la memoria de dalos y por utilizar direccionamiento indirecto escribe en la media página que asoma detrás de la media página del SFR en la Figura 2.8. Después de la ejecución de ambos modos de direccionamiento, se hallará ABH en el registro imagen del Puerto 1 (P1) en el SFR y ABH en la dirección 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 continuación se explican brevemente las características de esta área. ITMAR Mazatlán 16 Ing. Rufino J. Domínguez Arellano.

Banco de registros (banco 0, 1, 2 y 3). Registros R0 a R7 por banco Los registros se localizan desde la dirección 00H a 1FH (32 bytes). Después de la operación de inicialización del microcontrolador, aplicando un nivel alto a la terminal RESET (véase Apartado 2.7 de este capítulo), el banco operativo por defecto es el banco 0. La selección de otro banco de registros debe hacerse por software escribiendo en el registro de estado PSW (véase Tabla 2.1). El RESET inicializa el Stack Póinter (SP) en la dirección de memoria 07H y se incrementa inmediatamente a la dirección 08H que es el primer registro R0 del segundo banco de registros. Con el fin de usar más de un banco de registros, el SP se puede inicializar en otra localización 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 también direccionado como Byte. ITMAR Mazatlán 17 Ing. Rufino J. Domínguez Arellano.

Sub área Scratch Pad La memoria scratch pad se entiende como la memoria de un block de notas de rápido 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. Además de la lista se procederá a dar una breve explicación de los mismos, considerando que un análisis más profundo corresponde hacerlo en los ejercicios de aplicación que se verán más adelante. * Direccionable «bit a bi!», + Sólo para el 8052. Nota: Los números hexadecimales que, como cifra más significativa tienen un carácter alfabético, en algunas ocasiones y para evitar equívocos, van precedidos de la cifra «cero» (0), ITMAR Mazatlán 18 Ing. Rufino J. Domínguez Arellano.

ACC Acumulador: Es un registro de propósito general de los Microcontroladores 8052/8051 y, por su frecuencia de intervención, el más importante. En la programación de aplicaciones en lenguaje ensamblador se hará referencia a él como REGISTRO A. B Registro B: Está especializado en las operaciones de multiplicación y división, además de ser usado como registro de datos de propósito general. PSW Program Status Word: Contiene información del estado del CPU en cada ciclo de instrucción. El cuadro 2.1 muestra el formato de la palabra de estado. SP Stack Pointer: Es un registro de 8 bits. Después del RESET, el SP se carga por defecto con la dirección 07H. Al ejecutar la primera instrucción PUSH o CALL el SP se incrementa a la posición 08H. DPL y DPH Data Pointer: Su propósito principal es contener la dirección del puntero de datos. Puede ser manipulado como un registro de 16 bits (DPTR) o como dos registros independientes de 8 bits. ITMAR Mazatlán 19 Ing. Rufino J. Domínguez 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 físicamente separados, pero a efectos de programación es el mismo, buffer de transmisión y buffer de recepción. Al escribir un dato en SBUF, el mismo comienza a transmitirse por la línea correspondiente del puerto serie. En el modo recepción el dato que ingresa por la línea 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 actúan como registros de captura del Timer 2, cuando este trabaja en modo captura. En este modo RCAP2H y RCAP2L responden a la transición 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 característica de consumo sea crítica, la versión CHMOS ofrece dos modos de trabajo de bajo consumo: el modo POWER DOWN y el IDLE. También ofrece, este registro, posibilidades de variar la velocidad de comunicación en el canal SERIE. TCON Timer/Counter Control Register: Este es un registro que controla fundamentalmente el modo de operación de los Timers 0 y 1 en relación con las interrupciones y los flancos de activación de las mismas. TMOD Timer /Counter Mode Control Register: Selecciona el Timer 0 o 1, el modo de operación (Modo 0, 1 o 2), si actúa 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 sólo las que el usuario considere aceptables. ITMAR Mazatlán 20 Ing. Rufino J. Domínguez Arellano.

IP Interrupt Priority Register: Cada interrupción puede programarse individualmente en el nivel 1 o 2 de prioridad, poniendo a 1 o a 0 los bits de este registro. Una interrupción de bajo nivel de prioridad se puede interrumpir por otra de un nivel más alto. Una interrupción de alto nivel de prioridad no puede ser interrumpida por otra interrupción de un nivel más bajo (véase Capítulo 10). SCON Serial Port Control Register: Este registro se encarga de establecer los parámetros para la transmisión o recepción de datos en comunicación serie; así, si se trata de una transmisión o recepción, 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 están en un área direccionable «bit a bit» que corresponde a las direcciones 80H, 88H, 90H, 98H,.:., F8H. Los registros que están encerrados entre paréntesis 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 operación de inicialización de los dispositivos internos del microcontrolador. ITMAR Mazatlán 21 Ing. Rufino J. Domínguez Arellano.

Un RESET se alcanza cuando se mantiene en el pin RST, un nivel lógico alto al menos durante dos ciclos máquina (24 períodos de reloj), mientras el oscilador está funcionando. La CPU responde generando un RESET interno, según el cronograma mostrado en la Figura 2.12. La señal externa de RESET es asíncrona al reloj interno. El pin RESET es muestreado durante la fase 2 del estado 5 de cada ciclo máquina. Los pines de los puertos mantendrán sus actividades durante 19 períodos de reloj, después de que el nivel lógico del pin RESET haya sido detectado; esto es, durante 19 a 31 períodos de reloj, después de haber aplicado externamente un nivel lógico 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 después de un RESET. ITMAR Mazatlán 22 Ing. Rufino J. Domínguez Arellano.

El RESET automático del microcontrolador se produce al aplicar la tensión de alimentación VCC al terminal RST a través 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 alimentación no exceda de un milisegundo y el comienza de los pulsos del reloj no exceda de 10 ms. ITMAR Mazatlán 23 Ing. Rufino J. Domínguez Arellano.