Está en la página 1de 37

UNIVERSIDAD DE LAS FUERZAS ARMADAS “ESPE”

DEPARTAMENTO DE ELÉCTRICA, ELECTRÓNICA Y


TELECOMUNICACIONES

SISTEMAS BASADOS EN MCU

NRC: 5601

Diseño No. 3

GRUPO 1

INTEGRANTES:

● Lady Pasquel
● Celeste Santander
DEPARTAMENTO DE ELÉCTRICA, ELECTRÓNICA Y TELECOMUNICACIONES
SISTEMAS BASADOS EN MCU
DISEÑO No. 3
Unidad Aritmética Lógica: Operaciones lógicas
1. Objetivo general
Simular un circuito digital, usando el CI 74LS181 (ALU), que permita realizar operaciones lógicas y
aritméticas entre 2 números de binarios y presente todos los resultados en displays, así como el
nombre de la operación realizada en forma secuencial.

2. Objetivos específicos

● Emplear el material aprendido para poder simular el circuito solicitado tomando en cuenta las
características del datasheet del circuito integrado empleado, para poder comprender el
funcionamiento de la ALU, y obtener un circuito eficiente.
● Optimizar el circuito obteniendo el resultado deseado, y aplicar conocimientos con respecto a
memoria, generando una tabla de verdad que nos permita ubicar la información deseada con
el empleo de registros.

3. Planteamiento del problema

Diseñar un circuito MSI, al cual ingresan 2 números binarios (A y B) de 4 bits cada uno (el valor de
los números ingresados se debe visualizar en displays).
El circuito contiene un CI 74LS181 (ALU) para realizar diferentes operaciones aritméticas y lógicas
binarias entre los números ingresados y presentar el resultado en displays. Para el caso de la resta
aritmética, se debe tomar en cuenta su salida cuando hay números negativos, de modo que se debe
generar un circuito que corrija el número en complemento a dos, y adicional muestre su signo.
Adicionalmente, el circuito presentará la operación realizada por la ALU (OPERACIÓN 01,
OPERACIÓN 02, OPERACIÓN 03,....etc), la cual debe ser extraída de una memoria EEPROM y ser
visualizada secuencialmente en un display, para lo cual deberá utilizar registros.
4. Diagrama de bloques y explicación del diseño

Imagen 1. Diagrama de Bloques


Explicación de cada Bloque

Entradas: El diseño realizado emplea 3 dip switch, uno para el dígito A, uno para el dígito B
y otro para los selectores de la ALU 74LS181: Cn, M, S3, S2, S1, S0. En este caso, al tratarse
de lógica negativa para los dígitos A y B, y lógica positiva para el resto de swtich de
selectores.

Bloque Conversor Binario-Decimal de las Entradas: En este bloque tenemos los circuitos
conversores que toman los dígitos en lógica negativa y los representan en dos displays para
expresar los números en unidad y decimal.

ALU: El Bloque ALU, es donde está el circuito integrado 74LS181 y los circuitos para
mostrar el signo de los números negativos y el carry solo para las operaciones de suma. La
salida de este bloque son: Carry, Z3, Z2, Z1, Z0, y Fcs.

Bloque Conversor Binario-Decimal Salidas de la ALU: En este bloque, tenemos el circuito


que convierte el número en binario a decimal en dos displays, uno para la decena y otro para
la unidad, y además un display extra para representar el signo de la operación.

Bloque de memoria: En este bloque empleamos una memoria donde se ubica el número de
operación y la palabra OPERACIÓN, representando la salida en un display.

5. Explicación del diseño


ENTRADAS
LÓGICA POSITIVA
En este bloque tenemos las entradas a la ALU, puestas en lógica positiva para las entradas A
y B, y los selectores S3, S2, S1, S0, M, y Cn.
Dígito A:

Imagen 2. Switch de A
Dígito B:

Imagen 3. Switch de B
Selectores:

Imagen 4. Selectores

Usando este tipo de lógica empleamos la siguiente tabla de operaciones proporcionada por el
datasheet de la ALU 73LS181.
Imagen 5. Tabla de funcionamiento ALU

LÓGICA NEGATIVA
En este bloque tenemos las entradas a la ALU, puestas en lógica negativa para las entradas A
y B, y en lógica positiva los selectores S3, S2, S1, S0, M, y Cn.
Dígito A:

