Sei sulla pagina 1di 19

University of the East

College of Engineering
ECE Department

ECN 516 1ECM

Assignment no. 1

Submitted By:
Lacuna, Rovina R.
20091132400

Grade
Date Submitted:
July 22, 2013

Submitted to:
Engr. Mark Anthony Aseoche
Professor

1. HALF ADDER
INPUT
x
0
0
1
1
PROGRAM CODE:
/*HALF ADDER PROGRAM
ASSIGNMENT*/
#define C 17
#define S 18
#define dread digitalRead
#define dw digitalWrite
#define pm pinMode
int SW1=2;
int SW2=3;
int x = 0;
int y = 0;
void setup()
{
pm(C,OUTPUT);
pm(S,OUTPUT);
pm(SW1,INPUT);
pm(SW2,INPUT);
}
void loop()

OUTPUT
y
0
1
0
1

C
0
0
0
1

S
0
1
1
0

{
x=dread(SW1);
y=dread(SW2);
//apply half adder conditions
if((x == LOW)&&(y == LOW))
{
dw(C,LOW);dw(S,LOW);
}
else if((x == LOW)&&(y == HIGH))
{
dw(C,LOW);dw(S,HIGH);
}
else if((x == HIGH)&(y == LOW))
{
dw(C,LOW);dw(S,HIGH);
}
else if((x == HIGH)&&(y == HIGH))
{
dw(C,HIGH);dw(S,LOW);
}
}

2. FULL ADDER
x
0
0
0
0
1

INPUT
y
0
0
1
1
0

OUTPUT
z
0
1
0
1
0

C
0
0
0
1
0

S
0
1
1
0
1

1
1
1

0
1
1

1
0
1

1
1
1

0
0
1

PROGRAM CODE:
/*FULL ADDER PROGRAM
ASSIGNMENT*/
#define C 17
#define S 18
#define dread digitalRead
#define dw digitalWrite
#define pm pinMode
#define aread analogRead
int SW1=2;
int SW2=3;
int SW3=A0;// analog input 0
int x = 0;
int y = 0;
int z = 0;
void setup()
{
pm(17,OUTPUT); pm(18,OUTPUT);
pm(SW1,INPUT); pm(SW2,INPUT); pm(SW3,INPUT);
}

