Está en la página 1de 25

Objetivos

• Implementar un circuito que convierta un número decimal en el rango de 0 a 99


representado en binario en 7 bits, a su correspondiente código BCD8421 en 8 bits.
• Programar la memoria EEPROM con la tabla de verdad del convertidor de
código.
• Comprobar el funcionamiento del convertidor de código

Introducción
La EEPROM es un segmento de memoria separado, que no pertenece a la
memoria de programa (ROM), tampoco a la memoria de datos (RAM). Aunque a
estas localidades de memoria no se les puede acceder fácil y rápidamente, su
propósito es insustituible. Los datos almacenados en la EEMPROM están
permanentemente guardados incluso al apagar la fuente de alimentación, y
pueden ser cambiados en cualquier momento. Por estas características
excepcionales cada byte de la EEPROM se considera valioso.
Aunque una EEPROM puede ser leída un número ilimitado de veces, sólo puede
ser borrada y reprogramada entre 100.000 y un millón de veces.

Equipo y Material
1 Memoria AT28C16
8 Resistencias de 330 Ω
1 Barra de 8 leds ó en su defecto 8 leds individuales.
1 Fuente de voltaje de CD. 1 Multímetro
1 Programador Universal
1 Protoboard
1 Pc con software de simulación
Procedimiento Experimental
1. Generar la tabla de valores en el editor de buffer del software SuperPro como
se muestra en la figura 1.2. Considere que los datos en el buffer son los valores de
la tabla en código BCD8421 y solo deben llenarse 100 localidades, las restantes
28 deberán estar cargadas con el valor de 00.

Figura 1.2 Buffer de BCD8421


2. Salvar el buffer en formato binario seleccionando la pestaña de Archivo/Guardar
y asignando el nombre BIN_BCD, designe la carpeta de almacenamiento que
desee como se muestra en la figura 1.4.
Figura 1.4 Salvado del programa
3. Programe la memoria AT28C16 con archivo BIN_BCD.BIN

Cargando el programa
4. Simule el circuito de la figura 1.5.
Figura 1.5 Codificador Binario a BCD8421
6. Compruebe la función de conversión de código del circuito proponiendo una
tabla de 16 valores diferentes.
La tabla propuesta se muestra a continuación:

HEX
Decimal Binario BCD8421 HEX de BCD
(Address)
3 0000 0011 0000 0011 03 03
11 0000 1011 0001 0001 0B 11
17 0001 0001 0001 0111 11 17
23 0001 0111 0010 0011 17 23
31 0001 1111 0011 0001 1F 31
34 0010 0010 0011 0100 22 34
42 0010 1010 0100 0010 2A 42
46 0010 1110 0100 0110 2E 46
59 0011 1011 0101 1001 3B 59
62 0011 1110 0110 0010 3E 62
68 0100 0100 0110 1000 44 68
70 0100 0110 0111 0000 46 70
72 0100 1000 0111 0010 48 72
77 0100 1101 0111 0111 4D 77
83 0101 0011 1000 0011 53 83
97 0110 0001 1001 0111 61 97
Tabla 1.2 - 16 valores propuestos
7. Llene la tabla 1.2 con los 16 valores obtenidos del circuito y verifique que la
operación se está realizando correctamente.
8. El alumno diseñará un sistema que genere 4 códigos de salida a partir de un
código de entrada de 4 bits:
• Código gray (4 bits).
• Código en complemento a 2 (4 bits).
• Código XS3 (8 bits).
• Código BCD5221 (8 bits).
8. El circuito debe incluir 2 señales de control para que se pueda seleccionar cuál
de los 4 códigos se visualiza a la salida.
9. El alumno determinará las conexiones de la memoria AT28C16.

10. El alumno diseñará el circuito y lo simulará.

Buffer del convertidor múltiple


Salvando y cargando el programa
11. El alumno comprobará las 4 tablas de verdad.
Código Gray:
--------------------------------------------------------------------------------------------------------------
Complemento a 2:
--------------------------------------------------------------------------------------------------------------
XS3:
--------------------------------------------------------------------------------------------------------------
BCD5221:
Se presentó un correcto funcionamiento en todos los casos.
--------------------------------------------------------------------------------------------------------------
Cuestionario
1. Diseñe un circuito convertidor de código binario (4 bits) a BCD8421 (4 bits),
utilizando herramientas computacionales de reducción para la obtención de las
expresiones de álgebra de Boole y dibuje el circuito resultante con compuertas
lógicas de cualquier número de entradas.

A B C D BCD8421
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1
0 0 1 0 0 0 1 0
0 0 1 1 0 0 1 1
0 1 0 0 0 1 0 0
0 1 0 1 0 1 0 1
0 1 1 0 0 1 1 0
0 1 1 1 0 1 1 1
1 0 0 0 1 0 0 0
1 0 0 1 1 0 0 1
1 0 1 0 0 0 0 0
1 0 1 1 0 0 0 1
1 1 0 0 0 0 1 0
1 1 0 1 0 0 1 1
1 1 1 0 0 1 0 0
1 1 1 1 0 1 0 1
Tabla a implementar

Circuito proveniente de la solución mediante mapas de Karnaugh


Columna más significativa
Columna menos significativa
2. Describa las ventajas y desventajas del circuito resultante con respecto al
circuito implementado en esta práctica a través de la memoria ROM, considerando
que este diseño tiene 7 bits de entrada y 8 de salida.
Se puede observar claramente lo difícil y robusto que resulta utilizar compuertas
lógicas para una respuesta de este tipo, a comparación de utilizar PLDs, en
cuyo caso fue mucho más fácil y rápido realizar la programación de la memoria
una vez definida la respuesta deseada, algo que no es posible con compuertas
lógicas, además es notable, también, que en el caso de compuertas lógicas se
utilizan más cantidad de dispositivos, lo que se traduce como más costo y más
complejidad de crear físicamente.

Conclusiones
Se implemento de manera correcta la programación de la memoria para poder
realizar un convertidor a distintos sistemas de numeración como BCD de distintos
tipos, XS3, etc.
Se observo la fácil que resulta realizar reprogramación para obtener una respuesta
diferente, ya sea sobrescribiendo direcciones, o, cambiar totalmente donde se
implementará nuestra respuesta deseada.
Cabe destacar que este proceso se realizara muy rápidamente, a comparación de
utilizar compuertas lógicas, donde un error o modificación lleva a realizar de nuevo
todo el planteamiento de la respuesta.
Por último, en algunos casos resulta directamente imposible realizar ciertas
combinaciones con compuertas lógicas que si son posibles mediante PLD sin
dispositivos adicionales.

Bibliografía
https://www.mikroe.com/ebooks/microcontroladores-pic-programacion-en-basic/
memoria-eeprom
https://aprendiendoarduino.wordpress.com/category/eeprom/

También podría gustarte