Imagen 6. Switch de A

Dígito B:
Imagen 7. Switch de B
Selectores:

Imagen 8. Selectores

Estas entradas nos van a ayudar a escoger el tipo de operación que deseamos realizar con la
ALU. Las operaciones para lógica negativa son las siguientes:
Imagen 9. Tabla de funcionamiento ALU

CONVERSIÓN BINARIO A DECIMAL ENTRADAS


En este bloque tenemos los circuitos que convierten un dígito de 4 bits en binario a uno en
decimal con una decena y unidad en displays. Se establece una condición tal que el número
sume un 6 en binario cuando ya no sea BCD para representar en decena.
Imagen 10. Conversión de entradas

En ambos casos lógica positiva y negativa el circuito es lo mismo, lo único que cambia es que
en lógica negativa se niegan las entradas antes de ingresar al circuito.

ALU
Para este bloque tenemos el empleo del circuito integrado 74LS181 que es el responsable de
hacer las operaciones de la ALU, y consta de parte lógica y aritmética, aunque el orden de la
operación varía según trabajemos las entradas de los dígitos A y B en lógica positiva o lógica
negativa.
Imagen 11. Conexión ALU

Las salidas de la ALU, son Y0, Y1 Y2 Y3 y Cn4 para lógica positiva y Y0’ Y1’ Y2’ Y3’ y
Cn4’ para lógica negativa, en ambos casos deben pasar por una corrección

CONDICIONES ADICIONALES
Analizando el datasheet del circuito integrado y el funcionamiento del circuito nos
encontramos con pequeños problemas en la salida para su conversión a binario, el primero es
el signo en negativo cuando se esté haciendo una resta aritmética, tal que se debe plantear una
función que solo active el signo negativo cuando se esté haciendo una operación resta y el
resultado de esa operación sea un número negativo. También se aplica lo mismo para la
operación carry, de la cual se pudo deducir que cuando no está haciendo una suma puede
encenderse o apagarse debido a que su lectura no es necesaria, ya que como tal si no suma la
respuesta se mantendrá en 4 bits.

LÓGICA POSITIVA

Como se mencionó anteriormente, se deben generar funciones para el carry y el número


negativo. Para el carry la función nos entregará el resultado del carry solo cuando se esté
haciendo una suma, para empezar, eso solo sucederá con operaciones aritméticas, tal que
funciona solo cuando M este en bajo.
Lo mismo sucede con la función del signo para que se haga el complemento a dos de los
números negativos. Y de la misma manera solo trabaja con M en bajo ya que se trata
exclusivamente de operaciones aritméticas.

Tabla 1. Tabla de verdad

M Cn S3 S2 S1 S0 Fcarry FC

0 0 0 0 0 0 0 1 0
1 0 0 0 0 0 1 1 0

2 0 0 0 0 1 0 1 0

3 0 0 0 0 1 1 0 0

4 0 0 0 1 0 0 1 0

5 0 0 0 1 0 1 1 0

6 0 0 0 1 1 0 0 0

7 0 0 0 1 1 1 0 0

8 0 0 1 0 0 0 1 0

9 0 0 1 0 0 1 1 0

10 0 0 1 0 1 0 1 0

11 0 0 1 0 1 1 0 0

12 0 0 1 1 0 0 1 0

13 0 0 1 1 0 1 1 0

14 0 0 1 1 1 0 1 0

15 0 0 1 1 1 1 0 0

16 0 1 0 0 0 0 0 0

17 0 1 0 0 0 1 0 0
18 0 1 0 0 1 0 0 0

19 0 1 0 0 1 1 0 1

20 0 1 0 1 0 0 1 0

21 0 1 0 1 0 1 1 0

22 0 1 0 1 1 0 0 1

23 0 1 0 1 1 1 0 1

24 0 1 1 0 0 0 1 0

25 0 1 1 0 0 1 1 0

26 0 1 1 0 1 0 1 0

27 0 1 1 0 1 1 0 1

28 0 1 1 1 0 0 1 0

29 0 1 1 1 0 1 1 0

30 0 1 1 1 1 0 1 0

31 0 1 1 1 1 1 0 1

