Sie sind auf Seite 1von 29

MICROCONTROLLER LAB MANUAL

IV Sem EC/TC/EE/IT/BME

m
co
p.
ou
gr
ts
en
ud
st
ity

ARUNKUMAR G
.c

Lecturer in E&CE Dept.,


S.T.J.I.T., Ranebennur.
w

Cell: 9731311770
w
w

e-mail: gowda.arun@gmail.com

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


BLOCK MOVE BLOCK EXCHANGE

ORG 00H ORG 00H


MOV R2,#04H MOV R2,#04H

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


ADDITION OF TWO 16-BIT NUMBER SUBTRACTION OF TWO 16-BIT
(MULTIBYTE ADDITION) NUMBER (MULTIBYTESUBTRACTION)

ORG 00H ORG 00H


MOV R7,#02H MOV R7,#02H

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


SMALLEST OF N NUMBER LARGEST OF N NUMBER

ORG 00H ORG 00H


MOV R3,#04H MOV R3,#04H

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com

Hexadecimal to BCD BCD to Hexadecimal

ORG 00H ORG 00H


MOV A,30H MOV A,20H

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

BCD to ASCII ASCII to BCD

ORG 0000 ORG 0000H


MOV A,30H MOV A,30H

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

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

LOGIC GATES
HALF ADDER
AND, NAND, OR & NOR

ORG 00H ORG 00H


MOV C,P1.7 MOV C,P1.7

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

A B Y=AB Y=AB Y=A+B Y=(A+B) A B C=AB S=AB + AB

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

XOR GATE XOR NOR GATE

ORG 00H ORG 00H


MOV C,P1.7 MOV C,P1.7

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

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

ASCENDING DESCENDING

ORG 00H ORG 00H


MOV R7,#03H MOV R7,#03H

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

DJNZ R7,MAIN DJNZ R7,MAIN


END END
st

I/P: I/P:
ity
.c
w

O/P: O/P:
w
w

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

SERIAL COMMUNICATION SERIAL COMMUNICATION

ORG 00H ORG 00h


MOV TMOD,#20H MOV TMOD,#20h

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

HERE: JNB TI, HERE


CLR TI
SEND : MOV SBUF, A RET
st

HERE: JNB TI, HERE


ity

CLR TI msg: db "STJIT",0


RET END
.c

END
w

O/P: O/P:
w
w

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

TIMER DELAY PROGRAM TIMER DELAY PROGRAM

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com
COUNTERS

HEX-UP COUNTER HEX-UP COUNTER

ORG 00H ORG 00H


UP: UP:

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

HEX-DOWN COUNTER HEX-DOWN COUNTER

ORG 00H ORG 00H


MOV A,#0FFH MOV A,#0FFH
UP:

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

DECIMAL-UP COUNTER DECIMAL-UP COUNTER

ORG 00H ORG 00H


UP: UP:
MOV P1,A MOV P1,A

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

DECIMAL-DOWN COUNTER DECIMAL-DOWN COUNTER

ORG 00H ORG 00H


MOV A,#99H MOV A,#99H
UP:

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

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

SQUARE OF A GIVEN NUMBER CUBE OF A GIVEN NUMBER

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

Cube I/O: MOV 31H,A


.c

MOV A,26H
I/P:
ADDC A,#00H
w

MOV 30H,A
w

END
O/P:
w

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

16-BIT MULTIPLICATION MOV A,33H


ADD A, R0
ORG 00H JNC go2
MOV A,20H INC R1
MOV B,22H

m
go2: ADD A,35H
MUL AB
JNC go3

co
MOV 30H,A
MOV 31H,B INC R1

MOV A,20H go3: ADD A,36H

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

go: ADD A,34H


w

JNC GO1 O/P:


INC R0
go1: MOV 42H,A

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

BYTE LEVEL LOGICAL


OPERATION

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com
HARDWARE EXPERIMENTS
NOTE: These programs work for ESA Kits
Speed control of DC Motor

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

}
}

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com
Stepper Motor

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com
delay(1);
P0=0x11;
delay(1);
}
}
}

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com
P0=0x88;
delay(1);
}
else
{
P0=0x88;

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

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com
3. To rotate motor in clkwise direction or anticlockwise direction for an angle of 180 degree.

#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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com
delay(1);
}
}
}

void delay(unsigned int count)

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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com
void delay(unsigned int count)
{
unsigned int i,j;
for(i=0; i<count; i++)
for(j=0; j< 100; j++);
}

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

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

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

60 0.866 9.33 238

co
90 1 10 255

120 0.866 9.33 238

p.
150 0.5 7.5 192

ou
180 0 5 128

210 -0.5 2.5 64

gr
240 -0.866 0.699 17

270 -1 0
ts 0

300 -0.866 0.699 17


en
330 -0.5 2.5 64

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;
}
}

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

#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.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com
STAIRCASE WAVEFORM
#include<REG51xD2.H>
void main()
{
unsigned char i;
while(1)

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;
}
}

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com
Download from www.citystudentsgroup.com

#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

M.Tech, Lecturer in E&CE Dept. S.T.J.I.T, Ranebennur.


Download from www.citystudentsgroup.com

Das könnte Ihnen auch gefallen