MICROPROCESADORES

Friday, December 08, 2006

MICROPROCESADORES

LABORATORIO # 4

OPERACIONES CON LA MEMORIA RAM 8156




I. INTRODUCCION


Existen distintas maneras de almacenar datos en los circuitos electrónicos las mas usadas en las computadoras son la memoria ROM (memoria de solo lectura) y RAM (memoria de acceso aleatorio).

Las memorias RAM conocidas también como memorias de lectura escritura ya que en ellas se puede realizar operaciones de extracción de información o lectura, como de almacenamiento o escritura. A continuación estudiaremos las distintas características que presenta la memoria RAM 8156.

II. OBJETIVOS

• Experimentar la escritura y lectura manuales en la memoria RAM 8156, utilizando los interruptores y circuitos indicadores montados en el entrenador de microprocesadores 8085 al mismo tiempo de verificar la volatilidad de este tipo de memorias.

• Desplegar información en el display de 7 segmentos por medio de los puertos I/O del 8056 mediante los interruptores de control y datos proporcionados en el entrenador.

• Demostrar la formación de números y letras.

• Operar manualmente, mediante la operación de un interrutor el temporizador incluido en el 8156.

• Demostrar la operación del temporizador en sus 4 modos de salida.

III. MARCO TEORICO

PARTE 1

ALMACENAMIENTO Y LEYENDO DATOS

Las memorias RAM 8156 conocidas también como memorias de lectura escritura ya que en ellas se puede realizar operaciones de extracción de información o lectura, como de almacenamiento o escritura, al ser una memoria RAM esta puede perder la información ya que es una memoria volátil.

ALMACENAMIENTO DE DATOS

Para el almacenamiento en cualquier dirección se sigue el siguiente procedimiento:

• Ir a la dirección apropiada

• Poner el byte (8 bits) en el bus de datos

• Decirle al circuito de memoria que acepte el dato

• Moverse a la siguiente dirección

El C.I. 8156 usa las mismas entradas tanto para datos como para direcciones. El funcionamiento comienza al introducir una dirección en los interruptores esta dirección es almacenada, activando el pulsador ALE (Address Latch Enable). Ale cambia de estado a un nivel alto, la dirección se almacena en un registro especial, interno del C.I. 8156, luego es introducido el dato “10000001” posteriormente se presiona el pulsador WR para escribir este dato en la posición direccionada. Para lograr con éxito este proceso previamente el interruptor IO/M deberá estar en la posición M.

LECTURA DE MEMORIA (RD)

El funcionamiento de lectura en la memoria RAM 8156 parte por colocar la dirección luego presionar el interruptor ALE este producirá un nivel alto a través del divisor de voltaje R6 y R7 para registrar la dirección en el registro especial de dirección, luego se presiona el pulsador RD el cual cambia de un estado alto a un estado bajo por medio del divisor de tensión R8 y R9. Estos datos permanecen inalterables hasta que se sobrescriban o se retire la alimentación al C.I. 8156. El interruptor IO/M debe estar en la posición M para leer memoria.



PARTE 2

REGISTROS Y PUERTOS
En la anterior lección vimos el proceso de lectura y escritura, para realizar este proceso el interruptor IO/M (entrada salida / memoria) estaba en la posición de M para los dos casos en el de lectura y escritura.
Colocando el interruptor IO/M en IO producimos que los datos en el bus de datos pasen a los puertos de entrada y salida, controlador de temporización, o comandos de registros de estado. Para producir esto se debe indicar que puerto va a ser el de salida y el de entrada. Se debe dar la instrucción a la memoria RAM 8156 si se pretende usar el temporizador, el ajuste se realiza con el COMAND STATUS REGISTER, la dirección de esté es 00000000. En la figura 1 se muestra como opera el COMAND STATUS REGISTER.

Fig 1.


REGISTRO