32 1 x x x x x x 0

Planteada la tabla de verdad tenemos los siguientes circuitos.


Circuito para determinar si se está haciendo una resta:
Imagen 12. Condiciones

Circuito para determinar si es negativo y si se tiene que hacer la corrección en complemento a


dos:

Imagen 13. Corrección

La salida de Cn4 AND Fc es la responsable de hacer la corrección en caso de que toque


hacerla y encender el signo de menos en el display, por ende la salida directa va conectada a la
entrada g del display. De la siguiente manera:
Imagen 14. Signo

Circuito para la condición de carry:

Imagen 15. Corrección

LÓGICA NEGATIVA
De la misma forma, se deben generar funciones para el carry y el número negativo. Para el
carry la función nos entregará el resultado del carry solo cuando se esté haciendo una suma,
para empezar, eso solo sucederá con operaciones aritméticas, tal que funciona solo cuando M
este en bajo.
Lo mismo sucede con la función del signo para que se haga el complemento a dos de los
números negativos. Y de la misma manera solo trabaja con M en bajo ya que se trata
exclusivamente de operaciones aritméticas.

Tabla 2. Tabla de verdad

M Cn S3 S2 S1 S0 Fcarry FC

0 0 0 0 0 0 0 0 1

1 0 0 0 0 0 1 0 1

2 0 0 0 0 1 0 0 1
3 0 0 0 0 1 1 0 0

4 0 0 0 1 0 0 1 0

5 0 0 0 1 0 1 1 0

6 0 0 0 1 1 0 0 1

7 0 0 0 1 1 1 0 0

8 0 0 1 0 0 0 1 0

9 0 0 1 0 0 1 1 0

10 0 0 1 0 1 0 1 0

11 0 0 1 0 1 1 0 0

12 0 0 1 1 0 0 1 0

13 0 0 1 1 0 1 1 0

14 0 0 1 1 1 0 1 0

15 0 0 1 1 1 1 0 0

16 0 1 0 0 0 0 0 0

17 0 1 0 0 0 1 0 0

18 0 1 0 0 1 0 0 0

19 0 1 0 0 1 1 0 0
20 0 1 0 1 0 0 1 0

21 0 1 0 1 0 1 1 0

22 0 1 0 1 1 0 0 1

23 0 1 0 1 1 1 1 0

24 0 1 1 0 0 0 1 0

25 0 1 1 0 0 1 1 0

26 0 1 1 0 1 0 1 0

27 0 1 1 0 1 1 1 0

28 0 1 1 1 0 0 1 0

29 0 1 1 1 0 1 1 0

30 0 1 1 1 1 0 1 0

31 0 1 1 1 1 1 0 0

32 1 x x x x x x 0

Planteada la tabla de verdad tenemos los siguientes circuitos.


Circuito para determinar si se está haciendo una resta:
Imagen 16. Condiciones

Circuito para determinar si es negativo y si se tiene que hacer la corrección en complemento a


dos:

Imagen 17. Corrección

La salida de Cn4 AND Fc es la responsable de hacer la corrección en caso de que toque


hacerla y encender el signo de menos en el display, por ende la salida directa va conectada a la
entrada g del display. De la siguiente manera:
Imagen 18. Signo

Circuito para la condición de carry:

Imagen 19. Corrección

En general las salidas de este bloque ya sea en lógica positiva o lógica negativa van a ser: Z3
Z2 Z1 Z0, que se dirigen al bloque de conversión binario decimal para representar su valor
decimal en displays, y Fc para el signo.

CONVERSIÓN BINARIO A DECIMAL DE LA SALIDA

En este bloque tenemos la salida Z3 Z2 Z1 y Z0 para el número y el de signo negativo en


ambos casos lógica positiva y negativa.

Tabla 3. Tabla para Conversión Tabla 4. Tabla para Conversión


Decimal Bits DISPLAY 1 DISPLAY 2

0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 1 0 0 0 0 0 0 0 1

2 0 0 0 1 0 0 0 0 0 0 0 1 0

3 0 0 0 1 1 0 0 0 0 0 0 1 1

4 0 0 1 0 0 0 0 0 0 0 1 0 0

5 0 0 1 0 1 0 0 0 0 0 1 0 1

