microcontroller (8051) general and simple alp n cprograms

28
//////MICRO CONTROLLER 8051 general and simple ALP’s Solved////// 1/////write alp to convert decimal to hex////d org 0h mov a,#255d mov b,#10h div ab mov r0,b mov b,#10h div ab end 2/////hex to decimal////d org 0h mov a,#0FFh mov b,#0Ah div ab mov r0,b mov b,#0Ah div ab end 3/////ascii to decimal(packed)/////d org 0h

Upload: vedavyas-pburli

Post on 16-Dec-2014

143 views

Category:

Technology


2 download

DESCRIPTION

microcontroller 8051 based ALP's and c programs ALP's on simple and basic programs , which you can understand it very easily by executing in keil_3 . purposely made for micro controller based program executing.thank you

TRANSCRIPT

Page 1: Microcontroller (8051) general and simple alp n cprograms

//////MICRO CONTROLLER 8051 general and simple ALP’s Solved//////

1/////write alp to convert decimal to hex////d

org 0h

mov a,#255d

mov b,#10h

div ab

mov r0,b

mov b,#10h

div ab

end

2/////hex to decimal////d

org 0h

mov a,#0FFh

mov b,#0Ah

div ab

mov r0,b

mov b,#0Ah

div ab

end

3/////ascii to decimal(packed)/////d

org 0h

mov a,#32h

anl a,#0fh

mov r0,a

Page 2: Microcontroller (8051) general and simple alp n cprograms

mov a,#34h

anl a,#0fh

swap a

add a,r0

mov r4,a

end

4////////decimal to ascii (packed)////d

org 0h

mov a,#12h

anl a,#0fh

add a,#30h

mov r3,a

mov a,#14h

anl a,#0f0h

swap a

add a,#30h

mov r4,a

end

5///// down counter /////d

org 0h

mov a,#20h

up:mov p2,a

dec a

lcall delay

cjne a,#20h,up

Page 3: Microcontroller (8051) general and simple alp n cprograms

sjmp over

delay: mov r3,#0aah

b3:mov r2,#0aah

b2:mov r1,#0aah

b1:djnz r1,b1

djnz r2,b2

djnz r3,b3

ret

over: nop

end

6///////up counter////d

org 0h

mov a,#0h

up:mov p2,a

inc a

lcall delay

cjne a,#00h,up

sjmp over

delay: mov r3,#0aah

b3: mov r2,#0aah

b2: mov r1,#0aah

b1: djnz r1,b1

djnz r2,b2

djnz r3,b3

Page 4: Microcontroller (8051) general and simple alp n cprograms

ret

over:nop

end

7/////BCD UP COUNTER///d

org 0h

mov a,#00h

go:mov p2,a

add a,#00h

da a

inc a

lcall delay

cjne a,#00h,go

sjmp over

delay:mov r3,#0FEh

b3: mov r2,#0FEh

b2: mov r1,#0FEh

b1: djnz r1,b1

djnz r2,b2

djnz r3,b3

ret

Page 5: Microcontroller (8051) general and simple alp n cprograms

over:nop

end

8////step wave////d

org 0h

back:mov a,#00h

mov P0,a

lcall delay

mov a,#07fh

mov P0,a

lcall delay1

mov a,#0ffh

mov P0,a

lcall delay2

mov a,#07fh

mov P0,a

lcall delay

sjmp back

sjmp last

Page 6: Microcontroller (8051) general and simple alp n cprograms

delay:mov r0,#0ffh

back1:djnz r0,back1

delay1:mov r0,#0ffh

back2:djnz r0,back2

delay2:mov r0,#0ffh

back3:djnz r0,back3

ret

last:nop

end

9////square wave////d

org 0

back: mov a,#00h

mov p2,a

lcall delay

mov a,#0ffh

mov p2,a

lcall delay

mov p2,a

sjmp back

Page 7: Microcontroller (8051) general and simple alp n cprograms

sjmp last

delay:mov r0,#0ffh

back2:djnz r0,back2

ret

last:nop

end

10////ramp///d

org 0h

back:mov a,#00h

