Ich möchte eine Uhr programmieren, schaffe es schon das ein 7-Seg. bis 9 Zählt jetzt möchte ich das bei 9 das nächste segment 1 anzeigt und eben weiter zählt, kann mit jemand beim code helfen?
Hi, (danke Admin, "der Beitrag, auf den sie hier antworten wollen, existiert nicht" x-D) Naja, nochmal kurz: BCD ist eine Lösung. Damit kann man nen binären Zahler so zerlegen, dass jede Ziffer genau 4 Bit benötigt. Mit diesen Halbbytes kannst du dann die Ausgabe der Ziffern erledigen. Bei Atmel gibts dazu einen Codeschnipsel - Angabe deines µC fehlt ja leider... Grüße
Ich verstehe nicht genau was du meinst, also mir geht es nicht um die umsetzung von den zahlen sondern eher um das logische, wie programmiere ich in assembler: if einer =9 then zahl:= zahl+1 and einer:=0 dann soll einer wieder bis neun zählen und zehner wird dann auf 2 erhöht. mein mikrocontroller: ATMEL AT89S8252
Ja eben das geht mit BCD viel einfacher :) Du zählst eine gewöhnliche Binärzahl hoch und konvertierst diese immer zur Ausgabe in BCD. Du kannst natürlich auch für jede Ziffer ein Register verschwenden :)
ich habe eine tabelle erstellt die ich dann immer indirekt über den akku adressiere, das funktioniert ganz gut
Einfacher und Speicher sparender ist es aber, wenn Du gleich bis 60 (24) zählst. Ein Byte kann ja Zahlen bis 255 speichern. Und dann einfach durch 10 teilen, um die Einer und Zehner zu erhalten: mov a, sekunde mov b, #10 div ab ;A = Zehner, B = Einer Peter
Ich verstehe das leider nicht ganz wie du das genau meinst, und dann muss ich ja die zahlen noch in hex umwandeln um sie auf meiner 7-seg- anzeigen zukönnen.
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.