6 0 0 1 1 0 0 0 0 0 0 1 1 0

7 0 0 1 1 1 0 0 0 0 0 1 1 1

8 0 1 0 0 0 0 0 0 0 1 0 0 0

9 0 1 0 0 1 0 0 0 0 1 0 0 1

10 0 1 0 1 0 0 0 0 1 0 0 0 0

11 0 1 0 1 1 0 0 0 1 0 0 0 1

12 0 1 1 0 0 0 0 0 1 0 0 1 0

13 0 1 1 0 1 0 0 0 1 0 0 1 1

14 0 1 1 1 0 0 0 0 1 0 1 0 0

15 0 1 1 1 1 0 0 0 1 0 1 0 1

16 1 0 0 0 0 0 0 0 1 0 1 1 0

17 1 0 0 0 1 0 0 0 1 0 1 1 1

18 1 0 0 1 0 0 0 0 1 1 0 0 0

19 1 0 0 1 1 0 0 0 1 1 0 0 1

20 1 0 1 0 0 0 0 1 0 0 0 0 0

21 1 0 1 0 1 0 0 1 0 0 0 0 1

22 1 0 1 1 0 0 0 1 0 0 0 1 0

23 1 0 1 1 1 0 0 1 0 0 0 1 1

24 1 1 0 0 0 0 0 1 0 0 1 0 0

25 1 1 0 0 1 0 0 1 0 0 1 0 1
26 1 1 0 1 0 0 0 1 0 0 1 1 0

27 1 1 0 1 1 0 0 1 0 0 1 1 1

28 1 1 1 0 0 0 0 1 0 1 0 0 0

29 1 1 1 0 1 0 0 1 0 1 0 0 1

30 1 1 1 1 0 0 0 1 1 0 0 0 0

31 1 1 1 1 1 0 0 1 1 0 0 0 1

Siguiendo la tabla de verdad propuesta anteriormente se analiza que:


La corrección de bit, de sumar 6, cuando este es mayor a 9 depende del valor del resultado
pues si el número se encuentra;
- Entre 10 y 19 se debe sumar 6
- Entre 20 y 29 se debe sumar 12
- Entre 30 y 39 se debe sumar 18
Siguiendo esta lógica se plantea crear una condición con elementos SSI y se detalla el
funcionamiento a continuación;

Recalcando que las salidas en binario son:


Z3 Z2 Z1 Z0 siendo Z3 el bit más significativo;

Primera condición:

Imagen 20. Primera condición SSI

Estas compuertas determinan que si se tiene un dígito mayor a 4, 8 y un número mayor a 16


que sumados representan el número 20 o 24 se activa la X5.
A continuación se hace uso de la activación de esta variable para hacer una corrección
mediante un sumador.
Imagen 21. Primer sumador para corrección

En este sumador se pretende sumar un 3d a un número mínimo de 4d o máximo de 31d de las


salidas del multiplexor representando respectivamente un 1d o 7d dentro de esta suma si y
sólo si la condición anterior se cumple teniéndose un 1d o un 10d como valores resultantes de
la suma y a estas variables se las nombr F3 F2 F1 siendo F3 el bit más significativo.

A partir de esto se genera la siguiente condición:

Imagen 22. Segunda condición SSI

El dato a obtenerse se denomina X4 y se activará solo si se obtiene como mínimo un 2d en la


salida de los multiplexores o un 1 en la suma anterior, además si y sólo si se activa la variable
F2 o también si se activa la variable F3 de la suma anterior.
Este dato F3 permitirá la corrección explicada a continuación.
Imagen 23. Segundo sumador para corrección

Activado X4 de la condición anterior nos permitirá sumar un 3d a la variable de 4 dígitos


ingresada en A, que corresponde a F0 → A0 el segundo bit representa el bit menos
significativo de esta suma y los demás son respectivamente los valores obtenido de la primera
suma recorriendo un lugar pues F1 → A2, F2→ A3, F3→ A4.
Finalmente obtenidos los números en BCD se procede a conectar al decodificador BCD a 7
segmentos de la siguiente manera:

Imagen 24. Conexión final de conversión

