« Prinzipieller Aufbau eines Programmes | Hauptseite | Mehrere Siebensegmentanzeigen (Multiplexing) »

Eine Siebensegmentanzeige ansteuern

Zurück zur Übersicht

Jetzt gehts richtig los. Eine Siebensegmentanzeige sieht folgendermaßen aus:

Jede Anzeige hat einen gemeinsamen Anschluss (das kann je nach Bauart eine "gemeinsame Anode" oder eine "gemeinsame Kathode" sein). Die anderen sieben Anschlüsse steuern je ein Segment. Eine Siebensegmentanzeige ist also nichts weiter als sieben Lampen in einem Gehäuse. Soweit alles klar?
Jeder weiß ja, dass man für eine LED zwei Potentiale braucht. Der Volksmund spricht von + und - Minuspol. Mit dem Prozessor heisst das ganze "Low" und "High". Also "5V" und "0V". Wenn wir also ein Segment zum leuchten bringen wollen, müssen wir an den gemeinsamem Anschluss genau das Gegenteil anlegen, wie an den Steuereingang. Wollen wir die Lampe abschalten brauchen wir das gleiche Potential.

Möchten wir beispielsweise ein "P" anzeigen, müssen wir alse folgende Segmente leuchten lassen: a,b,g,f, und c.


An die Arbeit: So sieht das Programm aus:

#include <avr/io.h>
#include <avr/delay.h>

int main ( void ) {

//Port C auf Ausgang schalten (Auswahl)
DDRC = 0xFF;
//Port A auf Ausgang schalten (Daten)
DDRA = 0xFF;


while ( 1 ) {

//Ein "P" auf die Anzeige
PORTC = 0b00001000;
PORTA = 0b00001100;
_delay_ms(1);
 }
}

Und nun die Erklärung:
- In den ersten Teilen binden wir wieder die benötigten Header Dateien ein. Zusätzlich zu der io.h brauchen wir noch die "delay.h". Dies erlaubt uns eine kleine Warteschleife einzubauen

- Die Initialisierung ist sehr wichtig. Der Port "A" und "C" wird auf Ausgang geschaltet. Simples Prinzip: Mit dem "C-Port" geben wir überhaupt Strom auf den gemeinsamen Port. So schalten wir sie ein.
Mit dem "A-Port" sagen wir welche Segmente leuchten sollen.

- In der Hauptschleife kommt nun die eigentlich Ausgabe: Im Klartext heisst das folgendes:
PORTC = Pin 4 auf "High", alles andere auf "Low"
PORTA = Pin 3 & Pin 4 auf "Hight", alles andere auf "Low"

Was sagt uns das? Pin 3 & 4 entspechen "c" & "d", und genau die haben gleiches Potential wie der gemeinsame Pin -> Sie leuchten nicht =) Alles andere hat einen Potentialunterschied und leuchtet.

Viel Spaß beim Ausprobieren!

TrackBack

TrackBack-URL zu diesem Eintrag:
http://funnys-home.de/cgi-bin/mt3/mt-tb.cgi/54

Kommentar schreiben

(Wenn Sie auf dieser Site bisher noch nicht kommentiert haben, wird Ihr Kommentar eventuell erst zeitverzögert freigeschaltet werden. Vielen Dank für Ihre Geduld.)

Zufallsbildchen

Über diese Seite

Diese Seite enthält einen einzelnen am 16.11.07 19:14 erschienenen Blogeintrag.

Zuvor erschien in diesem Blog Prinzipieller Aufbau eines Programmes.

Danach erschien Mehrere Siebensegmentanzeigen (Multiplexing).

Viele weitere Einträge finden Sie auf der Hauptseite und im Archiv.

Powered by
Movable Type 3.35