Está en la página 1de 7

Generar la tabla de verdad para que el despegador de 7 segmentos despliegue 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

A, b, C, d, E y F, cuando las entradas booleanas son B3, B2, B1 y B0. Con la tabla obtener los mini
términos y hace la reducción con Mapas de Karnaugh, finalmente hacer la simulación en Proteus.
Pueden compararlo con la comparación con Arduino.

TABLA DE VERDAD

# A B C D A

A ⋅ B∖ 00 01 11 10
0 C0⋅ D 0 0 0 0
1 0
00 0 0 01 1 1 0 1
2 0
01 0 1 10 0 1 1 0
3 0
11 0 1 01 1 0 0 1
4 0
10 1 0 10 0 1 1 0
5 0 1 0 1 0
(¡A*B*!C*!D)+(A*!B*!C*!
6 0 1 1 0 0
D)+(¡A*!B*!C*D)+(A*B*!
7 0 1 1 1 1 1,2,4,7, C*D)
8,11,13 +(¡A*B*C*D)+(A*!B*C*D)+
,14 (¡A*!B*C*!D)+(A*B*C*!D)
8 1 0 0 0 1
9 1 0 0 1 0
A10 1 0 1 0 0
B11 1 0 1 1 1
C12 1 1 0 0 0
D13 1 1 0 1 1
E14 1 1 1 0 1
F15 1 1 1 1 0

MINITERMINOS:

A=m 0+ m2 +m 3 +m 5 +m 6 +m 7+ m 8+ m9 + m A + mC + m E +m F

B=m0 +m1 +m2+ m3 +m4 + m7 + m8 +m9 +m A + md


C=m 0 +m 1+ m3 + m4 + m5 + m6 +m 7 +m 8 +m 9 +m A +m b +m d

D=m0 + m2 +m3 +m5+ m6+ m8 + mb + mC +md + m E

E=m 0+ m2 +m 6 +m 8 +m A +m b +m C +m d + m E +m F

F=m0 +m4 +m5 +m6 +m8+ m9+ mA +mb +mC + mE +m F

G=m2 +m 3 +m 4 +m 5 +m 6 +m 8 +m 9+ m A +m b +m d +m E +m F

MAPAS DE KAMAUGHT:

A(!B3*B1)+(B3*!B0)+(!B3*!B2*!B0)+(!B3*B2*B0)+(B3*B2*B1)+(B3*!B2*!B1)
B 3⋅ B 2 ∖ 00 01 11 10
B1 ⋅ B 0
00 1 0 1 1
01 0 1 0 1
11 1 1 1 0
10 1 1 1 1

B(¡B2*!B3)+(¡B3*!B1*!B0)+(¡B3*B1*B0)+(B3*!B1*B0)+(B3*!B2*!B0)
B 3⋅ B 2 ∖ B 1⋅ B 0 00 01 11 10
00 0 1 0 1
01 1 0 1 0
11 0 1 0 1
10 1 0 1 0

C(B2*!B3)+(¡B2*B3)+(B0*!B1)+(¡B3*!B1*!B0)+(¡B3*B1*B0)
B 3⋅ B 2 ∖ B 1⋅ B 0 00 01 11 10
00 1 1 0 1
01 1 1 1 1
11 1 1 0 1
10 0 1 0 1

D(¡B3*!B2*!B0)+(¡B2*B1*B0)+(B3*!B1*!B0)+(B2*!B1*B0)+(B2*B1*!B0)

B 3⋅ B 2 ∖ B 1⋅ B 0 00 01 11 10
00 1 0 1 1
01 0 1 1 0
11 1 0 0 1
10 1 1 1 0

E(B3*B2)+(B1*!B0)+(B3*!B2*B1)+(¡B2*!B1*!B0)

B 3⋅ B 2 ∖ B 1⋅ B 0 00 01 11 10
00 1 0 1 1
01 0 0 1 0
11 0 0 1 1
10 1 1 1 1

F(¡B0*!B1)+(B3*!B2)+(¡B3*B2*!B1)+(B3*B2*B1)+(B2*B1*!B0)
B 3⋅ B 2 ∖ B 1⋅ B 0 00 01 11 10
00 1 1 1 1
01 0 1 0 1
11 0 0 1 1
10 0 1 1 1
G(B3*!B2)+(¡B0*B1)+(¡B3*B2*!B1)+(B3*B2*B0)+(¡B3*!B2*B1)

B 3⋅ B 2 ∖ B 1⋅ B 0 00 01 11 10
00 0 1 0 1
01 0 1 1 1
11 1 0 1 1
10 1 1 1 1

CIRCUITO
CODIGO FUENTE
//ENTRADA DE CONSTANTES A IMPLEMENTAR
const int Outa = 7;
const int Outb = 6;
const int Outc = 5;
const int Outd = 4;
const int Oute = 3;
const int Outf = 2;
const int Outg = 1;
const int inb0 = 8;
const int inb1 = 9;
const int inb2 = 10;
const int inb3 = 11;
void setup()
{
pinMode(inb0, INPUT_PULLUP);
pinMode(inb1, INPUT_PULLUP);
pinMode(inb2, INPUT_PULLUP);
pinMode(inb3, INPUT_PULLUP);
pinMode(Outa, OUTPUT);
pinMode(Outb, OUTPUT);
pinMode(Outc, OUTPUT);
pinMode(Outd, OUTPUT);
pinMode(Oute, OUTPUT);
pinMode(Outf, OUTPUT);
pinMode(Outg, OUTPUT);
}
void loop()
{
boolean b0 = digitalRead(inb0);
boolean b1 = digitalRead(inb1);
boolean b2 = digitalRead(inb2);
boolean b3 = digitalRead(inb3);
boolean A,B,C,D,E,F,G;
boolean m0=(!b3)&(!b2)&(!b1)&(!b0), m1=(!b2)&(!b1)&(b0), m2=(!b2)&(b1)&(!b0);
boolean m3=(!b2)&(b1)&(b0), m4=(b2)&(!b1)&(!b0), m5=(b2)&(!b1)&(b0);
boolean m6=(b2)&(b1)&(!b0), m7=(b2)&(b1)&(b0);
//APLICACION DE BOOLEANOS PARA CALCULOS DE SALIDAS
A=m0|m2|m3|m5|m6|m7;
B=m0|m1|m2|m3|m4|m7;
C=m0|m1|m3|m4|m5|m6|m7;
D=m0|m2|m3|m5|m6;
E=m0|m2|m6;
F=m0|m4|m5|m6;
G=m2|m3|m4|m5|m6;
if (A)
digitalWrite(Outa, HIGH);
else
digitalWrite(Outa, LOW);
if (B)
digitalWrite(Outb, HIGH);
else
digitalWrite(Outb, LOW);
if (C)
digitalWrite(Outc, HIGH);
else
digitalWrite(Outc, LOW);
if (D)
digitalWrite(Outd, HIGH);
else
digitalWrite(Outd, LOW);
if (E)
digitalWrite(Oute, HIGH);
else
digitalWrite(Oute, LOW);
if (F)
digitalWrite(Outf, HIGH);
else
digitalWrite(Outf, LOW);
if (G)
digitalWrite(Outg, HIGH);
else
digitalWrite(Outg, LOW);
}

También podría gustarte