Wednesday, 28 September 2016

MPMC Lab Experiments Solutions

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 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..

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




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



Wednesday, 20 July 2016

My First Blog

Hello 2 EveRyOne!!!!


This is my First Blogger to publish all the contents of the academic year 2016-2017. Now onwards I am Going to post all the contents in this Blog instead of sending the mails to the group.

Please Make a Note of It..

If there are any suggestions regarding it, please comment in the blogger..

Thank You Friends..


Mobile Number: 7032555759