habe ich schon, gebe ich dir aber nicht. Ist erstens in C und zweitens
willst du was lernen.
Aber das Prinzip erkläre ich dir gerne:
Eigentllich besteht das Ganze aus 3 Abschnitten:
-Umrechnung der Dualzahl in einzelne Dezimalstellen
-Umkodierung dieser Dezimalstellen in Siebensegmentcode (das macht man
am einfachsten mit einer Tabelle)
-Ausgeben der einzelnen Stellen.
zu 1: du dividierst die Dualzahl durch 10, das Ergebnis merken, den
Rest speichern.
Ergebnis nochmal durch 10, Rest ergibt die Zehner, Ergebnis die
Hunderter.
Dividierroutinen: Atmel asm200.
Jetzt hast du 3 oder 4 Bytes vorliegen, je nachdem ob du mit 3 oder
4stelliger Anzeige arbeiten willst, im Bereich von 0-9.
Jetzt brauchst du eine Tabelle von 10 Bytes, am besten im Flash ablegen
mit dem zu jeder gehörenden Siebensegmentcode. Da lädst einen Zeiger mit
der Anfangsadresse der Tabelle und holst dir den passenden
Siebensegmentcode und speicherst diesen in einem Register (oder auch in
dem, wo das Ergebnis der Dezimaldivision stand.
Damit ist die Berechnung fertig. Fehlt noch die Ausgabe:
Timer programmieren, der z.B. alle 1ms auslöst. Beim ersten Mal das
Bitmuster für die Hunderter-Stelle ausgibt, anschliessend den
Anodentreiber für die Hunderter-Stelle aktiviert. Beim nächsten Mal
sind dann die Zehner dran, dann die Einer. Danach von vorn.