Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
College of Engineering
ECE Department
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
}
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);
}
}
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);
}
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:
Z
1
0
1
0
1
0
1
0
1
0
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 */
}
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);
}
}
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
}
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);
}
}