Previamente se establecen los puertos de entrada y salida, en la dirección 00000000 con el interruptor IO/M en la posición IO, diciendo al CI 8156 que se va enviar datos a los registros internos y no a la memoria, luego se presiona RS para inicializar el C.I. 8156 colocando el interruptor ENRAM en ON.
Posteriormente se ajustan los interruptores en la dirección 00000000, luego se presiona el pulsador ALE para registrar la dirección, se introduce el dato 10001110, se presiona WR para que esté dato se escriba en el registro de comando. Como los puertos de salida estaban inicialmente en 0, hace que se iluminen todos los segmentos incluyendo el punto decimal del display 2.
Para cambiar la dirección del puerto se debe cambiar la dirección a 00000010 (puerto B) , se presiona el interruptor ALE para registrar la dirección al puerto B en el registro de direcciones interno del CI 8156, ahora los datos que introduzcamos con los interruptores serán transmitidos al bus de datos (dato - 01110001) después de presionar WR para así transferir al puerto B.

LECTURA Y SALIDA DEL PUERTO

La lectura de los puertos de salida A, B, y C. Se ajustan los interruptores a 00000011 para direccionar el puerto C, se presiona la tecla ALE, registrando la dirección en el CI 8156 y se presiona RD para leer los contenidos del puerto C. Se muestra en la figura las direcciones de los puertos A, B,C y el registro de comando.


Parte 3
EL TEMPORIZADOR

Es un contador programable de 14 bits. El contadores programado y ajustando los dos bytes de registro de longitud de cuenta. Los bits T0 a T13 del registro de longitud de cuenta, son descontados por los pulsos TIMER IN. Cuando se alcanza la cuenta terminal, se completa el ciclo y se presenta un pulso o una onda cuadrada en el pin de salida
TIMER OUT del CI 8156. Los bits M1 y M2 del registro de longitud de cuente especifican el modo del temporizador como se muestra en la figura 2.
El registro de longitud de cuenta puede ser ajustado a cualquier valor entre 0002H a 3FFFH.


Fig 2.

Los bits 6 y 7 (TM2 y TM1) del Registro de Comando de Estado es utilizado para parar
y arrancar la cuenta tal como se muestra en la figura 3.


Fig 3.



IV. LISTADO DE MATERIALES

Entre los materiales utilizados en este laboratorio tenemos:

       Entrenado de microprocesador 8085 con su respectiva fuente
       Cautin
       Cables para los jumper


V. LABORATORIO

Parte #1
En la parte 1 se realizo el almacenamiento y lectura de datos en la memoria 8156 bajo el siguiente procedimiento
1. Conectar la fuente de alimentación y activar el interruptor (SW16) en ON. El LED verde iluminará indicando que la fuente está encendida.
2. Colocar el interruptor ENRAM en la posición on para habilitar el CI 8156. Colocar el interruptor IO/⎯M en la posición off para acceder a la porción de memoria del CI 8156.
3. Iniciar en la dirección 0000 0000 poniendo todos los interruptores de datos en la posición “0” (abajo).
4. Presionar el interruptor ALE para “registrar” la dirección en el registro especial de dirección.
5. Cambiar los interruptores de datos a 1000 0001.
6. Presionar el interruptor WR para escribir este dato en la posición direccionada que justamente se ha abierto.
7. Usted puede cambiar la dirección repitiendo los pasos 3 y 4. Los datos pueden ser almacenados repitiendo los pasos 5 y 6. Utilice el siguiente procedimiento para almacenar los siguiente bytes de datos en las primeras cuatro posiciones de memoria.



8. Verificar los datos almacenados en cada dirección repitiendo los pasos 3 y 4 para retornar a cada dirección.
9. Leer los datos de cada dirección presionando el botón RD.
10. Poner el interruptor de alimentación (SW16) en la posición inferior para retirar la alimentación.
11. Encender nuevamente la alimentación.
12. Repetir los pasos 8 y 9. Se perdieron los datos?


Parte #2