Aquí se observa que las variables obtenidas X4 y X5 permiten formar los número 1d, 2d o 3d
en el display de decenas de acuerdo a las condiciones planteadas anteriormente, y las
variables X3 X2 X1 Z0 permiten formar los valores en el display de unidades tomando en
cuenta que Z0 se acciona directo sin necesidad de alguna modificación.
Para representar al signo en caso la respuesta sea un número en signo negativo tenemos el
siguiente circuito:
Imagen 25. Conexión final de conversión

BLOQUE DE MEMORIA PARA REPRESENTAR LA OPERACIÓN


Dentro de este apartado se procede a explicar los dos diseños dispuestos para el laboratorio
3.1 y 3.1 ya que se basan en el mismo principio pero cada uno tiene su lógica y cierta
diferencia.

- Disposición diseño 3.1


Para el primer diseño se requería la presentación de las letras “O” y “P” haciendo referencia a
la palabra “operación” y también de dos dígitos decimales del número de operación que se
estaba realizando durante la ejecución del programa utilizando únicamente 2 displays .
Cómo solución se planteó implementar una memoria 2732 de 4k en la cual analizando el
requerimiento de representar 4 símbolos en los displays se decidió repartir la letra “O” y el
dígito correspondiente a las decenas “1, 2, 3 o 4” (ya que la última operación a ser
representada es la 47) para un display y la letra “P” y los números del “1 al 9” en el segundo
display.
Para cumplir lo requerido es necesario que cierto intervalo de tiempo aparezca la “O” y la “P”
sincronizadas y luego durante otro intervalo de tiempo aparezca la unidad y la decena también
sincronizadas y correspondientes al número de operación que se esté realizando, es por ello
que se planteó ingresar una señal de reloj o clock que este continuamente cambiando de nivel
a 1 y 0 durante la ejecución y que permita observar estos cambios.

Dispuesta esta decisión y para optimizar costos se decidió formar las letras y números
respectivos en binario independientemente y representarlos en el display con ayuda de un ci
74LS48 que es un decodificador BCD a 7 segmentos para poder dividir las 8 salidas de la
memoria en dos salidas de 4 correspondientes a cada display.

Tabla 5. Tabla de verdad para memoria


A6 A5 A4 A3 A2 A1 CLOCK Decoder Decimal Decoder Unidad Hexadecimal

Símbolo CN M S3 S2 S1 S0 D7 D6 D5 D4 D3 D2 D1 D0 DIRECCIÓN DATO

OP 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 00 90

0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 01 00

OP 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 02 90

1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 03 10

OP 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 04 90

2 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 05 20

OP 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 06 90

3 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 07 30

OP 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 08 90

4 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 09 40

OP 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0A 90

5 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0B 50

OP 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0C 90

6 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0D 60

OP 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0E 90

7 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0F 70

OP 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 10 90

8 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 11 80

OP 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 12 90

9 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 13 90

OP 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 14 90

10 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 15 01
OP 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 16 90

11 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 17 11

OP 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 18 90

12 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 19 21

OP 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1A 90

13 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1B 31

OP 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 1C 90

14 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1D 41

OP 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1E 90

15 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1F 51

OP 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 20 90

16 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 21 61

OP 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 22 90

17 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 23 71

OP 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 24 90

18 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 25 81

OP 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 26 90

19 0 1 0 0 1 1 1 1 0 0 1 0 0 0 1 27 91

OP 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 28 90

20 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 29 02

OP 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 2A 90

21 0 1 0 1 0 1 1 0 0 0 1 0 0 1 0 2B 12

OP 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 2C 90

22 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 2D 22
OP 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 2E 90

23 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 2F 32

OP 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 30 90

24 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 31 42

OP 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 32 90

25 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 33 52

OP 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 34 90

26 0 1 1 0 1 0 1 0 1 1 0 0 0 1 0 35 62

OP 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 36 90

27 0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 37 72

OP 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0 38 90

28 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 39 82

OP 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 3A 90

29 0 1 1 1 0 1 1 1 0 0 1 0 0 1 0 3B 92

OP 0 1 1 1 1 0 0 1 0 0 1 0 0 0 0 3C 90

30 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 3D 03

OP 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 3E 90

31 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 3F 13

OP 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 40 90

32 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 41 23

OP 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 42 90

33 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 43 33

OP 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 44 90

