top of page

Laboratorio 7: Visualización dinámica, el sumador de BCD.

Juan David Combita Murcia, 20181007017

Electrónica Digital

Grupo 743

Universidad Distrital Francisco José


I. Objetivos:


Objetivo general:


Implementar un sumador de dos números en BCD cuyo resultado sea mostrado mediante visualización dinámica en dos displays de 7 segmentos.


Objetivos específicos:


1) Entender el concepto de visualización dinámica.

2) Realizar un sumador de BCD teniendo en cuenta la corrección del error de código.

3) Construir un circuito de visualización dinámica con multiplexores y decodificadores.


II. Recursos:


1) Simulador CircuitVerse http://circuitverse.org/.


III. Marco teórico:


Multiplexor:


El multiplexor es un circuito que ofrece la posibilidad de seleccionar una de dos entradas (en principio) pero se puede extender a seleccionar una de cuatro entradas o una de ocho entradas y así sucesivamente, la cantidad de entradas que se puede seleccionar depende de la cantidad de selectores en función de 2 donde n es el numero de selectores.


La tabla de verdad del multiplexor básico 2 a 1 se puede encontrar en la figura 1 donde se ve el funcionamiento anteriormente descrito. La ecuación del multiplexor 2 a 1 básico es la siguiente:[1]

Figura 1. Tabla de verdad del mutiplexor.


Donde se puede observar que cuando el valor del selector es 1, la salida toma el valor de la entrada A y el segundo termino se hace 0, mientras que cuando el selector es 0, el primer termino se hace cero y el segundo se vuelve uno, es decir, la salida es igual a la entrada B.


También tiene su función inversa, el demultiplexor que pasa un dato de una única linea de entrada a alguna de las lineas de salida dependiendo también de la cantidad de selectores que tenga.[1]


Codificador y Decodificador:


En la practica usualmente es conveniente cambiar de un tipo de representación a otra, por ejemplo, cambiar de binario natural a displays de 7 segmentos, cambiar de octal a hexadecimal, cambiar de decimal a binario o su inverso de binario a decimal, en este caso se pueden generar codificadores que pasen de 2^n lineas a la entrada a n lineas a la salida, mientras que los decodificadores convierten n lineas de entrada en 2^n lineas de salida, los hay con prioridad y sin prioridad, uno de los mas sencillos es el decodificador one hot de 1 entrada que cumple con la tabla de verdad que se puede encontrar en la tabla 2:[1]

Figura 2. Tabla de verdad del decodificador one hot.


Como se puede ver es un circuito con una entrada y dos salidas por lo que se cumple la regla mencionada anteriormente, se puede diseñar por tabla de verdad o por simple inspección sus ecuaciones serian:[1]


Visualización Dinámica:


Esta técnica consiste en utilizar la persistencia visual del ojo humano. La persistencia visual consiste en que a cada excitación (dependiendo del nivel de brillo de la imagen) se guarda por unos segundos la imagen con la que se excita el ojo, es decir que, con cambios de imágenes lo suficientemente rápidos se podría hacer un barrido imperceptible para el ojo humano. Se considera que la frecuencia de umbral en un nivel de brillo de luz dia es de 40 Hz a 60 Hz.


En otras palabras, si tuviéramos dos displays de 7 segmentos que se activaran y se desactivaran a mas de 40 ciclos por segundo, los veríamos activados, es uno de los trucos para engañar la visión y en otras palabras “ahorrar componentes”, permite ahorrar por ejemplo decodificadores de 7 segmentos. Significa que ahora deber ́a encontrar la manera de habilitar y deshabilitar cada display para solo utilizar un decodificador de BCD a 7 segmentos para manejar los 2 displays de 7 segmentos, en la vida real esto se hace dependiendo de si es cátodo o ánodo común con transistores NPN o PNP respectivamente, estos se conectan al pin común y con un una señal de reloj que de la misma manera que el selector cambia, debe cambiar de display.[1]


Comparadores:


La función básica de un comparador consiste en comparar las magnitudes de dos cantidades binarias para determinar su relación. En su forma más sencilla, un circuito comparador determina si dos números son iguales.


Para comparar números binarios de dos bits, se necesita una puerta OR-exclusiva adicional. Los dos bits menos significativos (LSB) de ambos números se comparan mediante la puerta G1 y los dos más significativos (MSB) son comparados mediante la puerta G2, como se muestra en la Figura 3. Si los dos números son iguales, sus correspondientes bits también lo son, y la salida de cada puerta OR-exclusiva será 0. Si los correspondientes conjuntos de bits no son idénticos, la salida de la puerta OR-exclusiva será un 1.[2]

Figura 3. Diagrama lógico de la comparación de igualdad de dos números de 2 bits.


Además de disponer de una salida que indica si los dos números son iguales, muchos circuitos integrados comparadores tienen salidas adicionales que indican cuál de los dos números que se comparan es el mayor. Esto significa que existe una salida que indica cuándo el número A es mayor que el número B (A > B) y otra salida que indica cuándo A es menor que B (A < B), como se muestra en el símbolo lógico del comparador de cuatro bits de la Figura 4.[2]

Figura 4. Símbolo lógico para un comparador de 4 bits con indicación de desigualdad.


Sumadores binarios en paralelo:


Un único sumador completo es capaz de sumar dos números binarios de 1 bit y un acarreo de entrada. Para sumar números binarios de más de un bit, se tienen que utilizar sumadores completos adicionales. Cuando se suman dos números binarios, cada columna genera un bit de suma y un 1 ó 0, correspondiente al bit de acarreo, que se añade a la columna inmediata de la izquierda, como se muestra a continuación con dos números de 2 bits.[2]

