Mpi Assignment 2
Mpi Assignment 2
ENGINEERING,
FAST-NU, LAHORE
15L-4557
BS-EE-2B
ASSIGNMENT # 2
MOV R1,#50
JB P2.3 , $ ret
MOV A,P1
CHECK_NEXT:
RRC A
JC FOUND
INC R0
JMP CHECK_NEXT
FOUND:
MOV 50H,R0
Q#2
MOV R6,50H
JMP MAIN
;P1.0 CONTROL SWITCH
RET
;P2.3 = MSB , P2.0 = LSB
AGAIN_INPUT: FINAL_ONE:
JB P1.0 ,$ JC ANSWER
JMP AGAIN_INPUT
MOV A,R0
JC BIG_NUMBER
POP 32H
CHECK_NEXT: DELAY_25mS:
MOV R6,#50
SUBB A,#30H
MOV R0 ,A
MOV B, #10
END
MUL AB
MOV R0 ,A
INC A
INC R7
MOVC A ,@A+DPTR
CLR C
SUBB A,#30H
MOV R1 ,A
Q#3:
;FOSC = 12MHZ ADD A,0H ;R0 = 0H
MOV P2 , A
CJNE A,#8H,NEXT_NUMBER
DELAY_25mS:
MOV R4,#50
JUMP1:
MOV R5,#250
JUMP2:
DJNZ R5,JUMP2
DJNZ R4,JUMP1
Q#4
ret
MOV R3,#40
CALL DELAY_25mS
RET
;LCD STARTING
MOV A , #0EH
LIST: DB "12","54","39","89"
CALL COMMAND_WRT
END
;;;;; keypad info
rows equ 4 anl a,r0
cols equ 3
cjne a,0h,key_pressed
rl a
rlc a
key_pressed:
cjne r1,#cols,rot_again
call delay ; debounce time
again1:
;;;;; start scanning
rrc a
start:
jnc findkey
mov r0,a ; mask is in r0
inc r3 ; r3 contains
again: the column index
mov r1,#0feh ; ground 0th row jmp again1
mov r2,#0
mov a,#cols
next_row: mov b,r2
mov p1,r1 mul ab
mov a,p2 add a,r3
mov dptr,#key
movc a,@a+dptr MOV B , #2
MOV 63H , B
release_key: MOV B , #2
cjne a,0h,release_key
MUL AB
MOV A,63H
MOV A , 60H
MOV A,61H
MOV B , #2
ADD A,30H
DIV AB
CALL DATA_WRITE
MOV 61H , B
MOV B , #10
jmp again
DIV AB
COMMAND_WRT:
MOV 62H , B
CALL DELAY MOV R5,#45
MOV P3 , A lOOOP:
RET DELAY_25mS:
RET
org 0x100
enD