Professional Documents
Culture Documents
KeyBoard Program
KeyBoard Program
RS--> P3.7
RW--> P3.6
EZ--> P3.5
LCD Data --> P1
OUT of Keyboard(row)--> P2
IN of Keyboard(Coloumn)--> P3
*/
org 0000h
acall init
start: call display
lcall keyboard
acall delay1
sjmp start
init:
mov a,#38h
acall com
mov a,#0eh
acall com
mov a,#01h
acall com
ret
display:mov a,#01h
acall com
mov a,#80h
acall com
mov r4,#12d
mov a,#00h
mov dptr,#mydata
next: clr a
movc a,@a+dptr
acall data1
inc dptr
djnz r4,next
ret
com: acall chkdb7
clr p3.7
clr p3.6
setb p3.5
mov p1,a
clr p3.5
ret
data1:acall chkdb7
setb p3.7
clr p3.6
setb p3.5
mov p1,a
clr p3.5
ret
chkdb7:
setb p1.7
clr p3.7
setb p3.6
bac:
clr p3.5
setb p3.5
jb p1.7, bac
ret
delay1:
mov r0,#08h
db "key pressed:"
keyboard:mov p3,#0ffh
mov p2,#00h
label1:
mov a,p3
anl a,#00000011b
cjne a,#0000011b,label1
label2:
mov p3,#0ffh
mov p2,#00h
mov a,p3
anl a,#00000011b
cjne a,#0000011b,label
sjmp label2
mov p2,#11111101b
mov a,p3
anl a,#00001111b
cjne a,#00001111b,keycode1
ljmp label2
keycode0:mov dptr,#code0
sjmp find
keycode1:mov dptr,#code1
find:
rrc a
jnc match
inc dptr
sjmp find
match:
clr a
movc a,@a+dptr
lcall data1
ret
org 300h
code0:
db '0','1'
code1:
db '2','3'
end