MOV TMOD,#20H
MOV TH1,#0faH
MOV SCON,#050H
SETB TR1
START: MOV A,#'M'
ACALL F1
MOV A,#'e'
ACALL F1
MOV A,#'s'
ACALL F1
MOV A,#'s'
ACALL F1
MOV A,#'a'
ACALL F1
MOV A,#'g'
ACALL F1
MOV A,#'e'
ACALL F1
SJMP START
F1: MOV SBUF,A
HERE:JNB TI,HERE
CLR TI
RET
Embedded Programs
Saturday, 8 October 2016
To perform MESSAGE PASSING in 8051 Programming
Check if 5AH is located is located in any one of the locations.If yes load acc. by 5AH.
START: MOV R0,#5FH
MOV R7,#10H
COMPIT: CJNE @R0,#5AH,NEXT
MOV A,#5AH
SJMP FOUND
NEXT: DEC R0
DJNZ R7,COMPIT
NOMATCH : MOV A,#00H
FOUND : SJMP FOUND
Copy a block of 20bytes of data from 60h to 73h to the location starting from 40h.
START: MOV R0,#60H
MOV R1,#40H
MOV R7,#14H
COPYIT: MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R7,COPYIT
OVER: SJMP OVER
Program to shift a block of 8 bytes data,from 50h to 57h,1 byte up data is available from 51H to 58H
START: MOV R0,#57H
MOV R1,#58H
MOV R7,#08H
SHIFT: MOV A,@R0
MOV @R1,A
DEC R0
DEC R1
DJNZ R7,SHIFT
OVER :SJMP OVER
Friday, 16 September 2016
Program to display the message in 8051
ORG 0000
MOV DPTR,#MY_DATA
MOV R0,#50H
MOV R2,#5H
REPEAT : CLR A
MOVC A,@A+DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R2,REPEAT
HERE :SJMP HERE
ORG 240H
MY_DATA : DB " HELLO"
END
MOV DPTR,#MY_DATA
MOV R0,#50H
MOV R2,#5H
REPEAT : CLR A
MOVC A,@A+DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R2,REPEAT
HERE :SJMP HERE
ORG 240H
MY_DATA : DB " HELLO"
END
Program to perform factorial of a number (8051)
MOV DPTR,#1000H
MOVX A,@DPTR
MOV R1,A
MOV A,#01H
LOOP: MOV B,R1
MUL AB
INC DPTR
DJNZ R1,LOOP
END
MOVX A,@DPTR
MOV R1,A
MOV A,#01H
LOOP: MOV B,R1
MUL AB
INC DPTR
DJNZ R1,LOOP
END
Program to perform 16 bit BCD addition in 8051
MOV DPTR,#2080H
MOV A,#20H
MOV B ,#10H
ADDC A,DPL
DA A
MOV A,B
DA A
ADDC A,DPH
MOV B,A
DA A
MOV A,DPL
END
MOV A,#20H
MOV B ,#10H
ADDC A,DPL
DA A
MOV A,B
DA A
ADDC A,DPH
MOV B,A
DA A
MOV A,DPL
END
Subscribe to:
Posts (Atom)