34 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 45 43
OP 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 46 90

35 1 0 0 0 1 1 1 0 1 0 1 0 0 1 1 47 53

OP 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 48 90

36 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1 49 63

OP 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 4A 90

37 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 4B 73

OP 1 0 0 1 1 0 0 1 0 0 1 0 0 0 0 4C 90

38 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 4D 83

OP 1 0 0 1 1 1 0 1 0 0 1 0 0 0 0 4E 90

39 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 4F 93

OP 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 50 90

40 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 51 04

OP 1 0 1 0 0 1 0 1 0 0 1 0 0 0 0 52 90

41 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 53 14

OP 1 0 1 0 1 0 0 1 0 0 1 0 0 0 0 54 90

42 1 0 1 0 1 0 1 0 0 1 0 0 1 0 0 55 24

OP 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 56 90

43 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 57 34

OP 1 0 1 1 0 0 0 1 0 0 1 0 0 0 0 58 90

44 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 59 44

OP 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 5A 90

45 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 5B 54

OP 1 0 1 1 1 0 0 1 0 0 1 0 0 0 0 5C 90

46 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 5D 64
OP 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 5E 90

47 1 0 1 1 1 1 1 0 1 1 1 0 1 0 0 5F 74

Finalmente el último inconveniente que se encontró fue el de representar la letra “P” con un
decodificador por lo que se aplicó una condición adicional en este caso.

Siguiendo la siguiente lógica:

Imagen 26. Solución a representación en displays

Resulta que el número más similar a la letra “P” generado por el decodificador es el 9 así que
la condición establece que siempre que la localidad de la memoria necesite representar una
“P” se escriba un 9 y se encienda el led “e” en lugar del led “c”

Imagen 27. Condición

Entonces, el AND U4:A se activará siempre y cuando salga un 9 al decodificador de cifra


decimal y la “condi3” que activa la siguiente AND U6:A corresponde al ciclo bajo del reloj
negado para permitirse esa activación.
Finalmente esta salida nombrada “paraP” entra a un OR U17:A que permitirá activar el
segmento “e” cuando este lo requiera y a la par el AND U6:B desactiva el segmento “c”
cuando se cumpla lo explicado anteriormente.

Finalmente se muestran las conexiones de la memoria, los decodificadores y los displays.

Imagen 28. Representación de operación

- Disposición diseño 3.2


Para la variación de lógica negativa también se requirió una modificación en la presentación
de la operación y esta vez se dispuso presentar toda la palabra “OPERACION” y el número
de operación en formato de dos dígitos decimales en un solo display.
Para la solución de este problema se planteó usar registros que permitan desplazar y repetir
constantemente los 11 datos a presentarse.
Tras el análisis y conectado en cascada de los mismos se analizó que se puede optar por el uso
de un ci de mediana escala de integración que permite esta secuencia, el 74193 que es un
contador ascendente del 0 al 15.
Como se permitirá un mayor número de desplazamiento se podía agregar una condición para
que reinicie el contador en el punto en el que se termina la cantidad de símbolos a presentarse
o se podría aumentar los símbolos a representarse para que se ajusten a los 16 accesos de
memoria por lo que se optó por esta última opción para disminuir la cantidad de integrados,
cableado y optimizar el circuito.
La palabra con 16 pulsos a presentarse es: -OPERACION-N°XX-
Además se resolvió la representación de los símbolos “R”, “N”, “°” de la siguiente manera:
Imagen 29. Solución a representación en displays

Tabla 6. Tabla de verdad para representación de operaciones

A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 P g f e d c b a

GND GND M CN S3 S2 S1 S0 C3 C2 C1 C0 D7 D6 D5 D4 D3 D2 D1 D0 Direcciones Datos

- 0 0 0 0 0 0 0 0 40 0 0 0 0 1 0 0 0 0 0 0 0 0 140 4 0

O 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 3 F

P 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 2 7 3

E 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 0 3 7 9

R 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 4 5 0

A 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1 0 0 5 7 7

C 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 6 3 9

I 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 7 0 6

O 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 8 3 F

N 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 9 5 4

- 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 A 4 0

N 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 B 5 4

° 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 C 6 3

0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 D 3 F
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 E 3 F

- 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 F 4 0