go: mov P0,a

inc a

lcall delay

cjne a,#0ffh,go

sjmp back

sjmp last

delay:mov r0,#0ffh

back1:djnz r0,back1

ret

Page 8: Microcontroller (8051) general and simple alp n cprograms

last:nop

end

11/////triangular wave/////d

org 0h

mov a,#00h

back:inc a

mov p2,a

cjne a,#0ffh,back

go:dec a

mov p2,a

cjne a,#00h,go

sjmp back

sjmp last

delay:mov r0,#0ffh

back1:djnz r0,back1

ret

last:nop

end

Page 9: Microcontroller (8051) general and simple alp n cprograms

12///exchange of data internaaly///d

org 0h

mov 20h,#02h

mov 21h, #03h

mov 22h , #04h

mov 23h , #05h

mov r0,#20h

mov r1,#30h

mov r2,#05h

back:mov a,@r0

mov @r1,a

inc r0

inc r1

djnz r2,back

sjmp last

last:nop

end

13 ////exchange block of data in bulk///// d

org 0h

mov 20h,#02h

mov 21h,#03h

Page 10: Microcontroller (8051) general and simple alp n cprograms

mov 22h,#04h

mov 23h,#05h

mov 30h,#07h

mov 31h,#08h

mov 32h,#09h

mov 33h,#06h

mov r0,#20h

mov r1,#30h

mov r2,#05h

back:mov a,@r0

mov r3,a

mov a,@r1

mov @r0,a

mov a,r3

mov @r1,a

inc r0

inc r1

djnz r2,back

sjmp last

last:nop

Page 11: Microcontroller (8051) general and simple alp n cprograms

end

14/////// internal to external transfer /////// d

org 0h

mov 20h,#02h

mov 21h,#03h

mov 22h,#04h

mov 23h,#05h

mov r0,#20h

mov dptr,#400h

mov r2,#05h

back:mov a,@r0

movx @dptr,a

inc dptr

inc r0

djnz r2,back

sjmp last

last:nop

end

Page 12: Microcontroller (8051) general and simple alp n cprograms

15/////external to internal////d

org 0h

mov r0,#20h

mov dptr,#400h

mov r2,#05h

back:movx a,@dptr

mov @r0,a

inc dptr

inc r0

djnz r2,back

sjmp last

last:nop

end

16///// count even and odd numbers //////d

org 0

mov dptr,#400h

mov r0,#04h

Page 13: Microcontroller (8051) general and simple alp n cprograms

back:movx a,@dptr

rrc a

inc dptr

jc vyas

inc r2

jmp hell

vyas:inc r3

hell:djnz r0,back

sjmp last

last :nop

end

17///////aritmatic operation (all in one)////d

org 0

mov dptr,#700h

movx a,@dptr

mov r0,a

Page 14: Microcontroller (8051) general and simple alp n cprograms

addd:cjne r0,#00h,subbb

inc dptr

movx a,@dptr

mov r1,a

inc dptr

movx a,@dptr

mov r2,a

mov a,r1

add a,r2

mov r4,a

sjmp last

subbb:cjne r0,#01h,mull

inc dptr

movx a,@dptr

mov r1,a

inc dptr

movx a,@dptr

mov r2,a

mov a,r1

subb a,r2

mov r4,a

sjmp last

mull:cjne r0,#02h,last

inc dptr

movx a,@dptr

Page 15: Microcontroller (8051) general and simple alp n cprograms

mov r1,a

inc dptr

movx a,@dptr

mov r2,a

mov a,r1

mov b,r2

mul ab

mov r4,a

sjmp last

last:mov r4,#0ffh

end

15////desending order////

org 0

mov 20h,#86h

mov 21h,#87h

mov 22h ,#88h

mov 23h ,# 89h

mov r2,#03h

back1:mov r1,#03h

Page 16: Microcontroller (8051) general and simple alp n cprograms

mov r0,#20h

back:mov b,@r0

inc r0

mov a,@r0

cjne a,b,so

so:jnc exchange

jmp last

exchange:mov @r0,b

dec r0

