8051 code to read two digit from hex-keypad and to display the sum in seven segment display using multiplexed seven segment display teechnique

hex key-pad



ORG 0000H
mov p1,#0000h
mov dptr,#code7
start:mov r1,#30h
lcall key
inc r1
lcall key
mov a,30h
mov r7,a
mov a,31h
add a,r7
da a
mov r7,a
anl a,#0fh
mov r1,a
mov a,r7
swap a
anl a,#0fh
mov r7,a
lcall display
KEY:
MOV R4,#0FEH
MOV r6,#04
mov r5,#000h
nextrow:
mov p2,04h
mov a,p2
xrl a,r4
jnz row
mov a,r5
add a,#04h
mov r5,a
mov a,r4
rl a
mov r4,a
djnz r6,nextrow
ljmp key
row:
mov a,p2
anl a,#0f0h
swap a
cnt:
rrc a
jnc done
inc r5
JMP CNT
DONE:
mov 0a0h,#0f0h
mov a,0a0h
xrl a,#0f0h
jnz done
mov @r1,05
ret
display:
mov p3,#00
up8:

SETB P3.0
mov a,r1
movc a,@a+dptr
MOV P1,a
lcall delay
clr p3.0
SETB P3.1
mov a,r7
movc a,@a+dptr
MOV P1,a
lcall delay
clr p3.1
jmp up8
delay:
mov 80h,#01h
up2:mov 50h,#0efh
here:djnz 50h,here
djnz 80h,up2
ret
CODE7: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
end

Comments