Experiment 1: Develop an ALP to Perform following Arithmetic Operations on 8-bit data..
(a) Addition (b) Subtraction (c) Multiplication (d) Division
ADDITION:
ORG 00H
SJMP START
ORG 40H
START: MOV DPTR, #X
CLR A
MOVC A,@A+DPTR
MOV B,A
MOV DPTR, #Y
CLR A
MOVC A,@A+DPTR
ADD A,B
SJMP QUIT
ORG 80H
X: DB 4H
Y: DB 5H
QUIT:
END
SUBTRACTION:
ORG 00H
SJMP START
ORG 0003H
MOV A,#'A'
ACALL DATA_WRT
ACALL DELAY
RETI
ORG 0013H
CPL P2.4
RETI
ORG 50H
START:
MOV A,#38H
ACALL CMD_WRT
ACALL DELAY
MOV A,#0EH
ACALL CMD_WRT
ACALL DELAY
MOV A,#01H
ACALL CMD_WRT
ACALL DELAY
MOV A,#06H
ACALL CMD_WRT
ACALL DELAY
MOV A,#84H
ACALL CMD_WRT
ACALL DELAY
MOV IE,#10000101B
HERE:
MOV A,#'C'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'S'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'E'
ACALL DATA_WRT
ACALL DELAY
MOV A,#' '
ACALL DATA_WRT
ACALL DELAY
AGAIN: SJMP HERE
CMD_WRT:
MOV P1,A
CLR P2.0
CLR P2.1
SETB P2.2
ACALL DELAY
CLR P2.2
RET
DATA_WRT:
MOV P1,A
SETB P2.0
CLR P2.1
SETB P2.2
ACALL DELAY
CLR P2.2
RET
DELAY: MOV R3,#200
HERE2: MOV R4,#255
HERE1: DJNZ R4,HERE1
DJNZ R3,HERE2
RET
END
(a) Addition (b) Subtraction (c) Multiplication (d) Division
ADDITION:
ORG 00H
SJMP START
ORG 40H
START: MOV DPTR, #X
CLR A
MOVC A,@A+DPTR
MOV B,A
MOV DPTR, #Y
CLR A
MOVC A,@A+DPTR
ADD A,B
SJMP QUIT
ORG 80H
X: DB 4H
Y: DB 5H
QUIT:
END
SUBTRACTION:
ORG 00H
SJMP START
ORG 30H
START: MOV DPTR, #NUM2
CLR A
MOVC A,@A+DPTR
MOV B,A
MOV DPTR, #NUM1
CLR A
MOVC A,@A+DPTR
ADD A,B
SJMP QUIT
ORG 50H
NUM1: DB 31H
NUM2: DB 12H
QUIT:
END
MULTIPLICATION:
ORG 00H
SJMP START
ORG 33H
START: MOV DPTR, #NUM2
CLR A
MOVC A,@A+DPTR
MOV B,A
MOV DPTR, #NUM1
CLR A
MOVC A,@A+DPTR
MUL AB
SJMP QUIT
ORG 60H
NUM1: DB 10H
NUM2: DB 22H
QUIT:
END
DIVISION:
ORG 00H
SJMP START
ORG 40H
START: MOV DPTR, #NUM2
CLR A
MOVC A,@A+DPTR
MOV B,A
MOV DPTR, #NUM1
CLR A
MOVC A,@A+DPTR
DIV AB
SJMP QUIT
ORG 50H
NUM1: DB 35H
NUM2: DB 07H
QUIT:
END
Experiment 2: Develop an ALP to Perform Addition Operation on Array of Elements of 8-bit data.
ORG 00H
MOV DPTR, #ARRAY
MOV B,#00H
SJMP START
ORG 50H
START:
BACK: CLR A
MOVC A,@A+DPTR
CJNE A,#'$',SUM
LJMP QUIT
SUM:
ADD A,B
MOV B,A
INC DPTR
SJMP BACK
ORG 100H
ARRAY: DB 01H,02H,03H,04H,05H,'$'
QUIT:
END
Experiment 3:
(a) Develop an ALP involving Bit/Byte Manipulations to toggle a LED with random delay.
Bit Manipulation:
ORG 00H
MOV P1,#00H
BACK:
CPL P1.3
ACALL DELAY
SJMP BACK
DELAY: MOV R0,#03H
HERE1: MOV R1,#02H
HERE: DJNZ R1,HERE
DJNZ R0,HERE1
RET
END
Byte Manipulation:
ORG 00H
MOV P0,#00H
MOV A,#55H
BACK:
MOV P0,A
ACALL DELAY
CPL A
ACALL DELAY
SJMP BACK
DELAY: MOV R0,#03H
HERE1: MOV R1,#02H
HERE: DJNZ R1,HERE
DJNZ R0,HERE1
RET
END
(b) Develop an ALP creating patterns using 8 LED's.
ORG 00H
BACK:
SETB P1.0
ACALL DELAY
CLR P1.0
ACALL DELAY
SETB P1.1
ACALL DELAY
CLR P1.1
ACALL DELAY
SETB P1.2
ACALL DELAY
CLR P1.2
ACALL DELAY
SETB P1.3
ACALL DELAY
CLR P1.3
ACALL DELAY
SETB P1.4
ACALL DELAY
CLR P1.4
ACALL DELAY
SETB P1.5
ACALL DELAY
CLR P1.5
ACALL DELAY
SETB P1.6
ACALL DELAY
CLR P1.6
ACALL DELAY
SETB P1.7
ACALL DELAY
CLR P1.7
ACALL DELAY
SJMP BACK
DELAY: MOV R0,#5D
HERE1: MOV R1,#5D
HERE: DJNZ R1,HERE
DJNZ R0,HERE1
RET
END
Experiment 4: Develop an ALP to display Numbers using 7-Segment Display.
START:
MOV P2, #00H
MAIN:
MOV DPTR, #ARRAY
BACK:
CLR A
MOVC A, @A+DPTR
JZ NEXT
MOV P2,A
ACALL DELAY
INC DPTR
SJMP BACK
NEXT: SJMP MAIN
DELAY: MOV R0, #2H
HERE1: MOV R1, #1H
HERE: DJNZ R1, HERE
DJNZ R0, HERE1
RET
ARRAY: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,0
END
Experiment 5: Develop an ALP involving study of 8051 Timer Operation..
ORG 00H
START: MOV P2,#00H
NEXT: MOV DPTR, #ARRAY
BACK:
CLR A
MOVC A, @A+DPTR
JZ NEXT
MOV P2,A
ACALL DELAY
INC DPTR
SJMP BACK
HERE: MOV R0,#200
DELAY: MOV TMOD,#01H
MOV TH0,#0ECH
MOV TH1,#0FFH
SETB TR0
CPL P1.1
JNB TF0,'$'
CLR TR0
DJNZ R0,HERE
ORG 80H
ARRAY: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,0
RET
END
Experiment 6: Develop an ALP involving study of 8051 Counter Operation..
ORG 00H
MOV A,#38H
ACALL CMD_WRT
ACALL DELAY
MOV A,#0EH
ACALL CMD_WRT
ACALL DELAY
MOV A,#01
ACALL CMD_WRT
ACALL DELAY
MOV A,#06H
ACALL CMD_WRT
ACALL DELAY
MOV A,#84H
ACALL CMD_WRT
ACALL DELAY
MOV A,#'C'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'O'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'U'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'N'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'T'
ACALL DATA_WRT
ACALL DELAY
MOV A,#':'
ACALL DATA_WRT
ACALL DELAY
MOV A,#0C6H
ACALL CMD_WRT
ACALL DELAY
MOV TMOD,#00010101B
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
ACALL DELAY1
CLR TR0
MOV A,TL0
ADD A,#30H
ACALL DATA_WRT
DELAY1: MOV R0,#71D
MOV TH1,#00H
MOV TL1,#00H
DELAY2: SETB TR1
JNB TF1,$
CLR TF1
CLR TR1
DJNZ R0,DELAY2
RET
AGAIN: SJMP AGAIN
CMD_WRT:
MOV P1,A
CLR P2.0
CLR P2.1
SETB P2.2
ACALL DELAY
CLR P2.2
RET
DATA_WRT:
MOV P1,A
SETB P2.0
CLR P2.1
SETB P2.2
ACALL DELAY
CLR P2.2
RET
DELAY: MOV R3,#50
HERE2: MOV R4,#255
HERE: DJNZ R4,HERE
DJNZ R3,HERE2
RET
END
Experiment 7: Develop an ALP involving study of 8051 Timer Interrupt..
ORG 00H
LJMP MAIN
ORG 000BH
SETB P2.3
RETI
MAIN:
MOV IE,#82H
MOV A,#38H
ACALL CMD_WRT
ACALL DELAY
MOV A,#0EH
ACALL CMD_WRT
ACALL DELAY
MOV A,#06H
ACALL CMD_WRT
ACALL DELAY
MOV A,#01H
ACALL CMD_WRT
ACALL DELAY
MOV A,#80H
ACALL CMD_WRT
ACALL DELAY
MOV R0,#000BH
GO:
MOV A,#'C'
ACALL DATA_WRT
ACALL DELAY
DJNZ R0,GO
AGAIN: SJMP AGAIN
CMD_WRT:
MOV P1,A
CLR P2.0
CLR P2.1
SETB P2.2
ACALL DELAY
CLR P2.2
RET
DATA_WRT:
MOV P1,A
SETB P2.0
CLR P2.1
SETB P2.2
ACALL DELAY
CLR P2.2
RET
DELAY: MOV TMOD,#01H
MOV TH0,#25H
MOV TL0,#44H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
END
Experiment 8: Develop an ALP involving study of 8051 External Interrupt..
SJMP START
ORG 0003H
MOV A,#'A'
ACALL DATA_WRT
ACALL DELAY
RETI
ORG 0013H
CPL P2.4
RETI
ORG 50H
START:
MOV A,#38H
ACALL CMD_WRT
ACALL DELAY
MOV A,#0EH
ACALL CMD_WRT
ACALL DELAY
MOV A,#01H
ACALL CMD_WRT
ACALL DELAY
MOV A,#06H
ACALL CMD_WRT
ACALL DELAY
MOV A,#84H
ACALL CMD_WRT
ACALL DELAY
MOV IE,#10000101B
HERE:
MOV A,#'C'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'S'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'E'
ACALL DATA_WRT
ACALL DELAY
MOV A,#' '
ACALL DATA_WRT
ACALL DELAY
AGAIN: SJMP HERE
CMD_WRT:
MOV P1,A
CLR P2.0
CLR P2.1
SETB P2.2
ACALL DELAY
CLR P2.2
RET
DATA_WRT:
MOV P1,A
SETB P2.0
CLR P2.1
SETB P2.2
ACALL DELAY
CLR P2.2
RET
DELAY: MOV R3,#200
HERE2: MOV R4,#255
HERE1: DJNZ R4,HERE1
DJNZ R3,HERE2
RET
END
Experiment 9: Develop an ALP to interface 8051 to LCD Display..
ORG 00H
MOV A,#38H
ACALL CMD_WRT
ACALL DELAY
MOV A,#0EH
ACALL CMD_WRT
ACALL DELAY
MOV A,#01
ACALL CMD_WRT
ACALL DELAY
MOV A,#06H
ACALL CMD_WRT
ACALL DELAY
MOV A,#81H
ACALL CMD_WRT
ACALL DELAY
MOV A,#'S'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'I'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'V'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'A'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'N'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'A'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'N'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'D'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'A'
ACALL DATA_WRT
ACALL DELAY
MOV A,#06H
ACALL CMD_WRT
ACALL DELAY
MOV A,#0C7H
ACALL CMD_WRT
ACALL DELAY
MOV A,#'1'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'4'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'0'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'0'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'3'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'4'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'7'
ACALL DATA_WRT
ACALL DELAY
MOV A,#'7'
ACALL DATA_WRT
AGAIN: SJMP AGAIN
CMD_WRT:
MOV P1,A
CLR P2.0
CLR P2.1
SETB P2.2
ACALL DELAY
CLR P2.2
RET
DATA_WRT:
MOV P1,A
SETB P2.0
CLR P2.1
SETB P2.2
ACALL DELAY
CLR P2.2
RET
DELAY: MOV R3,#50
HERE2: MOV R4,#255
HERE: DJNZ R4,HERE
DJNZ R3,HERE2
RET
END



