Forum: Mikrocontroller und Digitale Elektronik Mit Lattice ispLSI 1016E 7 Segment Anzeige ansteuern


von Andi G. (lattice_1016e)


Lesenswert?

Guten Tag alles Zusammen!

Als mein Projekt an der Schule möchte ich eine Digitaluhr mit 7 Segment 
Anzeigen verwirklichen. ( Mit Stunden, Minuten und Sekunden Anzeige, 
also 6 Stück.)
Zur Übung haben wir eine Übungsplatine mit einem Lattice 1016E bekommen. 
Auf dieser Platine kann man sogut wie alles machen bzw. ansteuern.

Diese Platine besitzt zwei 7 Segment Anzeigen.

In der Schule wurden schon die ersten Übungen durchgeführt z.B.:

Truth-Table

([d8,d4,d2,d1]->[a,b,c,d,e,f,g])        ; also die Zuordnung der
[0,0,0,0]->[1,1,1,1,1,1,0];             Zahlen(0-9) zur 7 Segmentanzeige
[0,0,0,1]->[0,1,1,0,0,0,0];
[0,0,1,0]->[1,1,0,1,1,0,1];
[0,0,1,1]->[1,1,1,1,0,0,1];
[0,1,0,0]->[0,1,1,0,0,1,1];
[0,1,0,1]->[1,0,1,1,0,1,1];
[0,1,1,0]->[1,0,1,1,1,1,1];
[0,1,1,1]->[1,1,1,0,0,0,0];
[1,0,0,0]->[1,1,1,1,1,1,1];
[1,0,0,1]->[1,1,1,1,0,1,1];


und die Zuordnung der 7 Segmentanzeige (a,b,c,...) zu freien Pins.

Den Namen des Programms habe ich leider nicht parat, aber werde ihn so 
schnell wie möglich dazuschreiben. Weiß nur, das es eine spezielle 
Konsole war die man Startet und die wiederum ein Windows startet, so 
zusagen "Windows in Windows".


Nun mein Problem:

Als Übung möchte ich mal mit der Sekundendarstellung anfangen:

Ich möchte, dass die zwei 7 Segmentanzeigen mit 00 beginnen und auf 59 
hochzählen.


Wie steuert man alle beide 7 Segment Anzeigen an? Und wie lässt man sie 
im Sekundentakt hochzählen?


Kennt sich jemand da aus? Würde mir sehr weiter helfen.


PS: aus Wunsch könnte ich ein Bild von der Übungsplatine uppen.


Mit freundlichen Grüßen

lattice_1016e

von Flo R. (streuner)


Lesenswert?

> Wie steuert man alle beide 7 Segment Anzeigen an?

Truth-Tabelle für die jeweiligen Ausgangspins habt ihr doch schon 
gemacht.
zweite 7 SA über die daran angeschlossenen Pins ansteuern.

Und wie lässt man sie
> im Sekundentakt hochzählen?

Counter der auf jede steigende Flanke des internen Clocksignals 
hochzählt (Schleife) und somit nach x-mal Zählen die Sekunden ausgibt.

Der Body könnnte ähnlich
http://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.050/vorlesungen/sose09/AES/Blatt5.pdf
aussehen.

von Andi G. (lattice_1016e)


Lesenswert?

Frage! :
Wie würde dann meine truth tabelle bzw. declarations-tabelle aussehen?

Sie müssen wissen, das ich das Programm mit diesen Tabellen füttern 
muss.
Mir fällt die Verständniss, was ich in die Tabelle eintippen muss, das 
zum Beispiel nach der Zahl neuen, die Zahl 10 angezeigt wird.

Die Tabelle die ich oben hingetippt habe, gilt ja nur für eine 7 SA.

Mfg

lattice_1016e

von Andi G. (lattice_1016e)


Lesenswert?

hier aus meinem aufschrieb:

decrations

a,b,c,d,e,f,g pin 37,38,39,40,41,42,43,44  istype'buffer,com';


Also die 7 SA auf die Pins belegen.

von Flo R. (streuner)


Lesenswert?

urden schon die ersten Übungen durchgeführt z.B.:
>
> Truth-Table 1. 7SA
>
> ([d4,d3,d2,d1]->[a,b,c,d,e,f,g])        ; also die Zuordnung der
> [0,0,0,0]->[1,1,1,1,1,1,0];             Zahlen(0-9) zur 7 Segmentanzeige
> [0,0,0,1]->[0,1,1,0,0,0,0];
> [0,0,1,0]->[1,1,0,1,1,0,1];
> [0,0,1,1]->[1,1,1,1,0,0,1];
> [0,1,0,0]->[0,1,1,0,0,1,1];
> [0,1,0,1]->[1,0,1,1,0,1,1];
> [0,1,1,0]->[1,0,1,1,1,1,1];
> [0,1,1,1]->[1,1,1,0,0,0,0];
> [1,0,0,0]->[1,1,1,1,1,1,1];
> [1,0,0,1]->[1,1,1,1,0,1,1];
>

> Truth-Table 2. 7SA
>
> ([d8,d7,d6,d5]->[a,b,c,d,e,f,g])        ; also die Zuordnung der
> [0,0,0,0]->[1,1,1,1,1,1,0];             Zahlen(0-9) zur 7 Segmentanzeige
> [0,0,0,1]->[0,1,1,0,0,0,0];
> [0,0,1,0]->[1,1,0,1,1,0,1];
> [0,0,1,1]->[1,1,1,1,0,0,1];
> [0,1,0,0]->[0,1,1,0,0,1,1];
> [0,1,0,1]->[1,0,1,1,0,1,1];
> [0,1,1,0]->[1,0,1,1,1,1,1];
> [0,1,1,1]->[1,1,1,0,0,0,0];
> [1,0,0,0]->[1,1,1,1,1,1,1];
> [1,0,0,1]->[1,1,1,1,0,1,1];
>

also d sind in diesem Fall die Ausgänge die angesteuert werden, und a 
bis g die einzelnen Segmente der 7 Segmentanzeige.
0000 entspricht somit allen äüßeren Segmenten (a bis f=1=leuchten) ohne 
das Segment in der Mitte (g=0=aus)
Annahme D1 bis D8, wobei d1-d4 für die erste 7SA steht und d5-d8 für die 
2. 7SA
Um nun die Zahl 10 Auszugeben ist es sinnvoll 2 Siebensegmentanzeigen zu 
verwenden ;-)

also die erste 7 SA auf "0000"
und die 2. 7SA auf "0001"
und schon hast du 10 ausgegeben.

von Andi G. (lattice_1016e)


Angehängte Dateien:

Lesenswert?

So vielen Dank. Jetzt habe ich es einiger maßen verstanden!

Aber muss man dann die D´s nicht auch zuorndnen? Oder muss man die nur 
Zuorndnen, wenn man selber zwischen eins und null entscheiden will?

Hier ein Bild der Übungsplatine.

von Andi G. (lattice_1016e)


Lesenswert?

Kennt jemand den Befehl, um die Anzeigen im Sekundentakt laufen zu 
lassen?
Oben wurde ein Counter erwähnt, aber ich weiß nicht recht wie ich ihn in 
den Programmablaufplan und unter welchem Befehl niederschreiben soll.

MfG

lattice_1016e

von Falk B. (falk)


Lesenswert?

@  Andi G. (lattice_1016e)

>      Neues_Bild.JPG
>      2,5 MB, 7 Downloads

>So vielen Dank. Jetzt habe ich es einiger maßen verstanden!

Ja, vielen Dank auch für die Ignoranz gegenüber der Netiquette und 
den Bildformaten!!!

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.