'---- Subroutine to Key from keypad ----
'
getkey:
;
key = 0
PortC = 0 ' all outputs pins low
TrisC = $f0 ' bottom 4 pins out, top 4 pins in
;
input PORTC
;
pause 250
;
PORTC = %11111110 ' row 1
;
if PORTC.4 = 0 then
key = 1
return
endif
;
if PORTC.5 = 0 then
key = 2
return
endif
;
if PORTC.6 = 0 then
key = 3
return
endif
;
if PORTC.7 = 0 then
key = 12
return
endif
;
PORTC = %11111101 ' row 2
;
if PORTC.4 = 0 then
key = 4
return
endif
;
if PORTC.5 = 0 then
key = 5
return
endif
;
if PORTC.6 = 0 then
key = 6
return
endif
;
if PORTC.7 = 0 then
key = 13
return
endif
;
PORTC = %11111011 ' row 3
;
if PORTC.4 = 0 then
key = 7
return
endif
;
if PORTC.5 = 0 then
key = 8
return
endif
;
if PORTC.6 = 0 then
key = 9
return
endif
;
if PORTC.7 = 0 then
key = 14
return
endif
;
PORTC = %11110111 ' row 4
;
if PORTC.4 = 0 then
key = 10
return
endif
;
if PORTC.5 = 0 then
key = 0
return
endif
;
if PORTC.6 = 0 then
key = 11
return
endif
;
if PORTC.7 = 0 then
key = 15
return
endif
;
goto getkey
return
;
gotkey:
key = (col * 4) + (ncd (row ^ $f))
'
return
'
end
Bookmarks