En la parte se observo la forma como se administra los registros y puertos en la memoria 8156 bajo el siguiente procedimiento
1. Conectar la fuente de alimentación y encender la fuente. Poner el interruptor
IO/⎯M en la posición de IO (arriba). Esto le dice al CI 8156 que se va ha enviar
datos a los registros internos y no a la memoria. Presionar la tecla RS para
inicializar el CI 8156. Poner el interruptor ENRAM en la posición ON.
2. Ajustar los interruptores de datos a 0000 0000. Esta es la dirección del registro
de estado de comando.
3. Presionar la tecla ALE para registrar la dirección en el CI 8156.
4. Ajustar los interruptores de datos a 1000 1110.
5. Presionar la tecla WR para escribir los datos en el registro de comando. Como
en el anterior ejemplo, esto pone al puerto A como entrada y los puertos B y C
como salidas. Como los puertos de salida estaban inicialmente en 0, hace que
iluminen todos los segmentos incluyendo el punto decimal del display 2.
6. Cambiar los interruptores de datos a 0000 0010. A la dirección del puerto B.
7. Presionar el interruptor ALE para registrar la dirección del puerto B en el
registro de dirección interior del CI 8156.
8. Colocar los datos ha ser transmitidos en el bus de datos. Comenzar con 011
0001.
9. Presionar la tecla WR para transferir los datos al puerto B. Como se muestra en
la figura 4-4, los ceros en los bits 1,2,3,4 y 7 harán que aparezca un 3 en el
display 2.
10. Cambiar los interruptores de datos todo a cero. Cambiaron los datos en el puerto
B? El puerto B solo cambiará cuando los nuevos datos se escriban en el registro
en la dirección 0000 0010.
11. Repetir los pasos 8 y 9 para verificar los símbolos del display de 7 segmentos de
la figura 4-6.



12. Ajustar los interruptores de datos a 0000 0011. Esta es la dirección del puerto C.
13. Presionar la tecla ALE para registrar la dirección en el CI 8156.
14. Ajustar los interruptores de datos a 0000 0001. Cuando este dato es enviado al
puerto C, se deshabilitará el display 2 y se habilitará el display 1.
15. Presionar la tecla WR y el patrón en el display 2 saltará al display 1.
16. Repetir los pasos 6 y 7 para ajustar la dirección del puerto B en el CI 8156.
17. Repetir los pasos 8 y 9 para verificar que los datos enviados al puerto B
aparecerán ahora en el display 1.
LECTURA Y SALIDA DEL PUERTO
Aunque los puertos A, B o C estén configurados como puertos de salida, sus contenidos
pueden ser leídos de la misma forma que los puertos de entrada.
18. Ajustar los interruptores de datos a 0000 0011 para direccionar el puerto C.
19. Presionar la tecla ALE para registrar la dirección en el CI 8156.
20. Presionar el botón RD para leer los contenidos del puerto C. Los datos leídos
son 1100 0001. Los unos en los bits 6 y 7 se deben al hecho de que el puerto C
es un registro de 6 bits conteniendo solamente los bits del 0–5. El 00 0001 en los
bits 0–5 son los datos almacenados en los pasos 14 y 15.
21. Ajustar los interruptores de datos a 1111 1011. Esta es también la dirección del
puerto C. Como se muestra en la figura 4-2, los bits 3-7 pueden estar en 1 o 0.
Solamente los bits 0-2 son decodificados por el CI 8156.
22. Presionar el botón ALE para registrar la dirección en el CI 8156.
23. Ajustar los interruptores de datos a 0000 0000.
24. Presionar el botón WR para escribir este dato en el puerto C. El 0 en el bit 0
deshabilita el display 1 y habilita el display 2. El patrón desplegado en el display
1 saltará al display 2.



Parte #3

