Hier mein Programm zur Einlesung:
; scan key matrix 3 * 4
; p2.3 .. p2.0 = row 3 .. 0
; p2.6 .. p2.4 = column 2 .. 0
; output: A = key code: key pressed, A = 0: no key pressed
keyscan:
mov r7, #12 ; 1. key number
mov a, #0FEh ; prepare 1. row = low
_keysc1:
mov p2, a ; set p2 with selected row, columns with pullups
rl a ; prepare next row = low
jnb p2.4, _keysc2 ; check column 0
dec r7 ; count down key number
jnb p2.5, _keysc2 ; check column 1
dec r7
jnb p2.6, _keysc2 ; check column 2
djnz r7, _keysc1 ; next row
clr a
ret ; A = 0: no key found
_keysc2:
mov a, r7
movc a, @a+pc ; convert 1 .. 12 to key code
ret
db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ; key code LUT
Jedoch spinnt jetzt das Display total?
Kann mir jemand helfen?
Um ASCII Zeichen angezeigt zu bekommen mache ich einfach das:
db '1', '2', '3', '4', '5', '6'
db '7', '8', '9', 'A', 'B', 'C' ; key code LUT
aber die LCD spinnt grade und macht Hieroglyphen, HILFE
gruß
- - - Aktualisiert - - -
Ich habe wirklich schon sehr viel Code der funktioniert.
Das einzige was noch fehlt ist das mit der Tastatur.
Das gepostete Programm ging am Anfang, als ich es dann jedoch in ASCII ausgeben wollte fing auf einmal an die LCD komische Sachen auszuspucken und jetzt reagiert sie nicht mehr und sendet keine Nullen mehr wie am Anfang.
Also so komische Hieroglyphen nur noch.
Kann mir jemand bitte bitte ein kleines Programm schreiben wo ich eine Taste drücke und diese dann in einer Variablen, zB in 30h gespeichert wird und dann ausgibt an die LCD, BITTE.
Falls es möglich wäre mit Kommentaren
Gruß
Lesezeichen