Para sumar dos números binarios, se necesita un sumador completo por cada bit que tengan los números que se quieren sumar. Así, para números de dos bits se necesitan dos sumadores, para números de cuatro bits hacen falta cuatro sumadores, y así sucesivamente. La salida de acarreo de cada sumador se conecta a la entrada de acarreo del sumador de orden inmediatamente superior, como se muestra en la Figura 5 para un sumador de 2 bits. Téngase en cuenta que se puede usar un semi-sumador para la posición menos significativa, o bien se puede poner a 0 (masa) la entrada de acarreo de un sumador completo, ya que no existe entrada de acarreo en la posición del bit menos significativo.[2]

Figura 5. Diagrama de bloques de un sumador paralelo de 2 bits básico utilizando dos sumadores completos.


IV. Simulaciones y análisis de resultados:


Para la practica numero 7, se propone realizar un sumador BCD con ayuda de multiplexores, decodificadores y comparadores, realizando la visualización dinámica para decenas y unidades.


Para realizar esto, se requiere de un sumador de 4 bits, el cual nos entregara un numero binario entre los 2 BCD. Para realizar este proceso, es suficiente con colocar 4 sumadores de 1 bit en paralelo (El cual fue desarrollado en la practica numero 3).


Una vez obtenido el numero binario, hay que pasar este a BCD, eso se puede realizar mediante un comparador de 5 bits, ya que un posible resultado de la suma de 4 bits es uno de 5. Cuando la suma de 2 números BCD es superior a 9, esta queda dividida en 2 partes, decenas y unidades. Esto se hace sumando 6 unidades decimales al las unidades en BCD y las decenas seria la suma del bit numero 5 de entrada y de salida en este segundo procedimiento.


Las ecuaciones del comparador de un bit, en la cual G nos indica que A>B, L nos indica A<B y E que A=B, son:

Ahora bien, para implementar un tabla de 5 bits, se requiere hacer la comparacion entre los 5 bits, donde el quinto es el mas significativo, por lo que hay que comparar los 2 bits menos significativos con los 2 siguientes y asi sucesivamente. Para obtener un comparador entre las salidas de dos comparadores de un bit, obtenemos el siguiente mapa de Karnaugh:

En la cual para obtener las ecuaciones L, por ejemplo, cambiamos las variables E y G por 0, y así con las otras 2, obteniendo:

Esta última expresada con compuerta NOR, tal como aparece en la simulación:

Debido a que hay que comparar, como ya se menciono, un el bit mas significativo con el anterior, estas operaciones se vuelven recurrentes para el comparador de 5 bits, en cual hay que implementar 5 comparadores de 1 bit y 4 comparadores entre estos, lo cual se denomina como comparador base en el simulador.


Hecho dicho comparador este recibe como parámetros la suma de los 2 BCD y 5 bits fijos el cual es el 9 decimal, el cual nos indica que cuando esta suma es mayor a 9, se deben sumar 6 decimal a las unidades BCD, como ya se había explicado.


Luego hay que implementar un MUX de 8 a 4, el cual recibe ya nuestro numero BCD el cual, haciendo uso de la visualización dinámica, hay que alternar entre unidades y decenas para ilustrar en los display's de 7 segmentos. dicho esto nuestro MUX recibe unidades en una de sus entradas y decenas en otra.


Para realizar un MUX 8 a 4 basta con utilizar 4 MUX 2 a 1 y un selector común, el cual cuando es 1 su salida son unidades y cuando es 0 su salida son decenas. Este es manejado por un reloj que cambia lo suficientemente rápido para nos distinguir entre un cambio y el otro.


Luego hay que realizar el decodificador de 7 segmentos, mediante mapas de Karnaugh, como ya lo estudiamos en la practica pasada, donde obtenemos las ecuaciones para cada segmento:


Tabla de verdad 7 segmentos:

Ecuación segmento A:

Ecuación segmento B:

Ecuación segmento C:

Ecuación segmento D:

Ecuación segmento E:

Ecuación segmento F:

Ecuación segmento G:

Y para finalizar, se implementaron 2 enable decod. los cuales reciben como parámetros los 7 segmentos a ilustrar, y se multiplican con un one hot, denominado en el circuito como enable. Este es manejado por el reloj que cambia lo suficientemente rápido para nos distinguir entre un cambio y el otro. Como ya se había mencionado, cuando su entrada es un 1, se activa en enable decod de las unidades y cuando este es 0 se activa el de las decenas, pero al ser un cambio imperceptible para la vista humana, da la impresión que ambos están activos permanentemente.


Dicho todo lo anterior, el montaje finalizado, implementando subcircuitos, donde el proceso principal es el main, es el siguiente:



V. Conclusiones:


Se pudo evidenciar que para cualquier tipo de código, no es necesario crear un sumador distinto independiente para cada uno, si no que basta con conocer las particularidades de cada código e implementar las funciones lógicas ya conocidas e implementarlas para un determinado propósito. Al igual que para pasar de un numero binario a un BCD necesitábamos mirar cuando este era mayor que 9, esto se podía hacer con otros circuitos mas específicos, pero con un comparador ya tenemos este mismo proceso de forma mas general y que nos puede servir para otros propósitos.

Por otro lado, el MUX nos ahorra componentes a la hora representar, en este caso, los dígitos en los display. Este es útil a la hora de intercambiar diferentes entradas respecto a lo que se refleja en la salida, como bien se puede ver implementado en el transporte de señales y telecomunicaciones.


VI. Vídeo:



Referencias:

[1] Guía practica 7.


[2] Thomas L. Floyd, fundamentos de sistemas digitales, Madrid, PEARSON EDUCATION S.A., 2006.

Comments


bottom of page