Forum: Mikrocontroller und Digitale Elektronik 7 Segment ansteuern


von Christine (Gast)


Lesenswert?

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?

von Leopold Stockinger (Gast)


Lesenswert?

hallo christine,
hab deine mail schon erhalten.
was ist das denn für eine platine wo die anzeigen drauf ist?
lg leo

von Christine (Gast)


Lesenswert?

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

von Leopold Stockinger (Gast)


Lesenswert?

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

von Leopold Stockinger (Gast)


Lesenswert?

 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

von Leopold Stockinger (Gast)


Lesenswert?

; Adressen im Ram festlegen...
H   equ    000h
Z   equ    001h
E   equ    002h

von Christine (Gast)


Lesenswert?

danke

ich versuche mein bestes mit unmengen kaffee und papier mal was auf die
reihe zu bekommen für mein projekt

von Josef (Gast)


Lesenswert?

Was ist denn das für eine Schule ?


Josef

von Christine (Gast)


Lesenswert?

mh ein Informationstechnisches Gymansium in BW

ich finde es eigentlich ziemlich cool

von Leopold Stockinger (Gast)


Lesenswert?

hast du schon mal das datenblatt von deinem controller durchgelesen?

von Christine (Gast)


Lesenswert?

ja mh ich schicke dir mal die schaltplan ok?

von Christine (Gast)


Lesenswert?

hoffe es funktioniert

von Christine (Gast)


Lesenswert?

@ leo konnte es nicht hochladen hab dir ne e-mail geschickt

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.