- 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 4 0

O 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 3 F

P 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 2 7 3

E 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 1 3 7 9

R 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 4 5 0

A 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 5 7 7

C 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 6 3 9

I 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 7 0 6

O 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 8 3 F

N 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 9 5 4

- 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 A 4 0

N 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 B 5 4

° 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 C 6 3

0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 D 3 F

1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 E 0 6

- 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 F 4 0

- 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 4 0

O 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 2 1 3 F

P 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 2 2 7 3

E 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 0 2 3 7 9

R 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 2 4 5 0

A 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 1 0 2 5 7 7
C 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 2 6 3 9

I 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 2 7 0 6

O 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 2 8 3 F

N 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 2 9 5 4

- 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 2 A 4 0

N 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 2 B 5 4

° 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 2 C 6 3

0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 2 D 3 F

2 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 1 1 0 2 E 5 B

- 0 0 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 2 F 4 0

- 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 3 0 4 0

O 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 3 1 3 F

P 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 3 2 7 3

E 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 1 0 3 3 7 9

R 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 3 4 5 0

A 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 3 5 7 7

C 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 3 6 3 9

I 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 3 7 0 6

O 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 3 8 3 F

N 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 3 9 5 4

- 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 3 A 4 0

N 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 3 B 5 4

° 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 3 C 6 3

0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 3 D 3 F
3 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 3 E 4 F

- 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 3 F 4 0

- 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 4 0 4 0

O 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 4 1 3 F

P 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 4 2 7 3

E 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 4 3 7 9

R 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 4 4 5 0

A 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 0 4 5 7 7

C 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 4 6 3 9

I 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 4 7 0 6

O 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 4 8 3 F

N 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 4 9 5 4

- 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 4 A 4 0

N 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 4 B 5 4

° 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 4 C 6 3

0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 4 D 3 F

4 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 4 E 6 6

- 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 4 F 4 0

.
.
Y la tabla continúa hasta la OPERACION 47 completando 1017 localidades.

Finalmente se muestran las conexiones de la memoria y el display.


Imagen 30. Conexión final

6. Diagrama electrónico

LÓGICA POSITIVA

Imagen 31. Circuito final


LÓGICA NEGATIVA

Imagen 32. Circuito final

7. Lista de elementos

Lab 3.1: Lógica Positiva


- DSW1: Dip Switch 4/4
- DSW2: Dip Switch 4/4
- DSW3: Dip Switch 6/6
- 15 resistencias de 330 ohms
- 9 Display de 7 segmentos
- U1: 74LS181 ALU
- U2: 2732 MEMORY
- U3: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U4: 74LS21 AND 2/2
- U5: 74LS04 NOT 6/6
- U6: 74LS08 AND 4/4
- U7: 74LS83 Full Adder 4 Bits
- U8: 74LS32 OR 4/4
- U9: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U10: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U11: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U12: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U13: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U14: 74LS83 Full Adder 4 Bits
- U15: 74LS08 AND 4/4
- U16: 74LS04 NOT 5/6
- U17: 74LS32 OR 4/4
- U18: 74LS21 AND 2/2
- U19: 74LS83 Full Adder 4 Bits
- U20: 74LS86 XOR 4/4
- U21: 74LS83 Full Adder 4 Bits
- U22: 74LS83 Full Adder 4 Bits
- U23: 74LS86 XOR 1/4
- U24: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U25: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U26: 74LS11 AND 3/3
- U27: 74LS11 AND 1/3
- U28: 74LS32 OR 3/4
- U29: 74LS08 AND 2/4

Lab 3.2: Lógica Negativa