En la parte 1 se observo como funciona el temporizador de la memoria 8156 bajo el siguiente procedimiento
1. Conectar la fuente de alimentación y encender. Presionar el botón RS para
inicializar el CI 8156.
2. Poner el interruptor TIM abajo.
3. Poner el interruptor ENRAM arriba. Esto le dice al CI 8156 que los comandos
que se envíen por las líneas de datos son para el y no para otro circuito.
4. Poner arriba el interruptor IO/M. Esto direcciona al comando a la sección IO
del CI 8156.
ONDA CUADRADA CONTINUA:
1. Poner los interruptores de datos a 0000 0000. Esta es la dirección del Registro
de Estado de Comando.
2. Presionar el interruptor ALE para cargar la dirección en el CI 8156.
3. Poner los interruptores de datos a 0100 0010. Esto emitirá un comando de
parada del temporizador y pondrá en salida el puerto B.
4. Presionar el botón WR para enviar datos al Registro de Estado de Comando.
5. Poner los interruptores de datos a 0000 0100. Esta es la dirección del byte
menos significativo (LSB) del Registro de Longitud de Cuenta.
6. Presionar el botón ALE para registrar la dirección en el CI 8156.
7. Poner los interruptores de datos a 0000 0110. Esto pondrá el byte menos
significativo (LSB) del Registro de Longitud de Cuenta a 6.
8. Almacenar el 6 presionando el botón WR.
9. Poner los interruptores de datos a 0000 0101. Esta es la dirección del byte más
significativo (MSB) del registro de Longitud de Cuenta.
10. Presionar el botón ALE para registrar la dirección en el CI 8156.
11. Poner los interruptores de datos a 0100 0000. Esto pondrá el byte más
significativo (MSB) de registro de estado de cuenta a cero y el modo del
temporizador a Onda Cuadrada Continua.
12. Presionar l botón WR para almacenar los datos.
13. Poner los interruptores de datos a 0000 0000. Esta es la dirección del Registro
de Estado de Comando.
14. Registrar la dirección presionando ALE.
15. Poner los interruptores de datos a 1100 0010. Esto mantiene el puerto B como
puerto de salida y arranca el temporizador.
16. Almacenar los datos presionando el botón WR.
17. Temporizar el temporizador moviendo el interruptor TIM arriba y abajo.
18. Repetir el paso 17 y observar que la señal TIMER OUT conmuta de
nivel alto (display 1 activado) a bajo (display 2 activado) en cada tercer paso. El
primer cambio requiere 4 pasos del interruptor debido al estado interno del
temporizador.
19. Poner los interruptores de datos a 0000 0000. Esta es la dirección del Registro
de Estado de Comando.
20. Registrar la dirección presionando ALE.
21. Poner los interruptores de datos a 0100 0010. Esto emitirá un comando de
parada del temporizador.
22. Almacenar el comando de parada presionando el botón WR. Si la línea
TIMER OUT esta en nivel bajo y el interruptor TIM arriba, la línea
TIMER OUT pasará inmediatamente a nivel alto (display 1 activado).
23. Repetir el paso 17. la línea TIMER OUT, si aún no esta en nivel alto,
pasará a nivel alto (display 1 activado) la primera vez que el interruptor TIM
esta en la posición superior. Entonces permanecerá en nivel alto. El
temporizador esta ahora inactivo siguiendo el comando de parada.
PULSOS CONTINUOS
1. Poner los interruptores de datos a 0000 0101. Esta es la dirección del MSB del
Registro de Longitud de Cuenta.
2. Registrar la dirección presionando el botón ALE.
3. Poner los interruptores de datos en 1100 0000. Esto cambiará el modo del
temporizador a pulsos continuos.
4. Almacenar los datos presionando el botón WR.
5. Temporizar el temporizador moviendo el interruptor TIM arriba y abajo varias
veces. Cambiará la salida? No, porque se debe emitir un comando de arranque
primero.
6. Poner los interruptores de datos a 0000 0000, la dirección del Registro de Estado
de Comando.
7. Registrar la dirección presionando el botón ALE.
8. Emitir el comando de arranque poniendo los interruptores de datos a 1100 0010
y presionando el botón WR.
9. Temporizar el temporizador moviendo el interruptor TIM arriba y abajo varias
veces. Observe que la señal TIMER OUT pasa a nivel bajo (display 2
activado) en el sexto paso y a nivel alto (display 1 activado) en el séptimo paso.
Este pulso se repite cada sexto paso.
10. Temporizar el temporizador hasta que la línea TIMER OUT justamente
cambie a nivel alto (display 1 activado), luego proceder con la siguiente sección.
PARAR DESPUÉS DE LA CUENTA TERMINAL:
1. Poner los interruptores de datos a 0000 0000, el Registro de Estado de
Comando, y presionar el botón ALE para registrar la dirección.
2. Poner los interruptores de datos a 1000 0010. Esto emitirá el comando de
PARAR DESPUÉS DE LA CUENTA TERMINAL (TC) del temporizador.
3. Presionar el botón WR para almacenar el comando.
4. Temporizar el temporizador moviendo el interruptor TIM arriba y abajo y
observe que solo una vez más sale el pulso por la línea TIMER OUT.
Después de lo cual la señal TIMER OUT permanecerá en nivel alto.
UNA SOLA ONDA CUADRADO:
1. Poner los interruptores de datos en 0000 0101. Esta es la dirección del MSB del
Registro de Longitud de Cuenta. Registrar la dirección presionando el botón
ALE.
2. Poner los interruptores de datos en 0000 0000. Esto cambiará el modo del
temporizador a Una sola Onda Cuadrada. Almacenar el comando presionando el
botón WR.
3. Poner los interruptores de datos a 0000 0000, la dirección del Registro de Estado
de Comando y registrar esta dirección presionando el botón ALE.
4. Emitir un comando de arranque para el temporizador poniendo los interruptores
de datos en 1100 0010 y presionando el botón WR.
5. Temporizar el temporizador moviendo el interruptor TIM arriba y abajo.
Observe que la línea TIMER OUT pasa a nivel bajo (ilumina el display
2) en el cuarto paso y a nivel alto (ilumina el display 1) en el séptimo paso.
Después de lo cual la línea TIMER OUT permanece en nivel alto.
UN SOLO PULSO:
1. Repetir los anteriores cuatro pasos utilizando 1000 0000 en el paso 2. Esto
pondrá el modo del temporizador en el modo de Un Solo Pulso
2. Temporizar el temporizador moviendo el interruptor TIM arriba y abajo.
Observe que aparece un pulso el la línea TIMER OUT entre el sexto y
séptimo paso. Después de lo cual, la línea TIMER OUT permanece en
nivel alto (ilumina el display 1).
CAMBIO DE LONGITUD DE CICLO (FRECUENCIA):
1. Repetir el procedimiento de Onda Cuadrada Continua pero cambiar el LSB del
Registro de Longitud de Cuenta en el paso 7 ( asegúrese de mantener el Registro
de Longitud de Cuenta en dos o más). Note que la salida de onda cuadrada ahora
corresponde a la longitud emitida en el paso 7, excepto para el primer ciclo el
cual tiene un paso más. Si se emite un número impar en el paso 7, la longitud a
nivel alto de TIMER OUT (display 1 iluminado) será de un paso mayor
que la longitud de TIMER OUT en nivel bajo.

VI. CONCLUSIONES

Al completar todas la dispocisiones que da el laboratorio llegamos a las siguientes conclusiones

1. Se logró experimentar la escritura y lectura manuales en la memoria RAM 8156.
2. Se experimento en el entrenador la lectura y salida del puerto

VII. FE DE ERRATAS

Al realizar el laboratiro tubimos una fallas primero con el puente j11 que despues lo solucionamos y despues de eso no se tuvieron problemas significativos




 

0 Comments:

Post a Comment

<< Home