1. OBJETIVO.
Diseñar un circuito que realice las operaciones aritméticas de suma y resta de dos números enteros de un dígito, ya sea ambos positivos, negativos o combinación de los mismos, mediante aritmética digital implementado con circuitos integrados y compuertas lógicas.
2. MARCO TEÓRICO.
2.1. Aritmética digital.
Las computadoras y calculadoras digitales realizan las operaciones aritméticas con números representados en forma binaria. El tema de la aritmética digital puede ser muy complejo si se quieren comprender los diversos métodos de cálculo y la teoría de cada uno de ellos. Por fortuna, este nivel de conocimiento no es indispensable para la mayoría de los profesionales, cuando menos hasta que se convierten en programadores expertos.
La suma de dos números binarios se lleva acabo exactamente en la misma forma que con los números decimales. De hecho, la suma binaria es más simple, porque solo cuenta con dos dígitos.
La suma es la operación aritmética más importante en los sistemas digitales, como se sabe, las operaciones de resta, multiplicación y división que se llevan a cabo en la mayoría de las computadoras y calculadoras en realidad tienen a la suma como operación básica.
![]() |
Figura 1. Aritmética Digital. |
2.2. Representación de números con signo.
En las computadoras digitales los números binarios se representan mediante un conjunto de dispositivos de almacenamiento binario (Flip Flop) Cada dispositivo representa un bit. Debido a que la mayoría de las computadoras y calculadoras digitales manejan tanto números negativos como positivos, se requiere de algún medio para representar el signo del número (+ o -). Por lo general esto se lleva a cabo agregando al número otro bit, llamado el bit de signo.
![]() |
Figura 2. Representación de números binarios con signo. |
En general el acuerdo al que se ha llegado es que un 0 en el bit de signo representa un número positivo, y un 1 en el bit de signo, representa un número positivo.
El sistema más común para representar números binarios con signo es el sistema de complemento a 2.
El complemento a 2 de un número binario se forma tomando el complemento a 1 del número y agregándole 1 a la posición del bit menos significativo. Para el caso del complemento a 1, se obtiene cambiando cada 0 a un 1 y cada 1 a un 0. En otras palabras, se cambia cada bit del número por su complemento.
![]() |
Figura 3. Sistema de complemento a 2. |
2.3. Sumador-restador de 4 bits.
El sumador binario completo de n bits se basa en el sumador binario completo de 1 bit. Su gráfico a continuación
![]() |
Figura 4. Sumador completo. |
El sumador completo de 4 bits es una concatenación de 4 sumadores binarios completos de 1 bit, como se muestra en el gráfico inferior. La concatenación se realiza a través de los terminales de acarreo saliente (Cin) y acarreo entrante (Cout)
![]() |
Figura 5. Sumador de 4 bits |
Un sumador de 4 bits: (n=4)
El sumador que se muestra suma dos números binarios de 4 bits cada uno.
A = A3A2A1A0 y
B = B3B2B1B0,
Entonces la suma será
S = Cout3S3S2S1S0
El bit menos significativo en los dos sumandos A y B es Ao y Bo y el bit más significativo es A3 y B3.
![]() |
Figura 6. Suma A + B. |
La suma se inicia en el sumador completo 0 (el inferior) con las suma de Ao y Bo, si esta suma tuviese acarreo (Cout=1) este pasaría al sumador 1, y así sucesivamente hasta llegar al sumador 3 en la parte superior del gráfico.
Si el sumador superior tiene acarreo ("1"), éste se refleja en la suma al lado izquierdo de la sumatoria final.
El acarreo entrante inferior no se conecta.
2.4. Teclado matricial.
Un teclado matricial es un arreglo de botones conectados en filas y columnas, de modo que se pueden leer varios botones con el mínimo número de pines requeridos. Un teclado matricial 4×4 solamente ocupa 4 líneas n para las filas y otras 4 líneas para las columnas. Si asumimos que todas las columnas y filas inicialmente están en alto (1 lógico), la pulsación de un botón se puede detectar al poner cada fila a en bajo (0 lógico) y checar cada columna en busca de un cero, si ninguna columna está en bajo entonces el 0 de las filas se recorre hacia la siguiente y así secuencialmente.
![]() |
Figura 7. Estructura interna de un teclado matricial. |
Un modo simple de detectar la tecla presionada es incrementar una variable con la cuenta de las teclas revisadas, de este modo al detectar una pulsación el valor de la cuenta será el valor de la tecla presionada. Si al final no se presionó ninguna tecla la variable se pone a cero y la cuenta vuelve a comenzar.
2.5. 74C922.
Actualmente existen Circuitos Integrados diseñados específicamente para leer las entradas desde un teclado matricial, tal es el caso del Circuito 74C922, dicho circuito es un decodificador de teclado hexadecimal, contiene como entradas las líneas y las columnas del teclado y como salida 4 bits correspondientes a todas las teclas posibles.
Su distribución de pines es
![]() |
Figura 8. Distribución de pines de un contador de teclado matricial. |
Básicamente su funcionamiento es que el chip se encuentra escaneando el teclado, esperando que una tecla se presione. Cuando una tecla del teclado es presionado, el pin 12 del integrado se pone a1. Entonces se envía a los pines 14-17 un número binario de 4 bits correspondiente al botón presionado. El chip utiliza dos capacitores en los pines 5 y 6. El capacitor del pin 5 es para escanear y el capacitor del pin 6 es para anti-rebotes. Se debe cumplir la condición de que el capacitor anti-rebote sea 10 veces más grande que el de escaneo.
2.6. Latch o candado.
Un latch o candado es un circuito que tiene dos estados estables y se puede utilizar para almacenar información de estado. El circuito se puede hacer para cambiar el estado de las señales aplicadas a una o más entradas de control y tendrá una o dos salidas. Los latch son un componente fundamental de los sistemas electrónicos digitales utilizados en las computadoras, las comunicaciones, y muchos otros tipos de sistemas.
Los flip-flops y los cierres se utilizan como elementos de almacenamiento de datos. Almacenamiento de datos pueden ser utilizados para el almacenamiento de estado, y un circuito que se describe como la lógica secuencial. Cuando se utiliza en una máquina de estados finitos, la producción y el siguiente estado depende no sólo de su corriente de entrada, sino también en su estado actual (y por lo tanto, las entradas anteriores.) También puede ser utilizado para conteo de pulsos, y para la sincronización variable - tiempo las señales de entrada a algunas señal de temporización de referencia.
Los flip-flops pueden ser simples (transparente u opaco) o velocidad de reloj (síncrono o borde accionado). Los simples se denominan comúnmente cierres (La palabra del cierre se utiliza principalmente para los elementos de almacenamiento, mientras que los dispositivos de velocidad de reloj se describen como tapa –flop).
2.7. Compuertas lógicas.
Una compuerta lógica es un dispositivo físico idealizado siendo la aplicación de una función de Boole, es decir, que realiza una operación lógica en una o más entradas lógicas y produce una salida lógica única. Dependiendo del contexto, el término puede referirse a una puerta lógica ideal, que tiene por ejemplo el tiempo de subida a cero y sin límite de fan-in y fan-out, o puede referirse a un dispositivo físico no ideal.
En la implementación de las ecuaciones lógicas que resuelven los procesos en los que se aplica el álgebra de Boole, se utilizan diversas operaciones o funciones lógicas entre las que se citan las tres fundamentales: AND, OR, NOT.
Función Lógica AND. Puerta AND:
La operación lógica AND, producen una variable de salida, que sólo toma el nivel lógico 1 o estado alto o verdadero, si todas ellas tienen dicho nivel o estado. La operación lógica AND también recibe el nombre de producto lógico porque se representa mediante un punto, igual que la operación convencional de multiplicación.
La expresión simbólica de dicha ecuación en el álgebra de Boole es la siguiente:
X = A · B
Tabla de verdad que describe la ecuación lógica X = A. B
Función Lógica OR:
Cuando distintas variables lógicas se combinan mediante la función OR, el resultado toma el estado ALTO si alguna de ellas tiene dicho estado. A la función OR también se le denomina Suma Lógica ya que se representa con el símbolo suma (+).
A continuación se representa la tabla de verdad que representa a la ecuación anterior.
Ecuación lógica de la función OR para dos variables de entrada
X= A + B
Función Lógica NOT:
Se trata de una operación que sólo maneja una variable de entrada y otra de salida. La salida toma el estado opuesto o inverso del que tiene la entrada. Por este motivo, también se le llama Función Inversión o negación.
Tabla de Verdad de la Puerta Inversora NOT
Compuerta XOR o compuerta OR Exclusiva.
La compuerta lógica XOR realiza una comparación de las entradas
siendo el resultado 0 si las entradas son iguales o 1 cuando son diferentes.
Debemos prestar atención para no confundir el funcionamiento porque esperamos que el resultado sea 1 cuando son iguales.
siendo el resultado 0 si las entradas son iguales o 1 cuando son diferentes.
Debemos prestar atención para no confundir el funcionamiento porque esperamos que el resultado sea 1 cuando son iguales.
Símbolo de la compuerta "XOR":
Tabla de verdad de las compuertas "XOR":
2.8. Dispositivos Lógicos Programables.
Un dispositivo lógico programable, o PLD (Programmable Logic Device), es un dispositivo cuyas características pueden ser modificadas y almacenadas mediante programación. El principio de síntesis de cualquier dispositivo lógico programable se fundamenta en el hecho de que cualquier función booleana puede ser expresada como una suma de productos. El dispositivo programable más simple es el PAL (Programmable Array Logic). El circuito interno de un PAL consiste en un arreglo, o matriz, de compuertas AND y un arreglo de compuertas OR. El arreglo AND es programable mientras que el OR generalmente es fijo. Mediante una matriz de conexiones se seleccionan cuales entradas serán conectadas al arreglo AND, cuyas salidas son conectadas al arreglo OR y de esta manera obtener una función lógica en forma de suma de productos. Una matriz de conexiones es una red de conductores distribuidos en filas y columnas con un fusible en cada punto de intersección.
La mayoría de los PLDs están formados por una matriz de conexiones, una matriz de compuertas AND, y una matriz de compuertas OR y algunos, además, con registros. Con estos recursos se implementan las funciones lógicas deseadas mediante un software especial y un programador. Las matrices pueden ser fijas o programables.
3. DESARROLLO.
Como estrategia para cumplir con el objetivo planteado al inicio, dividimos el proyecto en tres etapas diferentes, las cuales son descritas a continuación:
· Etapa de entrada de datos del sumador/restador
La primera parte del proyecto grupal, el cual consistió en un sumador/restador, es la lectura de datos con el teclado matricial. Este teclado nos permite introducir números desde el 0 hasta el 9. Estos datos son operados gracias al circuito integrado 74C922N, dicho integrado nos permite hacer la decodificación del teclado matricial a un código binario, con lo que la manipulación de los datos es más sencilla. Las salidas del decodificador son conectadas al circuito integrado DM74LS573N con el que podemos retener los datos introducidos. Utilizamos dos de estos circuitos integrados para que de esta manera con el mismo teclado podamos habilitar los datos que se sumarán o restarán según sea necesario. Las salidas de cada latch serán conectadas a la siguiente etapa de operación.
Siendo entonces, el siguiente diagrama eléctrico: