Let it reach the 110 Crores Indians and the remaining if any.

Kindly, share this valuable information wherever possible.



1. Where you can search for any BLOOD GROUP, even in a remote area u'll get a donor with his contact number and address.     www.friendstosupport.org


2. If you see children Begging anywhere in INDIA , please contact:"RED SOCIETY" at 9940217816. They will help the children for their studies. 

3. Free Education and Free hostel for Handicapped/Physically Challenged children.Contact:- 9842062501 & 9894067506.


4. Special phone number for Eye bank and Eye donation: 04428281919 and04428271616 (Sankara Nethralaya Eye Bank). For More information about how to donate eyes plz visit these sites. http://ruraleye.org/ 


5. Heart Surgery free of cost for children (0-10 yr) Sri Valli Baba Institute Banglore, Contact : 9916737471 


6. Medicine for Blood Cancer!!!!     'Imitinef Mercilet' is a medicine which cures blood cancer. Its available free of cost at "Adyar Cancer Institute in Chennai". 

     Create Awareness. It might help someone.Cancer Institute in Adyar, ChennaiCategory: Cancer

Address:East Canal Bank Road , Gandhi Nagar, Adyar, Chennai -600020         Landmark: Near Michael School

Phone: 044-24910754 044-24910754 , 044-24911526 044-24911526 , 044-22350241 044-22350241 


7. Please CHECK WASTAGE OF FOODIf you have a function / party at your home in India and food gets wasted, don't hesitate to call 1098 (only in India ) - Its not a Joke, This is the number of Child helpline.They will come and collect the food for feeding several children..

AND LETS TRY TO HELP INDIA BE A BETTER PLACE TO LIVE IN ..

8. If you find any important documents like Driving license, Ration card, Passport, Bank Pass Book, etc., missed by someone, simply put them into any near by Post Boxes. They will automatically reach the owner and Fine will be collected from them.



9.  By the next 10 months, our earth will become 4 degrees hotter than what it is now. It costs 38 Trillion dollars to create OXYGEN for 6 months for all Human beings on earth.

"TREES DO IT FOR FREE""Respect them and Save them"


Let it reach the 110 Crores Indians and the remaining if any.

“JAI HIND

 Safety is ethically “the right thing to do” & business-wise it is also “the smart thing to do.”

Courtesy : Anonymous Mail....

Program to find factorial using 8051


Program to find factorial using 8051  :

MOV R1,#04 
MOV R0,#04 
MOV A,R0
CALL:DEC R0
MOV F0,R0
MUL AB
DJNZ R1,CALL
 SJMP 0

Program to implement BCD counter to count from 99-0


25;Program to implement BCD counter to count from 99-0 :

here:mov b,#99h ;move 99h to b
up:mov a,b ;move data from b to a
add a,#99h ;add 99h to a
da a ;decimal adjust accumulator after addition
mov b,a ;move data from b to a
mov p0,a ;move data from a to p0
acall delay ;call delay routine
mov a,b ;move data from b to a
cjne a,#0ffh,up ;compare a with 0ffh, if not equal , jump to location up
sjmp here ;jump to location here
delay routine:
delay:mov r1,#25h ;move 25h to r1
l3:mov r2,#0ffh ;move 0ffh to r2
l2:mov r3,#0ffh ;move 0ffh to r3
l1:djnz r3,l1 ;decrement r3, jump if not equal to 0 to l1
djnz r2,l2 ;decrement r2, jump if not equal to 0 to l2
djnz r1,l3 ; decrement r1, jump if not equal to 0 to l3
ret
end


Program to generate 50msec delay



26. Program to generate 50msec delay:

mov tmod,#01 ;select timer 0
here:mov tl0,#0fdh ;load tl0 with 0fdh
mov th0,#4bh ;load th0 with 4bh
cpl p1.5 ;compliment p1.5
acall delay ;call delay routine
sjmp here ;jump to here
delay:mov r1,#0c8h ;load r1 with data 0c8h
l1:setb tr0 ;set bit tr0
again:jnb tf0,again ;repeat till tf0=0
clr tr0 ;clear tr0
clr tf0 ;clear tf0
djnz r1,l1 ;decrement r1, jump to l1, if not equal to 0
ret
end

Program to implement BCD counter to count from 0-99


24. Program to implement BCD counter to count from 0-99 :

here:mov a,#0h ;move 0 to a
up:mov p0,a ;move data fr
acall delay ;call delay program
inc a ;increment a
da a ;decimal adjust accumulator after addition
cjne a,#100,up ;compare a with 100, if not equal, jump to location up
sjmp here ;jump to location here
delay routine
delay:mov r1,#0ffh ;move 0ffh to r1
l3:mov r2,#0ffh ;move 0ffh to r2
l2:mov r3,#0ffh ;move 0ffh to r3
l1:djnz r1,l1 ;decrement r1, repeat till r1=0
djnz r3,l2 ;decrement r3,repeat l2 till r3=0
djnz r2,l3 ;decrement r2, repeat l3 till r2=0
ret ;return
end


Program to find the square of an 8 bit number


22.Program to find the square of an 8 bit number :

mov dptr,#9000h ;load dptr with 9000h
movx a,@dptr ;move data from external memory location to a
mov b,a ;move data from a to b
mul ab ;multiply and b
inc dptr ;increment dptr
mov r0,a ;move data from a to r0
mov a,b ;move data from b to a
movx @dptr,a ;move data from a to external memory location
inc dptr ;increment dptr
mov a,r0 ;move data from r0 to a
movx @dptr,a ;move data from a to external memory location
here:sjmp here
end


Program to count from 0-9


23. Program to count from 0-9 :

here:mov a,#0h ;move 0 to a
up:mov p0,a ;move data from a to port0
acall delay ;call delay routine
add a,#01 ;increment a
cjne a,#010,up ;compare a with 10, if not equal, jump to location up
sjmp here ;jump to location here
;delay routine
delay:mov r1,#0ffh ;move 0ffh to r1
l3:mov r2,#0ffh ;move 0ffh to r2
l2:mov r3,#0ffh ;move 0ffh to r3
l1:djnz r1,l1 ;decrement r1, repeat till r1=0
djnz r3,l2 ;decrement r3,repeat l2 till r3=0
djnz r2,l3 ;decrement r2, repeat l3 till r2=0
ret ;return
end


Program to add two BCD numbers


21. Program to add two BCD numbers :

mov dptr,#9000h ;move dptr with 9000h
movx a,@dptr ; move data from external memory location to a
mov b,a ;move data from a to b
inc dptr ;increment dptr
movx a,@dptr ; move data from external memory location to a
add a,b ;add a and b
da a ;decimal adjust accumulator after addition
jc down ;if carry, jump to label down
inc dptr ;increment dptr
movx @dptr,a ;move data from a to external memory location
sjmp last ;jump to label last
down:mov r2,a ;move data from a to r2
mov a,#01h ;move data 01h to a
movx @dptr,a ;move data from a to external memory location
inc dptr ;increment dptr
mov a,r2 ;move data from r2 to a
movx @dptr,a ;move data from external memory location to a
last:sjmp last
end


Program to check whether a 4th bit of a byte is 1, Store FFh if 1, else store 00 in


20. Program to check whether a 4th bit of a byte is 1, Store FFh if 1, else store 00 in :

the same location
mov dptr,#9000h
movx a,@dptr ;move data from external memory location to a
jnb 0e3h,down ;jump to location down, if 4th bit of a is set
inc dptr ;increment dptr
mov a,#0ffh ;move 0ffh to a
movx @dptr,a ;move data from a to external memory location
sjmp last ;jump to location last
down:mov a,#0h ;move 00 to a
inc dptr ;increment dptr
movx @dptr,a ; move data from a to external memory location
last:sjmp last
end


Program to convert ASCII to hex


19. Program to convert ASCII to hex :

ASCII codes 30 to 39 represent 0 to 9 in binary and 41 to 46 represent A to F. Therefore
if the ASCII code is between 30-39h then 30h is subtracted from the code. If the number
lies between A to F then 37h is subtracted from the code to get its binary equivalent
mov dptr, #9000h ;load dptr with address 9000h
movx a,@dptr ; move data from external memory location to a
clr c ;clear carry bit
mov r1,a ;move data from a to r1
subb a,#40h ;subtract 40h from a
jc l2 ;jump to location l2, if carry
mov a,r1 ;move data from r1 to a
subb a,#37h ;subtract with borrow, 37h from a
sjmp here ;jump to location here
l2:mov a,r1 ;move data from r1 to a
clr c ;clear carry bit
subb a,#30h ;subtract with borrow, 30h from a
here:inc dptr ;increment dptr
movx @dptr,a ;move data from a to external memory location
rep:sjmp rep
end


Program to find largest of n numbers


18. Program to find largest of n numbers :

mov r0,#10h ;move immediate data 10h to r0.
mov a,@r0 ;move data from internal RAM location to a
mov r2,a ;move data from a to r2
dec r2 ;decrement r2
inc r0 ;increment r0
mov a,@r0 ;move data from internal RAM location to a
l2:push 0e0h ;save the content of a on stack
inc r0 ;increment r0
subb a,@r0 ;subtract content of internal RAM location from a
jnc down ;if no carry, jump to label down
mov a,@r0 ; move data from internal RAM location to a
sjmp d1 ;jump to location d1
down:pop 0e0h ;pop a from stack
d1:djnz r2,l2 ;decrement r2, if not zero, jump to location l2
inc r0 ;increment r0
mov @r0,a ;move data from a to internal RAM location
here:sjmp here
end


Program to count number of 1's in a given data byte


17. Program to count number of 1's in a given data byte :

mov dptr,#9000h ;Load dptr with 9000h
movx a,@dptr ;move data from external memory location to a
mov r0,#0h ;load r0 with 0
mov r1,#8h ;load r1 with 8
clr c ;clear carry bit
up:rlc a ;rotate a left through carry
jnc next ;if no carry, jump to label next
inc r0 ;increment r0
next:djnz r1,up ;decrement r1, and jump to label next, if r1?0
inc dptr ;increment dptr
mov a,r0 ;move data from r0 to a
movx @dptr,a ;move data from a to external memory location
here:sjmp here
end


Program to divide an 8 bit no by another 8 bit number


16. Program to divide an 8 bit no by another 8 bit number :

mov r0,#26h ;load r0 with immediate data 26h
mov a,@r0 ;load a with data from internal RAM location(dividend)
inc r0 ;increment r0
mov b,@r0 ;move data from internal RAM location to b(divisor)
div ab ;divide a by b
inc r0 ;increment r0
mov @r0,a ;load internal RAM location with data from a
inc r0 ; increment r0
mov a,b ;move data from b to a
mov @r0,b ;move data from b to internal RAM location
here:sjmp here
end


Program to sort an array of 10 elements


15. Program to sort an array of 10 elements :

mov r3,#0ah ;load r3 with immediate data 0ah
dec r3 ;decrement r3
start:mov a,r3 ;move data from r3 to a
mov r0,a ;move data from a to r0
mov dptr,#9000h ;Load dptr with address 9000h
l1:movx a,@dptr ;move data from external memory location to a
mov r1,a ;move data from a to r1
inc dptr ;increment dptr
movx a,@dptr ; move data from external memory location to a
clr c ;clear carry bit
subb a,r1 ;subtract with borrow, r1 from a
jnc next ;if no carry, jump to label next
movx a,@dptr ;move data from external memory location to a
mov r2,a ;move data from a to r2
mov a,r1 ;move data from r1 to a
movx @dptr,a ; move data from a to external memory location
dec dpl ;decrement dpl
mov a,r2 ;move data from r2 to a
movx @dptr,a ; move data from a to external memory location
inc dptr ;increment dptr
next:djnz r0,l1 ;decrement r0, if not equal to 0, jump to label next
djnz r3,start ;decrement r3, if not equal to 0, jump to label start
here:sjmp here
end


Program to search an element in an array


14. Program to search an element in an array :

mov r0,#05h ;Load r0 with immediate data 05h
clr a ;clear a
mov dptr,#9000h ;load dptr with address 9000h
mov r1,#0ah ;load r1 with immediate data 0ah
l1:mov a,#0h ;load a with 00
movc a,@a+dptr ;move data from code memory location to a
mov r2,a ;move data from a to r2
inc dptr ;increment dptr
dec r1 ;decrement r1
cjne r2,#05h,l2 ;compare r2 with 05h, if not equal, jump to label l2
mov dptr,#900ah ;load dptr with immediate data 900ah
mov a,#0ffh ;laod a with immediate data 0ffh
movx @dptr,a ;move data from a to external memory location
sjmp here
l2:cjne r1,#0h,l1 ; compare r1 with 0, if not equal, jump to label l1
mov dptr,#900ah ;load dptr with 900ah
mov a,#0h ;load a with 00h
movx @dptr,a ;move data from a to external memory location
here:sjmp here
end
Input:05,
9000h: 01 02 03 04 05 06 07 08 09 0a
Output:0ff


Program to multiply 16 bit number by 8 bit number


13. Program to multiply 16 bit number by 8 bit number :

mov r0,#11h ;load r0 with immediate data 11h
mov r1,#22h ;load r1 with immediate data 22h
mov r2,#33h ;load r2 with immediate data 33h
clr c ;clear carry bit
mov a,r0 ;move data from r0 to a
mov b,r2 ;move data from r2 to b
mul ab ;multiply and b
mov dptr,#9000h ;Load dptr with 9000h
movx @dptr,a ; move data from external memory location to a
mov r0,b ;move data from b to r0
mov a,r2 ;move data from r2 to a
mov b,r1 ;move data from r1 to b
mul ab ;multiply and b
add a,r0 ;add a and r0
inc dptr ;increment dptr
movx @dptr,a ;move data from a to external memory location
inc dptr ;increment dptr
mov a,b ;move data from b to a
movx @dptr,a ;move data from a to external memory location
here:sjmp here
end
Input: 1122, 33
Output:369c6h


Program to find the LCM of two numbers


 12. Program to find the LCM of two numbers :

mov dptr,#9000h ;Load dptr with immediate data 9000h
movx a,@dptr ;move data from external memory location to a
mov r0,a ;move data from a to r0
mov b,r0 ;move data from r0 to b
inc dptr ;increment dptr
movx a,@dptr ; move data from external memory location to a
mov r2,a ;move data from a to r2
l2:push 0e0h ;push a onto the stack
div ab ;divide a by b
mov r1,b ;move data from b to r1
cjne r1,#00,l1 ;compare r1 with 0, if not equal, jump to label l1
pop 0e0h ;pop a from satck
inc dptr ;increment dptr
movx @dptr,a ;move data from a to external memory location
sjmp here
l1:pop 0e0h ;pop a from stack
add a,r2 ;add a and r2
mov b,r0 ;move data from r0 to b
sjmp l2
here:sjmp here
end
Input: 05 02
Output:0ah

Program to interchange two blocks of data


11. Program to interchange two blocks of data :

mov dptr,#9000h ;Load 9000h into dptr register
mov r0,#04h ;Move immediate data 04 to r0
mov r1,#90h ;move immediate data 90h to r1
mov r2,#91h ;move immediate data 91h to r2
back:movx a,@dptr ;move data from external memory location to a
mov r3,a ;move data from a to r3
mov dph,r2 ;move data from r2 to dph
movx a,@dptr ;move data from external memory location to a
mov dph,r1 ;move data from r1 to dph
movx @dptr,a ;move data from external memory location to a
mov a,r3 ;move data from r3 to a
mov dph,r2 ;move data from r2 to dph
movx @dptr,a ;move data from a to external memory location
inc dptr ;increment dptr
mov dph,r1 ;move data from r1 to dph
djnz r0,back ;decrement r0, if not equal to 0, jump to label back
here:sjmp here
end


Program to convert an 8bit Hex number to decimal number


10. Program to convert an 8bit Hex number to decimal number :

mov dptr,#9000h ;Load 9000h into dptr register
movx a,@dptr ;move data from external memory location to a
mov r2,a ;move data from a to r2
clr c ;clear carry bit
subb a,#0ah ;subtract with borrow, 0ah from a
jc over ;if carry, jump to label over
mov a,r2 ;move data from r2 to a
subb a,#064h ;subtract with borrow, 64h from a
jc d1 ; if carry, jump to label d1
mov a,r2 ;move data from r2 to a
mov b,#64h ;move immediate data 64h to b
div ab ;divide a by b
inc dptr ;increment dptr
movx @dptr,a ; move data from external memory location to a
mov a,b ;move data from b to a
mov r3,a ;move data from a to r3
clr c ; clear carry bit
subb a,#0ah ;subtract with borrow, 0ah from a
jc d2 ;if carry, jump to label d2
mov b,#0ah ;Load b with immediate data 0ah
mov a,r3 ;move data from r3 to a
div ab ;divide a by b
inc dptr ;increment dptr
movx @dptr,a ;move data from a to external memory location
mov a,b ;move data from b to a
inc dptr ;increment dptr
movx @dptr,a ;move data from a to external memory location
sjmp end1
d2:mov a,r3 ;move data from r3 to a
inc dptr ;increment dptr
movx @dptr,a ;move data from a to external memory location
sjmp end1
d1:mov a,r2 ;move data from r2 to a
mov b,#0ah ;load b with immediate data 0ah
div ab ;divide a by b
inc dptr ; increment dptr
movx @dptr,a ;move data from a to external memory location
mov a,b ;move data from b to a
inc dptr ;increment dptr
movx @dptr,a ;move data from a to external memory location
sjmp end1
over:mov a,r2 ;move data from r2 to a
inc dptr ;increment dptr
movx @dptr,a ;move data from a to external memory location
here:sjmp here
end1:sjmp end1
end
Input: 0ffh
Output:02 05 05


Program to convert hex number to ASCII number


9.Program to convert hex number to ASCII number :

mov dptr,#9000h ; Load dptr with immediate data 9005h
movx a,@dptr ; Load dptr with immediate data 9005h
clr c ;clear carry bit
subb a,#0ah ;subtract with borrow, 0ah from
movx a,@dptr ; move data from external memory location to a
jc down ;if carry, jump to label down
add a,#07h ;add 07 to a
down:add a,#30h ;add 30h to a
inc dptr ;increment dptr
movx @dptr,a ; move data from a to external memory location
here:sjmp here
end
Input:45
Output:34 35


Program to find the GCF of two numbers


8.Program to find the GCF of two numbers :

mov dptr,#9000h ;Load 9000h into dptr register
movx a,@dptr ; move data from external memory location to a
mov b,a ; move data from a to b
inc dptr ;increment dptr
movx a,@dptr ; move data from external memory location to a
back:mov r1,b ;move data from b to r1
div ab ;divide a by b
mov a,b ;move data from b to a
jz mess ;if a=0, jump to label mess
mov a,r1 ;move data from r1 to a
jmp back ;jump to label back
mess:mov dptr,#9005h ;Load dptr with immediate data 9005h
mov a,r1 ;move data from r1 to a
movx @dptr,a ;move data from a to external memory location
here:sjmp here
end
Input: 05 02
Output:01


Program to generate Fibonacci series


7. Program to generate Fibonacci series :

mov r1,#0ah ;Load r1 with immediate data 0ah
mov dptr,#9000h ;load 9000h into dptr register
movx a,@dptr ; move data from external memory location to a
inc dptr ;increment dptr
mov r0,a ;move data from a to r0
movx a,@dptr ; move data from external memory location to a
back:mov r2,a ;move data from a to r2
add a,r0 ;add a and r0
inc dptr ;increment dptr
movx @dptr,a ;move data from a to external memory location
mov r3,a ;move data from a to r3
mov a,r2 ; move data from r2 to a
mov r0,a ; move data from a to r0
mov a,r3 ; move data from r3 to a
djnz r1,back ;decrement r1, if not 0, jump to label back
here:sjmp here
end
Output:00 01 01 02 03 05 08 0bh, 15h, 22h



6. Program to convert a decimal number to hex number :

mov dptr,#9000h ; Load 9000h into dptr register
movx a,@dptr ; move data from external memory location to a
mov r2,a ;move data from r2 to a
clr c ;clear carry bit
subb a,#0ah ;subtract with borrow, 0ah from a
jc over ;if carry, jump to label over
mov a,r2 ;move data from r2 to a
anl a,#0f0h ;and a with 0f0h
swap a ;swap a
mov b,#0ah ;move 0ah to b
mul ab ;multiply and b
mov r3,a ;move data from a to r3
mov a,r2 ;move data from r2 to a
anl a,#0fh ;move 0fh to a
add a,r3 ;add a and r3
inc dptr ;increment dptr
movx @dptr,a ; move data from a to external memory location
sjmp here
over:mov a,r2 ;move data from r2 to a
inc dptr ;increment dptr
movx @dptr,a ;move data from a to external memory location
here:sjmp here
end
Input:99
Output:63

To transfer a block of data from one memory location to another


5. To transfer a block of data from one memory location to another :

mov r2,#0ah ;Load r2 with immediate data 05h
mov dptr,#9000h ;Load 9000h into dptr register
mov r0,#0a0h ;Load r0 with immediate data 0a0h
mov r1,#00h ;Load r1 with immediate data 00h
mov a,#0h ; Load a with immediate data 00h
up:movx a,@dptr ;move data from external memory to a
push dph ;push dph on the stack
push dpl ;push dpl on the stack
mov dph,r0 ;move data from r0 to dph
mov dpl,r1 ;move data from r1 t dpl
movx @dptr,a ;move data from a to external memory location
pop dpl ;pop dpl from the stack
pop dph ;pop dph from the stack
inc dptr ;increment dptr
inc r1 ;increment r1
dec r2 ;decrement r2
cjne r2,#00,up ;compare r2 with 0, if not equal, jump to label up
here:sjmp here
end
Output:
I block:9000h: 01 02 03 04 05
II block:a000h:01 02 03 04 05( after block transfer)


Program to find the average of 10 numbers


 4: Program to find the average of 10 numbers:

mov dptr,#9000h ;Load 9000h into dptr register
clr a ;Clear a register
mov 0f0h,a ;move data from a to b
mov r1,#05h ;move 05 to r1 register
up: movx a,@dptr ; ;move data from external memory location to a
add a,0f0h ;add a and b
mov 0f0h,a ;move the result to b
dec r1 ;decrement r1
inc dptr ;increment dptr
cjne r1,#00h,up ;compare r1 with 0, if not equal, jump to label up
mov a,0f0h ;move data from b to a
mov 0f0h,#05h ;move 05h to b
div ab ;divide a by b
mov dptr,#09005h ; Load 9005h into dptr register
movx @dptr,a ;move data from a to external memory location
mov a,0f0h ;move data from b to a
inc dptr ;increment dptr
movx @dptr,a ;move data from a to external memory location
here:sjmp here
end


3: ASCII to BCD conversion:

To convert ASCII to packed BCD, it is first converted to unpacked BCD(to mask 3) and
then combined to make packed BCD. For example, for 4 and 5 the keyboard gives 34 and
35, respectively. The goal is to produce 45h, which is packed BCD.
;ASCII to packed BCD conversion

mov r0,#10h ;R0=10h,Internal memory adress
mov a,@r0 ;a=hex value of Ist ASCII number
anl a,#0fh ;mask upper nibble
swap a ;swap upper and lower nibble of a
mov b,a ;save the number in B
inc r0 ;Increment R0
mov a,@r0 ;Get the next number from memory
anl a,#0fh ;Mask Higher nibble
orl a,b ;Or a & B
inc r0 ;Increment memory address to store the result
mov @r0,a ;Move the content of A to internal RAM location
here:sjmp here
end


Program to convert a BCD number to ASCII


2. Program to convert a BCD number to ASCII using 8051 :

To convert packed BCD to ASCII, it must first be converted to to unpacked BCD. Then the unpacked BCD is tagged with 30h.
mov dptr,#9000h ;Load 9000h into dptr register
movx a,@dptr ;Move the content of location 9000h to a
mov r2,a ;Move the data from a to r2
anl a,#0f0h ;And a with 0f0h
swap a ;Swap a
orl a,#30h ;Or a with 30h
inc dptr ;increment dptr
movx @dptr,a ;move the data from a to memory location
mov a,r2 ; Move the data from r2 to a
anl a,#0fh ; And a with 0fh
orl a,#30h ;Or a with 30h
inc dptr ;increment dptr
movx @dptr,a ;move the data from a to memory location
here:sjmp here
end
Input: 45
Output:34 35

Program to add two multibyte numbers

8051 MICROCONTROLLER

Programs:

1.Program to add two multibyte numbers using 8051 .

mov r4,#0h ;move 00 to r4
mov r3,#0h ;move 00 to r3
mov dptr,#9000h ; Load 9000h into dptr register
movx a,@dptr ;move the data from memory location to a register
mov r0,a ;move the data from a to r0
inc dptr ;increment dptr

movx a,@dptr ;move the data from memory location to a
mov r1,a ;move the data from a register to r1
inc dptr ;increment dptr
movx a,@dptr ;move the data from memory to a
mov r2,a ;move the data form a to r2
inc dptr ;increment dptr
movx a,@dptr ; move the data from memory location to a register
clr c ;clear carry bit
add a,r1 ;add a and r1
jnc res ;if no carry, jump to label res
mov r3,a ;move data from a to r3
mov a,r0 ;move data from r0 to a
addc a,r2 ; add with carry and r2
jnc end1 ;if no carry, jump to label end1
inc r4 ;increment r4
ajmp end1 ;jump to label end1
res:mov r3,a ; move data from a to r3
mov a,r0 ; move data from r0 to a
add a,r2 ;add a and r2
jnc end1 ; if no carry, jump to label end1
inc r4 ;increment r4
end1:mov r5,a ;move data from a to r5
mov dptr,#900ah ;load 9000h into dptr register
mov a,r4 ; move data from r4 to a
movx @dptr,a ;move data from a to memory location
mov a,r5 ;move data from r5 to a
inc dptr ;increment dptr
movx @dptr,a ; move data from a to memory location
mov a,r3 ; move data from r3 to a
inc dptr ; increment dptr
movx @dptr,a ; move data from a to memory location
here:sjmp here
end
Input Location:9000h,9001h,9002h,9003h
Output Location:900ah
Input Data: 1111 1111(hex)
Output : 2222h
2 nd method
mov r1,#0ffh ;load r1 with immediate data
mov r2,#0ffh ; load r1 with immediate data
mov r3,#0ffh ;load r1 with immediate data
mov r4,#0ffh ;load r1 with immediate data
clr c ;Clear carry bit
mov a,r1 ;move data from r1 to a
add a,r4 ;add a and r4
mov 31h,a ;move data from a to internal RAM location 31h
mov a,r2 ;move data from r2 to a
addc a,r3 ;add with carry a and r3
mov 32h,a ; move data from a to internal RAM location 32h
mov a,#00 ;Clear a register
addc a,#00 ;add with carry and 0
mov 33h,a ; move data from a to internal RAM location 33h
here:sjmp here
end


HOW TO PROGRAM 8051 ????

TOOLS FOR PROGRAMMING -

>A51-ASSEMBLER

>CODE EDITOR-syntax highlighting notepad

>SIMULATOR-small and smart

>BAUD-timer value caluculation

>C COMPILER FOR 8051

>RIDE-software simulation CLICK

>KEIL UVISION 4- 8051/ARM  simulation CLICK (MOST PREFERRED )

>PROTEUS-fully embedded simulation software CLICK

Tutorial for doing ur first program using keil uvision  click
 .Install sofware on your system
Click Project -> New Uvision Project
Save your project
Select Target Device (8051 – AT89s51)
File -> New

 




Free online technical books !


Online Books
Freebookcentre.net contains links to thousands of free online technical books. Which Include core computer science, networking, programming languages, Systems Programming books, Linux books and many more. You are welcome to follow the following links for the free books tour..
Download Free Computer Science Books
Download Free Physics Books
Download Free Mathematics Books
Download Free Electronics Books
Download Free Medical Books

CLICK TO VIEW THE WEBSITE !!!


8051 INSTRUCTION SET

ARITHMETIC OPERATIONS :
 LOGIC OPERATIONS :
DATA TRANSFER :
 PROGRAM AND MACHINE CONTROL :
 BOOLEAN VARIABLE MANIPULATION :




How web browser works.........



FORMAT FACTORY

(powerful...audio and video converter)




features:

1. support converting almost all popular video,audio,picture formats to others.
2.simple user interface,powerful converter..
3.multiple converting tasks at a time....audio,video editors and cutters,dvd ripper etc.,
4.totally free........runs on any "windows" platform


download link:
formatfactory






HOLE IN HISTORY

Guys, Let me tell you some of the secrets about our Calendar's history (Not like Dan Brown) but some what interesting...

 If your computer has a calendar program that can display calendars for October 1582 and September 1752, you will have some Holes in our History...

you can check the religious faith of your computer.


Can Continued fractions provide solution for this???.

Check out More interesting facts about our calendar and also the Mathematical Model for a perfect calendar using Continued Fractions in the Following Journal...

download journal here:
Calendar facts.pdf 

Web Statistics