als erstes mal hallo. ich soll für die schule ein programm in assembler schreiben mit dem man 4 7-Segmentanzeigen nacheinander anhalten kann. das programm soll also so aussehen das die erste 7 seg anzeige immer von 0 bis 9 hochzählen soll bis ich einen taster drücke. dabei soll dann die zahl stehen bleiben die gerade angezeigt wurde und die nächste 7-seg anzeige soll starten. dies soll dann mit allen 4 anzeigen so passieren, damit ich am ende sozusagen 4 zufallszahlen durch den jeweiligen tasterdruck erhalten hab. so jetzt zu meiner eigentlichen frage. da ich eigentlich so gut wie ein neuling auf dem gebiet bin, hab ich eigentlich keine ahnung wie ich überhaupt anfangen soll. also wie man die 7-seg anzeige ansteuert ist schon klar, aber wie man des so hinbekommt das die nach jedem taster drücken stehen bleiben und dann die nächste anzeige los läuft, ist mir ein rätsel. wäre echt super wenn ihr mir ein bissel helfen könntet dabei. danke schon mal im voraus
@hallo Es findet sich sicher noch heute Einer ,welcher dir hilft.# Ich kann nicht. Habe nur in der Kneipe bis 9 gezählt(Bier) Morgen weiter! MfG
@Juppi: prost, ich hab mein Bier (aber nur 1) grad zuhause getrunken @Markus Programmieren ist gar nicht so schwer wie es aussieht, und man muß auch nicht erst einmal "asseblerisch" denken um einen Algorithmus formulieren zu können. versuche, das ganze erst einmal in einem "Pseudocode" zu beschreiben was du vorhast. Und dann schreibst du das ganze um auf Assembler. Hier wäre mal ein Anfang: Initialisiere Prozessor speichere einen initial-Wert aus-aus-aus-aus für die 4 Segmente im Hauptspeicher ab. Gebe den gespeicherten Anzeigewert des HAuptspeichers auf der Anzeige aus Warte, bis Taste gedrückt # mache folgendes für das "erste" Segment: Warte bis Taste losgelassen wird speichere einen Start-Zählerstartwert "0" zwischen in einem Prozessor-Register solange Taste nicht gedrückt ist lese wert des Prozessorregisters aus und speichere diesen Wert für das "erste" Segemnt im Hauptspeicher ab. Gebe den gespeicherten Anzeigewert des HAuptspeichers auf der Anzeige aus erhöhe den Prozessor-Register-Wert um 1. Falls der Wert = 10 ist dann setze ihn zu 0 warte eine kleine Zeit (1/10 Sekunde?) prüfe, ob Taste gedrückt ist falls nein, mache wieder oben weiter beim "solange ..:" # mache folgendes für das "zweite" Segment: wie zuvor, jedoch "erste" durch "zweite" ersetzen # mache folgendes für das "dritte" Segment: wie zuvor, jedoch "zweite" durch "dritte" ersetzen # mache folgendes für das "vierte" Segment: wie zuvor, jedoch "dritte" durch "vierte" ersetzen Jetzt sind alle 4 Anzeigen vollständig, und nun mußt du dir überlegen was weiter passiert. Möglicherweise soll es wieder wie am Anfang losgehen, dann warte halt nochmal auf einen Tastendruck (Taste drücken - taste loslassen) und fange halt dort weider an mit der Programm-Abarbeitung. --------- jetzt wird dire direkt auffallen, daß ja eigentlich 4 mal etwas sehr ähnliches passiert, und du wirst dich vielleicht fragen, ob man das nicht "eleganter" machen kann. Ja, man kann, man könnte das nämlich in einer Schleife laufen lassen! Der wiederholende Block wird dann halt noch eine Schleifenvariable (erste zweite dritte vierte) benötigen In der konkreten Programm-Umsetzung werden folgende Randbedingungen und Fragestellungen auftreten: Eingabe: Die Tastenansteuerung ist hier nur recht simpel beschrieben. Jetzt ist es in Realität so, daß Tasten prellen können und werden. Wenn du also eine Taste gedrückt hast, werden in Wirklichkeit ein paar mal die Kontakte betätigt sein (auch wenn es nur tausendsdel Sekunden sind. Da die Programm-Abarbeitung recht flott ist, könnte es passieren, daß du schon beim 2. oder 3. Segment angekommen bist, obwohl du scheinbar nur 1 * die Taste gedrückt hast. --> Du brauchst also eine "Eingabe-Subroutine", welche das Tastenprellen abfängt. Ausgabe: wie steuerst du denn eigentlich deine Segment-Anzeige an? vermutlich wirst du ja keine 7 * 4 = 28 einzelne LED ansteuern, sondern "irgendwie anders". Du brauchst also vermutlich eine Art "Ausgabe-Subroutine", welche die Sache irgendwie passend für deine vorhandene Hardware aufbereitet
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.