void loop() {
x=dread(SW1);
y=dread(SW2);
z=aread(SW3);
//apply full
if((x == LOW)&&(y == LOW)&&(z == LOW))// input x=0 y=0 z=0
{
dw(C,LOW);dw(S,LOW);//output C= 0 S=0
}
else if((x == LOW)&&(y == LOW)&&(z == HIGH))// input x=0 y=0 z=1
{
dw(C,LOW);dw(S,HIGH);// C= 0 S=1
}
else if((x == LOW)&(y == HIGH)&&(z == LOW))// input x=0 y=1 z=0
{
dw(C,LOW);dw(S,HIGH);// C= 0 S=1
}
else if((x == LOW)&&(y == HIGH)&&(z == HIGH))// input x=0 y=1 z=1
{
dw(C,HIGH);dw(S,LOW);// C= 1 S=0
}
else if((x == HIGH)&&(y == LOW)&&(z == HIGH))// input x=1 y=0 z=0
{
dw(C,LOW);dw(S,HIGH);// C= 0 S=1
}
else if((x == LOW)&&(y == HIGH)&&(z == HIGH))// input x=1 y=0 z=1
{
dw(C,HIGH);dw(S,LOW);// C= 1 S=0
}
else if((x == HIGH)&(y == HIGH)&&(z == HIGH))//input x=1 y=1 z=0
{
dw(C,HIGH);dw(S,LOW);// C= 1 S=0
}
else if((x == HIGH)&&(y == HIGH)&&(z == HIGH))// input x=1 y=1 z=1
{
dw(C,HIGH);dw(S,HIGH);// C= 1 S=1
}

3. TWO TO FOUR LINE DECODER


INPUT
F
A
B
D0
1
X
X
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1

OUTPUT
D1
D2
1
1
1
1
0
1
1
0
1
1

PROGRAM CODE:
//two to four line decoder w/ enable input

#define D0 11
#define D1 12
#define D2 13
#define D3 14
#define dread digitalRead
#define dw digitalWrite
#define pm pinMode
#define aread analogRead
int SW1=2;
int SW2=3;
int SW3=A0;
int E = 0;
int A = 0;
int B = 0;
void setup()
{
pm(11,OUTPUT);pm(12,OUTPUT);
pm(13,OUTPUT);pm(14,OUTPUT);
pm(SW1,INPUT); pm(SW2,INPUT); pm(SW3,INPUT);
}

D3
1
1
1
1
0

void loop()
{
E=dread(SW1);
A=dread(SW2);
B=aread(SW3);
// two for line decoder conditions
/* E A B | D0 D1 D2 D3
1 X X| 1 1 1 1
0 0 0| 0 1 1 1
0 0 1| 1 0 1 1
0 1 0| 1 1 0 1
0 1 1 | 1 1 1 0 */
if(E == HIGH)
{
dw(D0,HIGH);dw(D1,HIGH);
dw(D2,HIGH);dw(D3,HIGH);
}
else if((E == LOW)&&(A == LOW)&&(B == LOW))// E=0 A=0 B= 0
{
dw(D0,LOW);dw(D1,HIGH);
dw(D2,HIGH);dw(D3,HIGH);
}
else if((E == LOW)&&(A == LOW)&&(B == HIGH))
{
dw(D0,HIGH);dw(D1,LOW);
dw(D2,HIGH);dw(D3,HIGH);
}
else if((E == LOW)&&(A == HIGH)&&(B == LOW))
{
dw(D0,HIGH);dw(D1,HIGH);
dw(D2,LOW);dw(D3,HIGH);
}
else if((E == LOW)&&(A == HIGH)&&(B == HIGH))
{
dw(D0,HIGH);dw(D1,HIGH);
dw(D2,HIGH);dw(D3,LOW);
}
}

4. THREE TO EIGHT LINE DECODER


X
0
0
0
0
1
1
1
1

INPUT
Y
0
0
1
1
0
0
1
1

Z
0
1
0
1
0
1
0
1

D0
1
0
0
0
0
0
0
0

PROGRAM CODE:
// three to eight line decoder
#define dread digitalRead
#define dw digitalWrite
#define pm pinMode
#define aread analogRead
#define D0 11
#define D1 12
#define D2 13
#define D3 14
#define D4 15
#define D5 16
#define D6 17
#define D7 18
int SW1=2;
int SW2=3;
int SW3=A0;
int x = 0;
int y = 0;
int z = 0;
void setup()

D1
0
1
0
0
0
0
0
0

D2
0
0
1
0
0
0
0
0

OUTPUT
D3 D4
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0

D5
0
0
0
0
0
1
0
0

D6
0
0
0
0
0
0
1
0

D7
0
0
0
0
0
0
0
1

{
pm(11,OUTPUT);pm(12,OUTPUT);
pm(13,OUTPUT);pm(14,OUTPUT);
pm(15,OUTPUT);pm(16,OUTPUT);
pm(17,OUTPUT);pm(18,OUTPUT);
pm(SW1,INPUT); pm(SW2,INPUT); pm(SW3,INPUT);
}
void loop()
{
x=dread(SW1);
y=dread(SW2);
z=aread(SW3);
if((x == LOW)&&(y == LOW)&&(z == LOW))
{
dw(D0,HIGH);dw(D1,LOW);dw(D2,LOW);dw(D3,LOW);
dw(D4,LOW);dw(D5,LOW);dw(D6,LOW);dw(D7,LOW);
}
else if((x == LOW)&&(y == LOW)&&(z == HIGH))
{
dw(D0,LOW);dw(D1,HIGH);dw(D2,LOW);dw(D3,LOW);
dw(D4,LOW);dw(D5,LOW);dw(D6,LOW);dw(D7,LOW);
}
else if((x == LOW)&&(y == HIGH)&&(z == LOW))
{
dw(D0,LOW);dw(D1,LOW);dw(D2,HIGH);dw(D3,LOW);
dw(D4,LOW);dw(D5,LOW);dw(D6,LOW);dw(D7,LOW);
}
else if((x == LOW)&&(y == HIGH)&&(z == HIGH))
{
dw(D0,LOW);dw(D1,LOW);dw(D2,LOW);dw(D3,HIGH);
dw(D4,LOW);dw(D5,LOW);dw(D6,LOW);dw(D7,LOW);
}
else if((x == HIGH)&&(y == LOW)&&(z == LOW))
{
dw(D0,LOW);dw(D1,LOW);dw(D2,LOW);dw(D3,LOW);
dw(D4,HIGH);dw(D5,LOW);dw(D6,LOW);dw(D7,LOW);
}

else if((x == HIGH)&&(y == LOW)&&(z == HIGH))


{
dw(D0,LOW);dw(D1,LOW);dw(D2,LOW);dw(D3,LOW);
dw(D4,LOW);dw(D5,HIGH);dw(D6,LOW);dw(D7,LOW);
}
else if((x == HIGH)&&(y == HIGH)&&(z == LOW))
{
dw(D0,LOW);dw(D1,LOW);dw(D2,LOW);dw(D3,LOW);
dw(D4,LOW);dw(D5,LOW);dw(D6,HIGH);dw(D7,LOW);
}
else if((x == HIGH)&&(y == HIGH)&&(z == HIGH))
{
dw(D0,LOW);dw(D1,LOW);dw(D2,LOW);dw(D3,LOW);
dw(D4,LOW);dw(D5,LOW);dw(D6,LOW);dw(D7,HIGH);
}
}

5. EXCESS 3 CODE
A
0
0
0
0
0
0
0
0
1
1

INPUT BCD
B
C
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0

D
0
1
0
1
0
1
0
1
0
1

PROGRAMS CODE:

//BCD TO EXCESS-3 CODE CONVERSION


#define dread digitalRead
#define dw digitalWrite
#define pm pinMode
#define aread analogRead
//define input w,x,y,z

const byte w = 11;


const byte x = 12;
const byte y = 13;

OUTPUT EXCESS 3 CODE


W
X
Y
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0

Z
1
0
1
0
1
0
1
0
1
0

const byte z = 14;


int A = 0;
int B = 0;
int C = 0;
int D = 0;
int SW1 =2;
int SW2 = 3;
int SW3 =A0;
int SW4 = A1;

void setup ()
{
pm(11,OUTPUT);pm(12,OUTPUT);
pm(13,OUTPUT);pm(14,OUTPUT);
pm(SW1,INPUT);pm(SW2,INPUT);
pm(SW3,INPUT);pm(SW4,INPUT);
}
void loop ()
{
A=dread(SW1);
B=dread(SW2);
C=aread(SW3);
D=aread(SW4);

/*apply conditions
A B C D| w x y z
0 0 0 0| 0 0 1 1
0 0 0 1| 0 1 0 0
0 0 1 0| 0 1 0 1
0 0 1 1| 0 1 1 0
0 1 0 0| 0 1 1 1
0 1 0 1| 1 0 0 0
0 1 1 0| 1 0 0 1
0 1 1 1| 1 0 1 0
1 0 0 0| 1 0 1 1
1 0 0 1 | 1 1 0 0 */

if((A == LOW)&&(B == LOW)&&(C == LOW)&&(D == LOW))


{
dw(w,LOW);dw(x,LOW);
dw(y,HIGH);dw(z,HIGH);
}
else if((A == LOW)&&(B == LOW)&&(C == LOW)&&(D == HIGH))
{
dw(w,LOW);dw(x,HIGH);
dw(y,LOW);dw(z,LOW);

}
else if((A == LOW)&&(B == LOW)&&(C == HIGH)&&(D == LOW))
{
dw(w,LOW);dw(x,HIGH);
dw(y,LOW);dw(z,HIGH);
}
else if((A == LOW)&&(B == LOW)&&(C == HIGH)&&(D == HIGH))
{
dw(w,LOW);dw(x,HIGH);
dw(y,HIGH);dw(z,LOW);
}
else if((A == LOW)&&(B == HIGH)&&(C == LOW)&&(D == LOW))
{
dw(w,LOW);dw(x,HIGH);
dw(y,HIGH);dw(z,HIGH);
}
else if((A == LOW)&&(B == HIGH)&&(C == LOW)&&(D == HIGH))
{
dw(w,HIGH);dw(x,LOW);
dw(y,LOW);dw(z,LOW);
}
else if((A == LOW)&&(B == HIGH)&&(C == HIGH)&&(D == LOW))
{

dw(w,HIGH);dw(x,LOW);
dw(y,LOW);dw(z,HIGH);
}
else if((A == LOW)&&(B == HIGH)&&(C == HIGH)&&(D == HIGH))
{
dw(w,HIGH);dw(x,LOW);
dw(y,HIGH);dw(z,LOW);
}
else if((A == HIGH)&&(B == LOW)&&(C == LOW)&&(D == LOW))
{
dw(w,HIGH);dw(x,LOW);
dw(y,HIGH);dw(z,HIGH);
}
else if((A == HIGH)&&(B == LOW)&&(C == LOW)&&(D == HIGH))
{
dw(w,HIGH);dw(x,HIGH);
dw(y,LOW);dw(z,LOW);
}
}

6. FIGURE 4.2 TRUTH TABLE


A
0
0
0
0
1
1
1
1

INPUT
B
0
0
1
1
0
0
1
1

C
0
1
0
1
0
1
0
1

PROGRAM CODE:

//PROBLEM No.6
#define dread digitalRead
#define dw digitalWrite
#define pm pinMode
#define aread analogRead
#define F2 11
#define FC2 12
#define T1 13
#define T2 14
#define T3 15
#define F1 16
int SW1=2;

F2
0
0
0
1
0
1
1
1

F`2
1
1
1
0
1
0
0
0

OUTPUT
T1
T2
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1

T3
0
1
1
0
1
0
0
0

F1
0
1
1
0
1
0
0
1

int SW2=3;
int SW3=A0;// analog input 0
int A = 0;
int B = 0;
int C = 0;
void setup()
{
pm(11,OUTPUT); pm(12,OUTPUT);
pm(13,OUTPUT); pm(14,OUTPUT);
pm(15,OUTPUT); pm(16,OUTPUT);
pm(SW1,INPUT); pm(SW2,INPUT); pm(SW3,INPUT);
}
void loop()
{
A=dread(SW1);
B=dread(SW2);
C=aread(SW3);
//apply conditions

if((A == LOW)&&(B == LOW)&&(C == LOW))


{
dw(F2,LOW);dw(FC2,HIGH);dw(T1,LOW);
dw(T2,LOW);dw(T3,LOW);dw(F1,LOW);

}
else if((A == LOW)&&(B == LOW)&&(C == HIGH))
{
dw(F2,LOW);dw(FC2,HIGH);dw(T1,HIGH);
dw(T2,LOW);dw(T3,HIGH);dw(F1,HIGH);
}
else if((A == LOW)&&(B == HIGH)&&(C == LOW))
{
dw(F2,LOW);dw(FC2,HIGH);dw(T1,HIGH);
dw(T2,LOW);dw(T3,HIGH);dw(F1,HIGH);
}
else if((A == LOW)&&(B == HIGH)&&(C == HIGH))
{
dw(F2,HIGH);dw(FC2,LOW);dw(T1,HIGH);dw(T2,LOW);
dw(T3,LOW);dw(F1,LOW);
}
else if((A == HIGH)&&(B == LOW)&&(C == LOW))
{
dw(F2,LOW);dw(FC2,HIGH);dw(T1,HIGH);
dw(T2,LOW);dw(T3,HIGH);dw(F1,HIGH);
}
else if((A == HIGH)&&(B == LOW)&&(C == HIGH))
{

dw(F2,HIGH);dw(FC2,LOW);dw(T1,HIGH);
dw(T2,LOW);dw(T3,LOW);dw(F1,LOW);
}
else if((A == HIGH)&&(B == HIGH)&&(C == LOW))
{
dw(F2,HIGH);dw(FC2,LOW);dw(T1,HIGH);
dw(T2,LOW);dw(T3,LOW);dw(F1,LOW);
}
else if((A == HIGH)&&(B == HIGH)&&(C == HIGH))
{
dw(F2,HIGH);dw(FC2,LOW);dw(T1,HIGH);
dw(T2,HIGH);dw(T3,LOW);dw(F1,HIGH);
}
}

Potrebbero piacerti anche