










Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Circuito aritmetico de 4 bits que realiza +-A+-B mediante el uso de multiplexores(mux)
Tipo: Guías, Proyectos, Investigaciones
1 / 18
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!











● Diseñar un circuito aritmetico que realice operaciones aritmeticas entre la variable A
y B, implemetando una parte en software y la otra en hadware con ayuda de Arduino.
● Simular y validar matemáticamente los bloques de acondicionamiento y operaciones
en complemento a dos (A+B, A-B, - A+B, - A-B) mediante software, asegurando el
correcto procesamiento de los datos binarios.
● Establecer la comunicación serial con Arduino para transferir y validar los datos
virtuales en el circuito físico.
● Se necesita disenar un circuito que realice las operaciones aritmeticas A+B, A-B,
simulador proteus y la otra parte en el protoboard mediante un Arduino.
Para entender el diseno y su funcionamiento primero armaremos el circuito completo en
proteus, donde explicaremos la logica que seguira nuestro circuito.
Ilustración 1. Circuito aritemetico en proteus
Ilustración 3. Bloque 2
Para completar la ecuación de - A = A + 1, no basta con invertir los bits en el Bloque 1; hace
falta sumarle el 1.
Este circuito conecta la línea del SELECTOR directamente al acarreo de entrada del
sumador.
en una entrada, 0 en la otra y C 0 = 0.
Salida U5 = A + 0 + 0 = A
una entrada, 0 en la otra y el SELECTOR inyecta un 1 en el acarreo de entrada.
Salida U5 = A + 0 + 1 = A + 1 = - A
Ilustración 4. Bloque 3
Para poder realizar las operaciones donde la B es negativa, necesitamos aplicar el mismo
principio del complemento a dos: - B = B + 1.
invierten el bus entregando B.
datos se va a tierra. La línea de SELECTOR B se conecta directamente al acarreo de
entrada del sumador.
La salida de U11 cumple que:
Ilustración 5. Bloque 4
Para este bloque es importante analizar la logica que exite para que el led del signo sea el
correcto en cada uno de los casos. Para ello utilizaremos mapas de karnaugh.
Caso 1: Suma pura (SA=0, SB=0)
Casos 2 y 3: Restas cruzadas (SA ≠ SB)
negativo, lo cual ocurre cuando no hay acarreo final, es decir, si C4 = 0 → LED = 1.
Si C4 = 1 → LED = 0.
Caso 4: Suma de negativos (SA=1, SB=1)
cero, el LED se mantiene 1 (Encendido) para indicar la condición negativa/desborde
inferior.
Podemos compactar esta expresión utilizando compuertas XOR para que sea mucho más
fácil de cablear en tu protoboard:
LED Universal =
𝑨
𝑩
𝑨
𝑩
𝟒
Bien una vez explicada la logica de nuestro diseno del circuito aritmetico procederemos a
realizar lo requerido de esta practica y es que una parte del circuito este hecho en software y
la otra en hardware, conectadas mediante un Arduino.
Ilustración 6. Circuito aritmetico con Arduino
Para validar el comportamiento del sistema, los bloques de acondicionamiento (Bloques 1, 2 y 3) se
ejecutan de manera virtual dentro del software Proteus, mientras que la red combinacional final de
salida (Bloques 4 y 5) se implementa en hardware real sobre un protoboard. La sincronización se
realiza mediante dos microcontroladores ATmega328P configurados en un enlace serial asíncrono a
9600 bps.
Byte 1 (datoA): [ 0 | 0 | 0 | PinC0 | A3 | A2 | A1 | A0 ]
Byte 2 (datoB): [ 0 | 0 | 0 | PinCb | B3 | B2 | B1 | B0 ]
Este programa se ejecuta en el entorno virtual. Lee los buses intermedios calculados por los
esquemáticos de Proteus, serializa los bits individuales en variables estructuradas de 8 bits (bit-
packing) y las transmite por el puerto serial virtual.
// ==========================================
// CÓDIGO 1: ARDUINO TRANSMISOR (PROTEUS)
// ==========================================
const int pinesEntradaA[] = {2, 3, 4, 5};
const int pinesEntradaB[] = {6, 7, 8, 9};
const int pinEntradaC0 = 10;
const int pinEntradaCb = 11;
void setup() {
Serial.begin(9600); // Inicialización del puerto serial a 9600 bps
// Configuración de los buses de datos como entradas
for(int i = 0; i < 4; i++) {
pinMode(pinesEntradaA[i], INPUT);
pinMode(pinesEntradaB[i], INPUT);
}
// Configuración de las líneas de acarreo de control como entradas
pinMode(pinEntradaC0, INPUT);
pinMode(pinEntradaCb, INPUT);
}
void loop() {
byte datoA = 0;
byte datoB = 0;
// Adquisición y empaquetamiento del vector de datos A (Bits 0 a 3)
for(int i = 0; i < 4; i++) {
if(digitalRead(pinesEntradaA[i]) == HIGH) {
bitWrite(datoA, i, 1);
}
}
// Inserción de la línea de control PinC0 en el Bit 4 del registro A
if(digitalRead(pinEntradaC0) == HIGH) {
bitWrite(datoA, 4, 1);
}
// Adquisición y empaquetamiento del vector de datos B (Bits 0 a 3)
for(int i = 0; i < 4; i++) {
if(digitalRead(pinesEntradaB[i]) == HIGH) {
bitWrite(datoB, i, 1);
}
}
// Inserción de la línea de control PinCb en el Bit 4 del registro B
if(digitalRead(pinEntradaCb) == HIGH) {
bitWrite(datoB, 4, 1);
}
// Transmisión asíncrona de la trama binaria estructurada
Serial.write(datoA);
Serial.write(datoB);
delay(50); // Período de muestreo para estabilidad de la simulación
}
}
}
A través de esta arquitectura Hardware-in-the-Loop, las señales físicas decodificadas excitan en
tiempo real a las compuertas reales y al sumador terminal U13 , permitiendo que el cálculo lógico-
matemático del desborde se verifique directamente sobre los diodos emisores de luz instalados en el
laboratorio.
No hubo dificultades en el armado del circuito.
Establecemos para todas las pruebas los siguientes vectores de entrada fijos en los
interruptores:
5.1. Caso 1: Suma Directiva (A + B)
2
2
4 ,U
3
2
2
4
2
2
4
2
Evaluamos la función de la red con los valores obtenidos:
U
4 ,U
4 ,U
efectivo
𝑇
2
efectivo
Suma Nominal = 0101
2
2
2
2
10
Acarreo de Salida: 𝐶
4 ,U
3 : 0
3
2
1
0
2
D
4 ,U
Ilustración 6. Prueba de escritorio 1
5.2. Caso 2: Resta Aritmética (A - B)
Ilustración 7. Prueba de escritorio 1
5.3. Caso 3: Suma con Opuesto (-A + B)
𝐴
𝐵
2
y el sumador U
añade el acarreo 𝐶
0 ,U
2
2
2
2
10
en complemento a 2)
Acarreo saliente del bloque 2: 𝐶
4 ,U
3
𝐵
3
2
10
2
4
2
2
4
2
U
U
4 ,U
efectivo
𝑇
recibidos:
Suma Nominal = 1011
2
2
2
3
2
Acarreo de Salida: 𝐶
4 ,U
3 : 0
2
D
4 ,U
= 1 − −> D5=1 (LED de signo activo).
Enfoque Matemático del Resultado:
Como el LED D5 se encuentra encendido, el valor de salida es negativo y está expresado en
complemento a dos. Para comprobar su valor decimal:
Valor = −( 1110
2
2
2
10
Lo cual valida perfectamente la operación aritmética: - 5 + 3 = - 2.
Ilustración 8. Prueba de escritorio 3
5.4. Caso 4: Suma de Negativos (-A - B)
Enfoque Matemático del Resultado:
En este estado de doble negación crítica controlado por la lógica combinacional síncrona del
Bloque 4, el bus final de datos representa el desborde negativo directo:
Magnitud = 1010
2
10
Demostrando la exactitud del cálculo electrónico para la operación: - 5 + (-3) = - 8.
Ilustración 9. Prueba de escritorio 4
Se comprobó mediante análisis matemático y pruebas de escritorio que la
implementación híbrida de compuertas XOR como inversores controlados y
sumadores binarios 74LS283 permite ejecutar con exactitud operaciones binarias con
signo de suma y resta (A+B, A-B, - A+B, - A-B). El diseño demostró que el
acoplamiento combinacional de desborde y la manipulación de los acarreos
intermedios garantizan la integridad matemática de los resultados en un rango finito
de representación de magnitudes.
Dado que la arquitectura implementada ya resuelve con éxito las operaciones de
suma, resta y complementación mediante el control de acarreos y compuertas XOR,
se recomienda expandir conceptualmente este diseño hacia una ALU completa. Esto
se puede lograr integrando compuertas AND y OR en paralelo a la etapa de
visualización y utilizando un multiplexor digital (como el 74LS153) gobernado por
nuevas líneas de selección para decidir si la salida mostrará una operación aritmética
o una función lógica bit a bit.
Fletcher, W. I. (1980). An Engineering Approach to Digital Design****. Prentice-Hall.
(Capítulo 2: Number Systems and Codes / Digital Logic).
Google Gemini. (2026, 09 de marzo). Explicación sobre Algebra de boole****.
[Respuesta de IA]. https://gemini.google.com
Texas Instruments. (1988). SN74LS08 Quadruple 2-Input Positive-AND Gates
(Hoja de datos). Recuperado de https://www.alldatasheet.com
Texas Instruments. (1988). SN74LS04 Quadruple 2-Input Positive-AND Gates
(Hoja de datos). Recuperado de https://www.alldatasheet.com
Texas Instruments. (1988). SN74LS32 Quadruple 2-Input Positive-AND Gates
(Hoja de datos). Recuperado de https://www.alldatasheet.com