Anda di halaman 1dari 4

UNIVERSIDAD TECNOLOGICA DE SANTIAGO

DEPARTAMENTO DE INGENIERIA ELECTRONICA


(IET) versin 1.0

IET-80501 Taller Microprocesadores II

INTRODUCCION

A continuacin se le brinda al estudiante los siguientes pasos para el diseo de bancos de memoria.
Sabiendo que nuestro microcontrolador solo tiene capacidades de direccionamiento mximo de 64k
para memoria de cdigo y 64k para memoria de datos. El estudiante conoce la aplicacin bsica de
lectura de memoria de cdigo externa y lectura de datos externos, segn el siguiente esquemtico:

Para nuestro ejemplo hemos seleccionado (2) memorias ROM 27C64 (8k x 8) para completar un
banco de 16k x 8. Para memoria RAM hemos seleccionado (2) memorias del tipo 6264 (8k x 8) para
completar 16k x 8. Disear el siguiente diagrama esquemtico de la figura 1.

Figura 1

Prof.: Ral Toribio


Nuestro primer paso ser definir los valores hexadecimales de nuestras memorias para proceder al
diagrama de seales que intervienen, pueden consultar el documento tutorial manejo bancos de
memorias para ms detalles:

Para nuestras memorias ROM#1 y ROM#2 tenemos el tamao 8k x 8. La capacidad mxima de


almacenamiento es 8,192 bytes y su valor hexadecimal [0x2000].

Para nuestras memorias RAM#1 y RAM#2 tenemos el tamao de 8k x 8. La capacidad mxima de


almacenamiento es 8,192 bytes y su valor hexadecimal [0x2000].

A continuacin procedemos al diagrama de seales, segn figura 2. Decodificamos las lneas del
microcontrolador y las de cada una de nuestras memorias para identificar qu espacio y ubicacin en
direccionamiento tendr cada dispositivo:
LINEAS DE DIRECCIONAMIENTO
A MEMORIA.

LINEAS DE SELECCIN DE
DISPOSITIVO.

Figura 2

Segn la tabla anterior de decodificacin de seales:


Las LINEAS DE DIRECCIONAMIENTO A MEMORIA: son lneas nica y exclusivamente para ser
utilizadas en direccionamiento a la memoria. Contienen la direccin apuntada.

Las LINEAS DE SELECCIN DE DISPOSITIVO: son lneas restantes utilizadas para la lgica binaria de
seleccin de memoria. Estas lneas pueden ser utilizadas para conectar desde un simple negador
hasta combinaciones o arreglos de compuertas para lgica binaria de seleccin.

En la mayora de los casos pueden ser utilizados decodificadores de la serie 74xx138.

Las direcciones desde 0x4000 hasta 0xFFFF estn disponible para ser utilizadas de acuerdo a nuevos
requerimientos.

Nuestro ltimo paso corresponde a seleccionar la mejor lgica binaria que permita seleccionar cada
memoria de acuerdo a las lneas de seleccin que han quedado disponible. Como podemos observar,
segn imagen anterior anterior, sobre estas lneas se puede identificar un patrn de seleccin segn
recuadro azul y recuadro naranja, solo con A13 podemos seleccionar, lo que significa que con una

Prof.: Ral Toribio


simple lgica binaria de un negador podemos utilizar esta seal como seleccin. Para este ejercicio
hemos decidido utilizar un decodificador 74xx138 solo por conveniencia. Segn el diagrama
esquemtico pueden observar las lneas que intervienen.

Los requerimientos de nuestro programa, son los siguientes:

Utilizar memoria ROM#1 para ubicar nuestro cdigo de programa, ROM#2 van a colocar una tabla
con el abecedario desde la posicin 0x2200. Para crear la tabla que ser cargada a memoria debern
utilizar el programa MAXLOADER y editar un archivo para ser cargado a la memoria de cdigo #2. La
utilizacin del programa Maxloader estar fuera del alcance de este manual tutorial.

Disear un programa en lenguaje C keil, que muestre en el display 7 segmentos las palabras
encontradas FGHI de las posiciones de memoria en ROM#2 debern ser mostradas con un delay
suficiente para su visualizacin. Este programa se ejecutara de manera permanente.

El cdigo a continuacin:

#include <reg51.h>

code char abcedario _at_ 0x2200;


char display[]= {0x71, 0xfd, 0x76, 0x06, 0xf1};
char *ptr;
sbit select_segment = P1^7;
void delay();

void main()
{

ptr=&abcedario;

while(1)
{

if((*ptr=='F' )|| (*ptr=='f'))


{
P1=display[0];
select_segment=1;
delay();
}
else if((*ptr=='G' )|| (*ptr=='g'))
{
P1=display[1];
select_segment=1;
delay();
}
else if((*ptr=='H' )|| (*ptr=='h'))
{
Prof.: Ral Toribio
P1=display[2];
select_segment=1;
delay();
}
else if((*ptr=='I' )|| (*ptr=='i'))
{
P1=display[3];
select_segment=1;
delay();
ptr=&abcedario;
}
else{
P1=display[4];
select_segment=1;
delay();
}

ptr++;
}

void delay()
{

unsigned int i;
for(i=0;i<=15000;i++);

El reto que el estudiante deber completar es el de modificar que el esquemtico y el programa para
que ahora visualice (4) letras en display (cada letra un display) debern ser ledas desde memoria #2.
Las letras a leer son pola.

Prof.: Ral Toribio

Anda mungkin juga menyukai