Practica1, Mapeo de Memoria

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

RESUMEN:

El mapeo de memoria permite conectar más de un dispositivo al microprocesador.


estos dispositivos pueden ser memorias RAM, ROM, buffer's, latches, transeiver's,
etc. El mapeo y decodificación consiste en asegurar una localidad o bloque de
memoria para cada dispositivo del externo del microcontrolador. Esto se logra
mediante la combinaciòn de las líneas de control, selección y dirección, para
generar una única señal de habilitación.
En un sistema mínimo como un microcontrolador, se asignan direcciones de
memoria a componentes como RAM para almacenamiento de datos, ROM para el
programa principal, puertos de E/S y registros de control. Las compuertas lógicas
se utilizan en circuitos de decodificación de direcciones para evitar problemas de
"espejo" o "fantasmas" en el mapeo de memoria. Los circuitos de decodificación
de direcciones, a menudo basados en compuertas AND y OR, se utilizan para
generar señales de habilitación selectivas que indican qué dispositivo o recurso se
debe acceder en función de la dirección de memoria. Los microprocesadores son
componentes clave en una amplia variedad de dispositivos y sistemas utilizados
en la vida cotidiana. Ejemplos comunes de dispositivos con microprocesadores
incluyen teléfonos móviles, computadoras personales, electrodomésticos
inteligentes, automóviles, sistemas de navegación, cámaras digitales y más.
Permiten la ejecución de software y controlan el funcionamiento de estos
dispositivos, lo que aporta comodidad y automatización a nuestras vidas diarias.

INTRODUCCIÓN:
El objetivo de esta práctica es que los estudiantes adquieran experiencia en el
mapeo de memoria y comprendan cómo se asignan direcciones de memoria a
componentes clave en un sistema embebido, como RAM, ROM, registros de
control y puertos de entrada/salida

1.1 Diseñe un sistema mínimo basado en un microprocesador de 8 bits. Se


requiere conectar:

• $0000 RAM 62256


• $4000 EPROM 2716
• $8000 EEPROM AT28C16
• $A000 PIA W65C21
• SC000 ROM 2Kx8
a) Use compuertas para evitar espejos.
b) Use el decodificador 74LS138.

RAM $0000 → 0000 0000 0000 0000


$000E → 0000 0000 0000 0111
15 localidades
EPROM

EEPROM

$7770 → 0111 0111 0111 0000


$777A → 0111 0111 0111 1010 11 localidades

$FFF0 → 1111 1111 1111 0000


$FFFA → 1111 1111 1111 1010 11 localidades
μP A15 A14 − 𝐴0
RAM A14 − 𝐴0
• μP 8 bits = D0, D1, D2, D3, D4, D5, D6, D7
EPROM A10 − 𝐴0
• RAM 62256 de 32Kx8 → 2 = 15 15
localidades → A0 a A14
EEPROM A10 − 𝐴0
• EPROM 2716 de 2Kx8 → 211 = 11 localidades → A0 a A10
• EEPROM AT28C16 de 2Kx8 → 211 = 11 localidades → A0 a A10
• PIA W65C21 16 bits = A0 a A15

Evitando espejos.
• # espejos RAM = 21 = 2 direcciones espejo.
• # espejos EPROM = 25 = 32 direcciones espejo. • # espejos EEPROM = 25 = 32
direcciones espejo.

Solución por maxitérminos (0).


• Se busca obtener un 0 al inicio para activar el CS y tener un 1 en el resto de la tabla…

RAM = 𝐴15
𝐴15 CS
0 0

EPROM = 𝐴15 + ̅𝐴̅̅14̅̅ + ̅𝐴̅̅13̅̅ + ̅𝐴̅̅12̅̅ + 𝐴11


𝐴15 𝐴14 𝐴13 𝐴12 𝐴11 CS
0 1 1 1 0 0

EEPROM = 𝐴15 + ̅𝐴̅̅14̅̅ + ̅𝐴̅̅13̅̅ + ̅𝐴̅̅12̅̅ + 𝐴11


𝐴15 𝐴14 𝐴13 𝐴12 𝐴11 CS
0 1 1 1 0 0

1.2 Escriba un programa en C++ para hacer parpadear un LED a una


frecuencia de 1, 5 y 10 Hz. Use el simulador TINKERCAD para C++ y
SIMULIDE para Ensamblador.

//Programa para hacer parpadear un LED a una frecuencia de 1, 5 y 10 Hz

//Sampallo Camacho Liliana Jocelyn

const int ledPin = 13; unsigned long

previousMillis = 0; const long

interval1Hz = 1000;

// Intervalo de 1hz const long interval5Hz = 200;

// Intervalo de 5hz const long interval10Hz = 100;

// Intervalo de 10hz int ledState = LOW; int

frequency = 1;

void setup()

{ pinMode(ledPin, OUTPUT);

}
void loop() {

unsigned long currentMillis = millis();

if (currentMillis - previousMillis >= interval1Hz / frequency) {

previousMillis = currentMillis; ledState = !ledState;

digitalWrite(ledPin, ledState);

// Cambia la frecuencia cada 2 segundos

if (currentMillis % 2000 == 0) { switch

(frequency) { case 1:

frequency = 5; break; case 5:

frequency = 10; break; case

10: frequency = 1; break;

1.3 Escriba y simule un


programa que emule el
funcionamiento de un
semáforo.
// Programa que emula el
funcionamiento de un
semáforo

//Sampallo Camacho Liliana Jocelyn const

int redLED = 13;

const int yellowLED = 12;

const int greenLED = 11; void

setup() { pinMode(redLED,
OUTPUT);

pinMode(yellowLED, OUTPUT);

pinMode(greenLED, OUTPUT);

void loop() { digitalWrite(redLED, HIGH); digitalWrite(yellowLED, LOW); digitalWrite(greenLED,

LOW); delay(2000); digitalWrite(redLED, LOW); digitalWrite(yellowLED, HIGH);

digitalWrite(greenLED, LOW); delay(1000);

digitalWrite(redLED, LOW);

digitalWrite(yellowLED, LOW);

digitalWrite(greenLED, HIGH);

delay(2000); digitalWrite(redLED, LOW);

digitalWrite(yellowLED, LOW);

digitalWrite(greenLED, LOW);

delay(500); // Espera 0.5 segundos

digitalWrite(yellowLED, HIGH); delay(500);

// Espera 0.5 segundos

También podría gustarte