PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : at89c5131 Matrix-Tastatur-Einlesung - Mikrocontroller at89c5131



julian_92
21.06.2014, 00:12
Hallo,

Mikrocontroller at89c5131

ich muss für die Schule ein Codeschloss programmieren.

Und es geht wirklich fast alles, bis auf die Einlesung meiner MatrixTastatur, bitte bitte helft mir.

http://www.mikrocontroller.net/topic/336187#3697671 (http://www.mikrocontroller.net/topic/336187#3697671)

Da steht schon was darüber.


Wie muss ich es anschließen und wie schreibe ich den Code damit es geht?


Oder kann mir jemand seine Email geben der sich damit auskennt, dann würde ich meinen ganzen COde senden?


Beste grüße

PICture
21.06.2014, 11:04
Hallo!

Hardware-Beispiel: http://extremeelectronics.co.in/avr-tutorials/4x3-matrix-keypad-interface-avr-tutorial/ . ASM sollte mit vorhandener "Cäh" Code simpel sein. ;)

julian_92
21.06.2014, 17:53
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ß

oderlachs
21.06.2014, 19:44
Arbeite auch am Keyprojekt, aber in Arduino-C geschrieben...mit asm möchte ich nicht wieder befassen "müssen".

Aber vielleicht hilft es bei den Gedankengängen zur Realisierung. HIER (http://oderlachs.de/forum/pad4x4.html)der Code, nur für 4x4 Tasten

Gerhard