7 Segment Anzeige lässt sich nicht steuern

Gast #2489235
Lesenswert?

Hallo,

ich habe ein merkwürdiges Problem mit den Ports des µC ATMega8.

Die Schaltung: Ich habe eine 7-Segment-Anzeige 
(http://www.datasheets.org.uk/dl/Datasheets-16/DSA-306868.pdf , SA03-11 
, gemeinsame Anode).

Die Anode (Pin 14) habe ich an VCC geklemmt und die Pinnchen für die 
einzelnen Segmente an die Pins PB0, PB1, PB6, PB7 und PD5-PD7.

Mit diesem Code wollte ich alle Segmente dann zunächst erst einmal 
AUSschalten:

  DDRB = 0;
  DDRD = 0;

  PORTB = 0;
  PORTD = 0;

Aber: Alle Segmente gehen nach der Programmierung AN. Während der 
Programmierphase sind sie AUS, daher schließe ich auf einen Softwarebug.
Ich habe mit einem Trafo testweise mal die Verbindungen einzelnd 
durchgetestet, funktioniert einwandfrei. Nur wenn der µC im Sockel 
steckt, gehen alle Segmente an.

Kann sich das jemand erklären?!

Über Hilfe würde ich mich echt freuen! :-)


Gruß,

Matthias
Gast #2489260
Lesenswert?

Hallo Holger,

ich habe mich unvollständig/falsch ausgedruckt:

Auch wenn ich folgendes ausführe, bleiben die PINs trotzdem an:

  DDRB = 0;
  DDRC = 0;
  DDRD = 0;

  PORTB = 0xff;
  PORTC = 0xff;
  PORTD = 0xff;

Jetzt dürfte ja eigentlich kein Strom fließen.

Einen Widerstand habe ich vor VCC geklemmt, weil ich vorhabe immer
nur ein Segment gleichzeitig leuchten zu lassen.

Gruß, Matthias
Gast #2489313
Lesenswert?

> Laß die Krümeltaktik.
> Zeig das komplette kompilierfähige Programm als Dateianhang.

Nützt doch nichts.
Hinterher kommt noch raus,
daß er extern Transistoren angeschlossen hat,
so wie er die Vorwiderständee "vergessen" hat zu beschreiben.
Gast #2489339
Lesenswert?

>VCC -> Widerstand (180 Ohm) -> Anode der Segmentanzeige.
>
>Jedes Segment -> Unterschiedlicher Pin am µC.

Und wo am uC hast du VCC angeschlossen?
Falls gar nicht dann können die LEDs tatsächlich alle leuchten.
Also her mit der kompletten Schaltung.
#2490273
Lesenswert?

Und bitte definier deine Ports als Ausgang:

 DDRB = 0xFF; //nicht 0x0
 DDRD = 0xFF; //nicht 0x0

Und dann bedenke, dass deine Segmente L-Aktiv sind, eine "0" bedeutet 
also "an", eine "1" "aus".

gruß

tobi

PS.: Bitte spendiere den LEDs eigene Vorwiderstände. Nur so ist 
gewährleistet, dass sie stets innerhalb ihrer Spezifikationen arbeiten 
und sich nicht gegenseitig beeinflussen!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren