Microcontroller-Tutorial - Teil III - 7-Segment-Anzeigen

  • Ok, hier mal ein recht einfacher Teil...
    Jeder kennt diese tollen 7-Segment-Anzeigen, die so schön nach 80er High-Tech Aussehen - aber wie steuert man sie an?


    Auch hier wird wieder gemultiplext, im Prinzip besteht das Display in diesem Fall aus drei Stellen mit je 7 Segmenten (Daher der Name...).
    Jede Stelle kann individuell aktiviert werden, die einzelnen Segmente werden immer über die gleichen Pins vorgegeben.


    Also würde bei mehreren aktiven Stellen gleichzeitig alle Stellen die gleichen LEDs aktiv haben.


    Somit nutzt man die Trägheit des Auges, um die Stellen einzeln anzusteuern:
    - 1. Stelle aktiv machen
    - LEDs anschalten
    - kurz warten
    - LEDs ausmachen
    - Nächste Stelle aktivieren
    - Neue LED-Kombination anzeigen
    - usw...


    Wie gesagt: Stichwort Multiplexing


    Ich habe die Anzeige hier von Pollin genutzt: http://www.pollin.de/shop/shop…hp&pg=NQ==&a=MzM3OTc4OTk=, aber im Prinzip sind die meist gleich gestrickt. Die hier hat gemeinsame Kathode pro Stelle, gemeinsame Anode gibts natürlich auch, dann müsste man im angehangenen Programm entsprechend die Pins von 0 auf 1 und von 1 auf 0 stellen.
    Die Pinbelegungen der verschiedenen Module unterscheiden sich natürlich! Ohne Datenblatt muss man erstmal auf die Suche gehen...


    Hier mal ein Bild der Anzeige im Betrieb am Pollin-Board:
    [Blockierte Grafik: http://img407.imageshack.us/img407/8487/7segment1rc3.th.jpg]


    Der Code ist vollständig kommentiert, sollte verständlich sein.
    Die Anzeige zählt im Sekundentakt um 1 hoch, allerdings nur so ungefähr, wers genau will muss nen Uhrenquarz oder zumindest nen Interrupt benutzen!


    Erweiterungen des Codes bitte hier posten, dann haben wir alle was davon!


    Stefan Z

  • Hallo Stefan,


    schöner Beitrag zu immer noch guten Anzeigeeinheiten, auch wenn es immer weniger werden.
    Aber die Sichtbarkeit der LED Anzeigen wird von keinem LCD Display erreicht.


    Als Ergänzung möchte ich nur noch folgendes hinzufügen:
    Die direkte Ansteuerung über einen Prozessor kostet immer viel Rechenleistung
    und einige Ports, die oft für was anderes gebraucht würden.


    Es gibt hier unter anderem einige BCD Treiber ICs oder aber von Philips einen I2C
    7 Segment Treiber, das SAA1064. Braucht nur 4 Leitungen, kann verschiedene
    Segmentströme (Helligkeiten) steuern, hält den angezeigten Wert und braucht nur
    angesteuert werden wenn sich die Anzeige ändert. Ein SAA1064 kann 4 Anzeigen
    ansteuern und es können mehrere ICs an einem Bus betrieben werden.
    Dadurch wird der Prozessor spürbar entlastet da auch das Multiplexing wegfällt.


    Vielleicht kann ja jemand was damit anfangen.


    MfG Raimund

  • Jau klar, das kann man alles auslagern und einfacher machen.
    Aber hier gehts hauptsächlich erstmal darum, dass die µC-Anfänger hier überhaupt verstehen, wie das prinzipiell funktioniert.


    Fragen danach werden ja regelmäßig gestellt.


    Auch meine Umsetzung ist nicht unbedingt resourcenschonend, aber halt verständlich (hoffe ich).