7 Segment ansteuern

Gast #124622
Ich versuche jetzt mein Programm weiter zu entwickeln,
sodass mein Zähler auf 99 Zählen kann, aber ich habe Probleme
mit der Ansteuerung der anderen 7Segment Anzeigen.
Also auf der Platine sind 4 7Segmentanzeigen und zwei
Ports. Das eine Port wählt automatisch die erste
Anzeige aus und das andere Port da muss man irgendwas
setzten um die anderen Anzeigen anwählen zu können, es
ist sozusagen das Steuerport,
hat jemand vielleicht eine Ahnung?
Gast
also ich habe eine Hauptplatine mit Mikrocontroller und 4 Ports
und dann als sozusagen externe Platine eben eine mit 4 7Segmentanzeigen
und zwei Ports

also irgendwie von der schule entwickelt
Gast
hab andis beitrag gelesen - er hat recht!
aber leider kann ich dir ohne schaltplan deiner platine nichts
genaueres sagen.
----

@binär-bcd-konvertierung: weißt du wie das geht?
in einem register, zb. akku (a) steht dein wert. es ist ein 8-bit-wert,
dh. er kann einen wert zwischen 0...255 aufnehmen! diesen gilt es nun,
in eine binär-codierte-dezimalzahl BCD zu wandeln.

Ob die routine 100%ig stimmt, kann ich dir nicht versichern,
da ich normalerweise mit avrs arbeite...


; Adressen im Ram festlegen...
H   equ    XXXh
Z   equ    YYYh
E   equ    ZZZh

;***************************************************
;*** BINÄR-BCD-KONVERTIERUNG                     ***
;*-------------------------------------------------*
;*** Binärzahl muss im Akku übergeben werden     ***
;***************************************************
bin2bcd:
;hunderter-stelle
          push  acc
          mov   b, #100    ; wert 100 ins b-register schreiben
          div   ab         ; binärwert im a durch 100 dividieren
                           ; ergebnis steht im Akku (rest im b)
          mov   H, a       ; hunderterstelle im RAM ablegen
          pop   acc
          mov   b, #100
          subb  a, b       ; 100 subtrahieren

;zehner-stelle
          push  acc
          mov   b, #10     ; wert 10 ins b-register schreiben
          div   ab         ; binärwert im a durch 10 dividieren
                           ; ergebnis steht im Akku (rest im b)
          mov   Z, a       ; hunderterstelle im RAM ablegen
          pop   acc
          mov   b, #10
          subb  a, b       ; 10 subtrahieren

;einer-stelle
          mov   E, a       ; hunderterstelle im RAM ablegen
Gast
 tschuldigung 
hab bei den kommentaren vergessen den text umzuändern, weil ich sie
kopiert habe. es muss natürlich stehen:
   hunderterstelle im ram ablegen
   zehnerstelle im ram ablegen
   einerstelle im ram ablegen

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.