- DSW1: Dip Switch 4/4
- DSW2: Dip Switch 4/4
- DSW3: Dip Switch 6/6
- 36 resistencias de 330 ohms
- 8 Display de 7 segmentos
- U1: 74LS181 ALU
- U2: 74LS04 NOT 6/6
- U3: 74193 Contador
- U4: 74LS21 AND 2/2
- U5: 74LS04 NOT 2/6
- U6: 74LS08 AND 2/4
- U7: 74LS83 Full Adder 4 Bits
- U8: 74LS32 OR 4/4
- U9: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U10: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U11: 74LS11 AND 3/3
- U12: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U13: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U14: 74LS83 Full Adder 4 Bits
- U15: 74LS08 AND 4/4
- U16: 74LS04 NOT 6/6
- U17: 74LS32 OR 4/4
- U18: 74LS21 AND 1/2
- U19: 74LS83 Full Adder 4 Bits
- U20: 74LS86 XOR 4/4
- U21: 74LS83 Full Adder 4 Bits
- U22: 74LS83 Full Adder 4 Bits
- U23: 74LS86 XOR 1/4
- U24: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U25: 74LS48 Decoder BCD-7 Segmentos - Cátodo Común
- U26: 74LS11 AND 1/3
- U28: 74LS32 OR 2/4
- U29: 74LS32 OR 2/4
- U29: 74LS04 NOT 6/6
- U30: 74LS04 NOT 6/6
- U31: 74LS04 NOT ⅙
- U32: 2732 MEMORY

8. Conclusiones y recomendaciones
CONCLUSIONES

Mediante la práctica hecha obtuvimos un circuito funcional empleando la ALU 74LS181 que
nos permitió observar su funcionamiento para resolver operaciones lógicas y aritméticas entre
dos dígitos A y B, y selectores S3 S2 S1 S0 M y Cn. De la misma manera se pudo observar su
funcionamiento cuando los dígitos cambiaron de lógica positiva a lógica negativa, mediante
el datasheet, descubriendo que las operaciones tenían un cambio en su orden. Mediante dicho
cometido pudimos obtener y comprender las salidas presentadas en donde para su conversión
descubrimos la necesidad de generar funciones que permitan su decodificación correcta, una
función que nos permita realizar el complemento a dos solo en caso sea un número negativo,
tal que se realizó una tabla de verdad que se mantenía en alto sólo cuando se estuviera
haciendo una operación de RESTA aritmética. Y de igual manera se consideró una función
para el carry, para que solo cuando se realizara una SUMA aritmética se considere la salida
Cn4 de la ALU. De esa manera se consiguieron las salidas Carry Z3 Z2 Z1 Z0, siendo Carry
el más significativo, y la salida Fcs, para el signo que se encendería solo cuando el resultado
sea un número negativo. De tal manera se realizó el circuito optimizando el número de
integrados y que cumpla con el objetivo planteado.

Usar una memoria facilita la implementación y análisis de un problema ya que basta con
invertir tiempo en designar todas las posibles respuestas que se pueden obtener de un
requerimiento y que la memoria soporte para programarla e implementarla además de que
ocupa poco espacio físico dentro de un circuito, sin embargo su desventaja se ve en el precio
y al momento de tener que grabar el programa en la memoria de forma física ya que implica
otros artefactos adicionales para completar esta función. Aquí se destaca una ventaja enorme
que tienen los simuladores de circuitos con los usuarios pues nos permiten comprender el
funcionamiento sin la necesidad de implementarlo.

RECOMENDACIONES
Se recomienda el análisis adecuado del datasheet proporcionado por el fabricante para poder
comprender de mejor manera el funcionamiento de la ALU 74LS181, su respuesta y sus
cambios cuando se trabaja en diferente lógica. De modo que no se tenga problemas para
comprender el resultado que nos entrega y tener una labor más sencilla si se desea representar
la salida en decimal como en el caso ocurrido.
Dentro de la simulación, se sugiere ir ejecutando el programa cada cierto tiempo en el caso de
que ocurra algún bug con un elemento o no se encuentre la librería del mismo.

Es aconsejable implementar una fórmula en excel para obtener directamente el código en


hexadecimal de las direcciones y datos al momento de programar para el uso de la memoria
2732 ya que agiliza este proceso debido al tiempo invertido en analizar todos los casos y
codificarlos.

9. Referencias

● Motorola. (1992). FAST and LS TTL Data (5ta ed.).

http://profesores.fi-b.unam.mx/guevarod/practicas/dd/varios/TTL_Databook.pdf

● Floyd, T. L. (2006). FUNDAMENTOS DE SISTEMAS DIGITALES (9.a ed., Vol. 1).

PEARSON EDUCACIÓN S.A.

https://drive.google.com/drive/u/0/search?q=type:pdf%20owner:rarios%40espe.edu.ec

También podría gustarte