Forum: Mikrocontroller und Digitale Elektronik Eingaben in Datenspeicher schreiben


von Patrick Reh (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, ich fange gerade mit der PIC - Programmierung (16f627) in
Assembler an und habe ein Problem:

Ich möchte Daten von einer Tastatur einlesen (3x4, eine typische
Zahlentastatur). Für jede gedrückte Taste wird ein bestimmter Wert
ermittelt und im SPeicher abgelegt. Natürlich wird der Wert beim
nächsten Abfragen der Tastatur wieder überschrieben. Wenn ich jetzt die
eingegebenen Werte nacheinander im Datenspeicher ablegen will (den
ersten wert unter 0x30, den nächsten unter 0x31, 0x32, ...), wie kann
ich das machen? Ich müsste jedes mal wenn eine Taste gedrückt wird,
einen Zähler um 1 erhöhen und den tastenwert in die Speicherstelle
schreiben, deren Wert dem aktuellen Zählerstand entspricht. So kann ich
mir das vorstellen. ich hab aber keine Ahnung wie ich das in Assembler
bewerkstelligen soll. Kann mir jemand helfen?

Und ich habe noch eine Frage: Wenn ich einen Text zb auf einem
LCD-Display ausgeben will, der fest im Programmspeicher eingespeichert
wird, wie kann ich diesen Text definieren, ohne jedes Zeichen einzeln
anzugeben? Siehe auch Dateianhang

Vielen Dank für die Hilfe!

Mfg
patrick

von A.K. (Gast)


Lesenswert?

Such mal nach dem Register FSR und der Adresse INDF.

Tabellen werden bei den 12-14bit PICs über angesprungene RETLW Befehle
realisiert.

von Patrick Reh (Gast)


Lesenswert?

Danke für den Tipp!
Ich habs gleich ausprobiert und es wirklich einfach.

Aber das mit den Tabellen versteh ich nicht so ganz, was hilft mir das
bei dem String-Problem? (Kann sein, dass ich grade ein wenig auf der
Leitung stehe...)

von A.K. (Gast)


Lesenswert?

Verzeihe meine etwas agnostische Syntax, ich kenne die PICs nur
ungefähr.

Tabelle:
  retlw 'H'
  retlw 'a'
  retlw 'l'
  retlw 'l'
  retlw 'o'

Und nun besteht die Aufgabe darin, abhängig vom Tabellenindex die
richtige Adresse anzuspringen. Auch das läuft - typisch für PICs -
etwas anders als allgemein üblich: siehe Register PCL, da kann man auch
reinschreiben. Logischerweise nur durch Code innerhalb des gleichen
256-Byte Blocks möglich.

von Patrick Reh (Gast)


Lesenswert?

Ok, Danke für die Tips. ich werde mir mal anschauen wie ich das mache...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.