Hallo Andreas,
Ich habe mir das mal angesehen und etwas vereinfacht.
Ich hoffe durch die Kommentare, verstehst du jetzt, warum die Spalten auf "0" gesetzt werden müssen.
Code:Ddrd = &B10000100 Portd = &HFF 'bei den Eingängen Pullup's ein und Ausgänge auf high Dim Spalte As Byte Dim Zeile As Byte Dim Taste As Byte 'Jetzt sind alle Portpins "1". Wenn eine Taste gedrückt wird passiert nichts! Do For Spalte = 0 To 1 'Deshalb wird jetzt jeweils 1 Spalte "0" gesetzt If Spalte = 0 Then Reset Portd.2 If Spalte = 1 Then Reset Portd.7 For Zeile = 3 To 6 Select Case Zeile 'ist jetzt eine Taste gedrückt,wird der entsprechende Eingang auch "0" Case 3 : If Pind.3 = 0 Then Taste = Spalte + 1 'Portd.2=0 und Pind.3=0 => Taste1 / Portd.7=0 und Pind.3=0 => Taste2 Case 4 : If Pind.4 = 0 Then Taste = Spalte + 3 'Portd.2=0 und Pind.4=0 => Taste3 / Portd.7=0 und Pind.4=0 => Taste4 Case 5 : If Pind.5 = 0 Then Taste = Spalte + 5 Case 6 : If Pind.6 = 0 Then Taste = Spalte + 7 End Select Next Portd = &HFF Next Locate 1 , 1 Lcd "Taste " ; Taste ; " gedrueckt" Loop End







Zitieren
Lesezeichen