Beruflich Dokumente
Kultur Dokumente
IV Sem EC/TC/EE/IT/BME
m
co
p.
ou
gr
ts
en
ud
st
ity
ARUNKUMAR G
.c
Cell: 9731311770
w
w
e-mail: gowda.arun@gmail.com
m
MOV R0,#20H MOV R0,#20H
MOV R1,#30H MOV R1,#30H
co
UP: UP:
MOV A,@R0 MOV A,@R0
p.
MOV @R1,A XCH A,@R1
INC R0 MOV @R0,A
ou
INC R1 INC R0
DJNZ R2,UP INC R1
gr
END DJNZ R2,UP
END
I/P:
tsI/P:
en
O/P:
ud
st
O/P:
ity
.c
w
w
w
m
MOV R0,#20H MOV R0,#20H
MOV R1,#40H MOV R1,#40H
co
UP: UP:
MOV A,@R0 MOV A,@R0
p.
ADDC A,@R1 SUBB A,@R1
MOV @R1,A MOV @R1,A
ou
INC R0 INC R0
INC R1 INC R1
gr
DJNZ R7,UP DJNZ R7,UP
JNC NOCARRY ts JNC NOCARRY
INC R2 INC R2
NOCARRY: MOV A,R2
en
NOCARRY: MOV A,R2
MOV @R1,A MOV @R1,A
END END
ud
I/P: I/P:
st
ity
.c
O/P: O/P:
w
w
w
m
MOV R0,#30H MOV R0,#30H
MOV A,@R0 MOV A,@R0
co
INC R0 INC R0
UP: MOV B,@R0 UP: MOV B,@R0
p.
CJNE A,B,NEXT CJNE A,B,NEXT
NEXT: JC CARRY NEXT: JNC NOCARRY
ou
MOV A,@R0 MOV A,@R0
CARRY: INC R0 NOCARRY: INC R0
gr
DJNZ R3,UP DJNZ R3,UP
MOV @R0,A MOV @R0,A
END
ts END
en
I/P: I/P:
ud
st
O/P: O/P:
ity
.c
w
w
w
m
MOV B,#0AH MOV B,#10H
DIV AB DIV AB
co
MOV 33H,B MOV R2,B
MOV B,#0AH MOV B,#0AH
p.
DIV AB MUL AB
MOV 32H,B ADD A,R2
ou
MOV 31H,A MOV 21H,A
END END
gr
I/P: I/P:
ts
en
O/P:
ud
O/P:
st
ity
.c
w
w
w
m
ANL A,#0F0H SUBB A,#30H
SWAP A SWAP A
co
ADD A,#30H MOV R2,A
MOV 31H,A MOV A,31H
p.
MOV A,30H SUBB A,#30H
ANL A,#0FH ADD A,R2
ou
ADD A,#30H MOV 32H,A
MOV 32H,A END
gr
END
I/P:
ts
I/P:
en
ud
O/P:
O/P:
st
ity
.c
w
w
w
LOGIC GATES
HALF ADDER
AND, NAND, OR & NOR
m
ANL C,P1.6 ANL C,/P1.6
MOV P1.5,C MOV P1.5,C
co
CPL C MOV C,P1.7
MOV P1.4,C CPL C
p.
MOV C,P1.7 ANL C,P1.6
ORL C,P1.6 MOV P1.4,C
ou
MOV P1.3,C ORL C,P1.5
CPL C MOV P1.3,C
gr
MOV P1.2,C MOV C,P1.7
END ts ANL C,P1.6
MOV P1.2,C
en
END
I/O: I/O:
ud
0 0 0 1 0 1 0 0 0 0
st
0 1 0 1 1 0 0 1 0 1
ity
1 0 0 1 1 0 1 0 0 1
1 1 1 0 1 0 1 1 1 0
.c
w
w
w
m
ANL C,/P1.6 CPL C
MOV P1.5,C ANL C,/P1.6
co
MOV C,P1.7 MOV P1.5,C
CPL C MOV C,P1.7
p.
ANL C,P1.6 ANL C,P1.6
MOV P1.4,C MOV P1.4,C
ou
ORL C,P1.5 ORL C,P1.5
MOV P1.3,C MOV P1.3,C
gr
END END
I/O:
ts I/O:
en
A B S=AB + AB A B S=AB + AB
0 0 0 0 0 0
ud
0 1 1 0 1 1
1 0 1 1 0 1
st
1 1 0 1 1 0
ity
.c
w
w
w
ASCENDING DESCENDING
m
MAIN: MOV R0,#30H MAIN: MOV R0,#30H
MOV R6,#03H MOV R6,#03H
co
UP: MOV A,@R0 UP: MOV A,@R0
INC R0 INC R0
p.
MOV B,@R0 MOV B,@R0
CJNE A,B,NEXT CJNE A,B,NEXT
ou
NEXT: NEXT:
JC NOEXCHANGE JNC NOEXCHANGE
gr
MOV @R0,A MOV @R0,A
DEC R0 ts DEC R0
MOV @R0,B MOV @R0,B
INC R0 INC R0
en
NOEXCHANGE: NOEXCHANGE:
DJNZ R6,UP DJNZ R6,UP
ud
I/P: I/P:
ity
.c
w
O/P: O/P:
w
w
m
MOV TH1,#-3 MOV TH1,#-3
MOV SCON,#50H MOV SCON,#50h
co
SETB TR1 SETB TR1
UP: MOV A, #'S' REPEAT:
p.
ACALL SEND MOV DPTR, #msg
MOV A, #'T' UP: CLR A
ou
ACALL SEND MOVC A,@A+DPTR
MOV A, #'J' JZ REPEAT
gr
ACALL SEND ACALL SEND
MOV A, #'I' INC DPTR
ACALL SEND
ts SJMP UP
MOV A, #'T'
en
ACALL SEND SEND:
SJMP UP MOV SBUF,A
ud
END
w
O/P: O/P:
w
w
ORG 00H
ORG 00H
MOV TMOD, #01H
MOV TMOD, #01H
AGAIN:
m
AGAIN:
MOV TL0,#00H
MOV TL0,#3EH
co
MOV TH0,#00H
MOV TH0,#0B8H
CPL P1.7
CPL P1.7
ACALL DELAY
p.
ACALL DELAY
SJMP AGAIN
SJMP AGAIN
ou
DELAY:
DELAY:
SETB TR0
SETB TR0
gr
HERE: JNB TF0, HERE
HERE: JNB TF0, HERE
CLR TR0
CLR TR0
CLR TF0
ts CLR TF0
RET
en
RET
END
END
ud
O/P:
O/P:
st
ity
.c
w
w
w
m
MOV P1,A MOV P1,A
INC A INC A
co
ACALL DELAY ACALL DELAY
SJMP UP SJMP UP
p.
DELAY: DELAY:
ou
MOV R0,#60H MOV TL0,#00H
MOV R1,#0FFH MOV TH0,#00H
gr
MOV R2,#0FFH
SETB TR0
BACK: ts HERE: JNB TF0,HERE
DJNZ R2,BACK
DJNZ R1,BACK CLR TR0
en
DJNZ R0,BACK CLR TF0
RET
RET
ud
END
END
st
ity
.c
w
w
w
m
UP:
MOV P1,A MOV P1,A
co
DEC A DEC A
ACALL DELAY ACALL DELAY
SJMP UP SJMP UP
p.
ou
DELAY: DELAY:
MOV R0,#60H MOV TL0,#00H
gr
MOV R1,#0FFH MOV TH0,#00H
MOV R2,#0FFH ts SETB TR0
BACK:
HERE: JNB TF0,HERE
en
DJNZ R2,BACK
DJNZ R1,BACK CLR TR0
DJNZ R0,BACK CLR TF0
ud
RET
RET
END
st
END
ity
.c
w
w
w
m
ADD A,#01H ADD A,#01H
co
DA A DA A
ACALL DELAY ACALL DELAY
SJMP UP SJMP UP
p.
ou
DELAY: DELAY:
MOV R0,#60H MOV TL0,#00H
gr
MOV R1,#0FFH MOV TH0,#00H
MOV R2,#0FFH ts SETB TR0
BACK:
HERE: JNB TF0,HERE
en
DJNZ R2,BACK
DJNZ R1,BACK CLR TR0
DJNZ R0,BACK CLR TF0
ud
RET
RET
END
st
END
ity
.c
w
w
w
m
UP:
MOV P1,A MOV P1,A
co
ADD A,#99H ADD A,#99H
DA A DA A
ACALL DELAY ACALL DELAY
p.
SJMP UP SJMP UP
ou
DELAY: DELAY:
MOV R0,#60H MOV TL0,#00H
gr
MOV R1,#0FFH MOV TH0,#00H
MOV R2,#0FFH
SETB TR0
BACK:
ts
HERE: JNB TF0,HERE
DJNZ R2,BACK
en
DJNZ R1,BACK CLR TR0
DJNZ R0,BACK CLR TF0
ud
RET
RET
END
END
st
ity
.c
w
w
w
ORG 00H
ORG 00H MOV A,20H
m
MOV A,20H
MOV B,A
MOV B,A
MUL AB
co
MUL AB
MOV 21H,A
MOV 21H,B
MOV 22H,B
p.
MOV 22H,A
MOV A,20H
END
ou
MOV B,21H
I/P: MUL AB
gr
MOV 23H,A
MOV 24H,B
ts MOV A,20H
MOV B,22H
en
O/P:
MUL AB
MOV 25H,A
ud
MOV 26H,B
MOV 32H,23H
st
MOV A,24H
ity
ADD A,25H
MOV A,26H
I/P:
ADDC A,#00H
w
MOV 30H,A
w
END
O/P:
w
m
go2: ADD A,35H
MUL AB
JNC go3
co
MOV 30H,A
MOV 31H,B INC R1
p.
MOV B,23H
JNC go4
ou
MUL AB
INC R1
MOV 32H,A
MOV 33H,B go4: MOV 41H,A
gr
MOV A,21H MOV A,37H
MOV B,22H
MUL AB
ts ADD A,R1
MOV 40H,A
en
MOV 34H,A
MOV 35H,B END
MOV A,21H
ud
MOV B,23H
I/P:
MUL AB
st
MOV 36H,A
ity
MOV 37H,B
MOV 43H,30H
MOV A,31H
.c
Intermediate O/P:
ADD A,32H
w
JNC go
INC R0
w
ORG 00H
MOV A,20H
m
ANL A,21H
MOV 32H,A
co
MOV A,20H
ORL A,21H
p.
MOV 33H,A
MOV A,20H
ou
XRL A,21H
MOV 34H,A
gr
MOV A,20H
CPL A ts
MOV 35H,A
MOV A,20H
en
CLR A
MOV 36H,A
ud
MOV A,20H
st
SWAP A
MOV 37H,A
ity
MOV A,20H
RR A
.c
MOV 38H,A
MOV A,20H
w
RL A
w
MOV 39H,A
END
w
m
#include<REG51XD2.H>
sbit incr=P3^2;
co
sbit decr=P3^3;
void main()
p.
{
ou
unsigned int i=0x80;
P0=i; //to rotate motor with Half Speed (full speed=ff)
gr
while (1)
{
ts
if (incr==0)
en
{
if(i>10)
ud
i=i-10;
}
st
if (decr==0)
ity
{
if(i<0xf0)
.c
i=i+10;
w
}
w
P0=i;
w
}
}
1. To rotate motor in clkwise direction and anticlockwise direction for infinite number of
times.
#include <REG51xD2.H>
m
void delay (unsigned char );
co
sbit SW=P3^3;
void main()
p.
{
ou
while(1)
{
gr
if(SW==0)
{
P0=0x11;
ts
delay(1);
en
P0=0x22;
delay(1);
ud
P0=0x44;
delay(1);
st
P0=0x88;
ity
delay(1);
}
.c
else
w
{
P0=0x88;
w
delay(1);
w
P0=0x44;
delay(1);
P0=0x22;
m
void delay(unsigned int count)
{
co
unsigned int i,j;
for(i=0;i<count;i++)
p.
for(j=0;j<1275;j++);
ou
}
gr
2. To rotate motor in clkwise direction or anticlockwise direction for an angle of 360 degree.
ts
#include <REG51xD2.H>
en
void delay (unsigned char );
sbit SW=P3^3;
ud
void main()
{
st
unsigned char i;
ity
for(i=0;i<50;i++)
{
.c
if(SW==0)
{
w
P0=0x11;
w
delay(1);
w
P0=0x22;
delay(1);
P0=0x44;
delay(1);
m
delay(1);
co
P0=0x44;
delay(1);
p.
P0=0x22;
ou
delay(1);
P0=0x11;
gr
delay(1);
}
} ts
}
en
void delay(unsigned int count)
ud
{
unsigned int i,j;
st
for(i=0;i<count;i++)
for(j=0;j<1275;j++);
ity
}
.c
w
w
w
#include <REG51xD2.H>
void delay (unsigned char );
sbit SW=P3^3;
void main()
m
{
co
unsigned char i;
for(i=0;i<25;i++)
p.
{
ou
if(SW==0)
{
gr
P0=0x11;
delay(1); ts
P0=0x22;
en
delay(1);
P0=0x44;
delay(1);
ud
P0=0x88;
delay(1);
st
}
ity
else
{
.c
P0=0x88;
w
delay(1);
w
P0=0x44;
delay(1);
w
P0=0x22;
delay(1);
P0=0x11;
m
{
unsigned int i,j;
co
for(i=0;i<count;i++)
for(j=0;j<1275;j++);
p.
}
ou
4. DAC Experiments
gr
ts
Simple Square Wave
en
#include<REG51xD2.H>
void delay(unsigned int);
void main()
ud
{
while(1)
st
{
ity
P0=0x00;
P1=0x00;
.c
delay(1);
w
w
P0=0xFF;
P1=0xFF;
w
delay(1);
}
}
m
co
SINEWAVE GENERATION
p.
ou
#include<REG51xD2.H>
void main()
gr
{
ts
unsigned char table[]={128,192,238,255,238,192,128,64,17,0,17,64,128};
unsigned char i;
en
while(1)
{
ud
for(i=0;i<13;i=i++)
st
P0=table[i];
}
ity
}
.c
w
w
w
Angles in
Decimal Values sent to DAC
degree Sin Vout=5v+(5x Sin)
Voutx25.6
0 0 5 128
m
30 0.5 7.5 192
co
90 1 10 255
p.
150 0.5 7.5 192
ou
180 0 5 128
gr
240 -0.866 0.699 17
270 -1 0
ts 0
360 0 5 128
ud
st
SAWTOOTH WAVEFORM
ity
#include<REG51xD2.H>
.c
void main()
{
w
unsigned char i;
w
while(1)
{
w
for(i=0x00;i<0xff;i++)
P0=i;
}
}
#include<REG51xD2.H>
void main()
{
unsigned char i;
while(1)
m
{
for(i=0xff;i>0x00;i--)
co
P0=i;
}
}
p.
ou
TRIANGULAR WAVE
gr
#include<REG51xD2.H> ts
void main()
en
{
unsigned char i;
ud
while(1)
{
st
for(i=0;i<0xff;i++)
P0=i;
ity
for(i=0xff;i>0;i--)
P0=i;
.c
}
w
}
w
w
m
{
co
for(i=0;i<0xff;i=i+0x33)
P0=i;
p.
}
ou
}
gr
ts
en
ud
st
#include<REG51xD2.H>
ity
void main()
{
.c
unsigned char i;
w
while(1)
w
{
for(i=0;i<0xff;i=i+0x1F)
w
P0=i;
}
}
#include<REG51xD2.H>
void main()
{
m
unsigned char i;
co
while(1)
{
p.
for(i=0;i<0xff;i=i+0x3F)
ou
P0=i;
}
gr
}
ts
en
#include<REG51xD2.H>
void main()
ud
{
unsigned char i;
st
while(1)
ity
{
for(i=0XFF;i>0;i=i-0x3F)
.c
P0=i;
w
}
w
}
w