mov @r0,a

inc r0

last:djnz r1,back

djnz r2,back1

end

16/////ascending order /////

org 0

mov 20h,#86h

mov 21h,#87h

mov 22h ,#88h

Page 17: Microcontroller (8051) general and simple alp n cprograms

mov 23h ,# 89h

mov r2,#03h

back1:mov r1,#03h

mov r0,#20h

back:mov b,@r0

inc r0

mov a,@r0

cjne a,b,so

so:jc exchange

jmp last

exchange:mov @r0,b

dec r0

mov @r0,a

inc r0

last:djnz r1,back

djnz r2,back1

End

Page 18: Microcontroller (8051) general and simple alp n cprograms

17//////compare 2 bits///////

org 0

mov r1,#02fh

mov a,@r1

num1:cjne a,#00h,num2

inc r1

mov a,@r1

anl a,#0fh

sjmp last

num2:cjne a,#01h,num3

inc r1

mov a,@r1

anl a,#0f0h

sjmp last

num3:cjne a,#02h,deff

inc r1

mov a,@r1

sjmp last

deff:mov a,#0fh

last:mov r5,a

end

Page 19: Microcontroller (8051) general and simple alp n cprograms

18//////c programin using 8051 _lcd interfacing/////

#include<reg51.h>

#define cmdport P2

#define dataport P0

#define q 100

sbit rs = cmdport^4; //register select pin

sbit rw = cmdport^5; //read write pin

sbit e = cmdport^6; //enable pin

void delay(unsigned int msec) //Function to provide time delay in msec.

{

int i,j ;

for(i=0;i<msec;i++)

for(j=0;j<1275;j++);

}

Page 20: Microcontroller (8051) general and simple alp n cprograms

void lcdcmd(unsigned char item) //Function to send command to LCD

{

dataport = item;

rs= 0;

rw=0;

e=1;

delay(1);

e=0;

}

void lcddata(unsigned char item) //Function to send data to LCD

{

dataport = item;

rs= 1;

rw=0;

e=1;

delay(1);

e=0;

Page 21: Microcontroller (8051) general and simple alp n cprograms

}

void main()

{

lcdcmd(0X38); //for using 8-bit 2 row mode of LCD

delay(100);

lcdcmd(0x0E); //turn display ON for cursor blinking

delay(100);

lcdcmd(0X01); //clear screen

delay(100);

lcdcmd(0X06); //display ON

delay(100);

lcdcmd(0X80); //bring cursor to position 6 of line 1

delay(100);

while(1)

{

lcdcmd(0X80); //bring cursor to position 6 of line 1

delay(100);

lcddata('C');

delay(100);

lcddata('E');

delay(100);

lcddata('T');

Page 22: Microcontroller (8051) general and simple alp n cprograms

delay(100);

while(1);

}

}

19///write an c program to run steper motor////

#include<reg51.h>

void delay(int);

void main()

{

do

{

P2 = 0x0e; //1110

delay(10000);

P2 = 0x0d; //1101

delay(10000);

P2 = 0x0b; //1011

delay(10000);

P2 = 0x07; //0111

delay(10000);

Page 23: Microcontroller (8051) general and simple alp n cprograms

}

while(1);

}

void delay(int k)

{

int i,j;

for(i=0;i<k;i++)

{

for(j=0;j<100;j++)

{}

}

}

20///////write an c program to run dc motor/////

#include <at89c51xd2.h>

void delay (int k)

sbit pwm=P2^4;

void main (void)

{

{

pwm=1;

Page 24: Microcontroller (8051) general and simple alp n cprograms

delay();

delay();

delay();

delay();

pwm=0;

delay();

}

while (1)

}

void delay (int k)

{

unsigned int i,j,count;

for (i=0;i<300;i++)

{

for(j=0;j<300;j++)

{

count++

}

}

}

Page 25: Microcontroller (8051) general and simple alp n cprograms

21/////dptr shift right/////

org 0hmov dptr,#8948h

mov a,dpl

mov r3,a

rrc a

mov dpl,a

mov a,dph

rrc a

mov dph,a

end