Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
lugez
Anmeldungsdatum: 06.04.2010 Beiträge: 6
|
Verfasst am: 06.04.2010, 10:04 Titel: Schulprojekt |
|
|
Hallo Forumfreunde
ich bin Schüler in einer 10. Klasse einer Realschule in
Baden-Württemberg. Zurzeit führe ich ein Schulprojekt im Profilfach
"Technik" durch.
Dabei geht es darum, eine 7-Segment Anzeige anzusteuern, dabei habe ich
mir überlegt, dass ich dies evtl. mit GW-Basic oder Q-Basic über den seriell Port machen könnte. Leider
kenne ich mich in GW-Basic und Q-Basic nicht besonders gut aus.
Meine Frage an euch wäre, ob ihr mir vielleicht Tipps für die
Programmierung eins Programmes zur Ansteuerung einer 7-Segment anzeige
geben könnten.
Ich danke euch bereits im Voraus
Lukas Schmid |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 06.04.2010, 11:46 Titel: |
|
|
QBasic oder noch besser FreeBASIC ist eine gute Idee für sowas, aber um dir zu helfen musst du sagen wie die 7-Segement anzeige an den Computer angeschlossen wird. Ist das vorgegeben oder kann man das frei entscheiden? |
|
Nach oben |
|
 |
lugez
Anmeldungsdatum: 06.04.2010 Beiträge: 6
|
Verfasst am: 06.04.2010, 17:51 Titel: |
|
|
hallo,
man soll die 7 Segment-Anzeige über einen D-Sub Stecker ansteuern. Die Bauteile etc. habe ich auch schon gekauft und verbaut. Dabei habe ich herausgefunden, dass die Portbelegung vorgeschrieben ist. Wenn ich die den Stecker in die Schnittstelle einstecke, dann leuchten auch alle Segmente.
Gibt es evlt. eine bessere Möglichkeit die 7 Segment-Anzeige anzusteueren?
mfG |
|
Nach oben |
|
 |
-schumi-

Anmeldungsdatum: 28.10.2009 Beiträge: 131 Wohnort: Südbayern
|
Verfasst am: 06.04.2010, 19:35 Titel: |
|
|
Zitat: | QBasic oder noch besser FreeBASIC ist eine gute Idee für sowas |
Dem muss ich zustimmen, aber unter Windows würde ich persönlich FreeBASIC bevorzugen
Wünschenswert währen noch genauere Angaben zur Verbindung mit den Port
Falls die 7 Segmente Funktionieren wie 7 Leds die man unabhängig voneinander ansteuern möchte ist es sehr warscheinlich, das jedes Segment den Zustand der Bits 0-6 des Bytes das man an den Port sendet darstellt.
Das Ganze funktioniert folgendermaßen:
Basisadresse rausfinden: Das geht am besten im Bios. Dort sind die Einträge für alle LPT und COM-Ports. Der Pararellport ist ein LPT, also z.B. LPT1 - je nach dem wo du das Teil anschließt. (Bei LPT1 liegt die Adresse meistens bei &H378, also 378hex - aber nicht drauf verlassen!)
Das ganze kann man dann so ansteuern:
OUT [BASISADRESSE] , [BYTE]
Beispiel:
OUT &H378,255
Byte binär: 11111111
setzt alle Bits high, also alle Segmente leuchten
OUT &H378,0
Byte binär: 00000000
setzt alle Bits low, also alle Segmente sind aus
OUT &H378,87
Byte binär: 11101010
alle Segmente außer Nr. 4 und 6 leuchten
Lesen wie die einzellnen Bits gesetzt sind:
aktByte=INP( [BASISADRESSE] )
(aktByte ist irgendeine Variable)
"umdrehen" einzellner Bits:
OUT [BASISADRESSE], INP( [BASISADRESSE] ) XOR [BITNR]
z.B.
OUT &H378, INP(&H378) XOR 2
ACHTUNG!!: Bitnummer=Segmentnummer-1
also: Das 3. Segment geht aus oder geht an
Ich hab das alles von der allerwärmstens zu empfehlenden Website:
http://franksteinberg.de/progss.htm
Da ist wirklich alles in Bezug auf Schnittstellen zu finden!
Grüße aus dem schönen Bayernland + Viel Erfolg
-schumi-
Zuletzt bearbeitet von -schumi- am 10.04.2010, 20:11, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
lugez
Anmeldungsdatum: 06.04.2010 Beiträge: 6
|
Verfasst am: 07.04.2010, 11:40 Titel: |
|
|
hey,
danke für dein Bemühen, die Seite und deine Tipps sind echt klasse!
Leider tue ich mir noch ein bisschen schwer mit der Umsetzung, da es noch nicht so richtig funktioniert. Ich muss mich wohl noch weiter in die Materie hineinknien.
mfG |
|
Nach oben |
|
 |
-schumi-

Anmeldungsdatum: 28.10.2009 Beiträge: 131 Wohnort: Südbayern
|
Verfasst am: 07.04.2010, 19:07 Titel: |
|
|
Zitat: | danke für dein Bemühen |
Naja, die Bemühungen hielten sich in Grenzen. Ich beschäftige mich schon lange mit dem Thema, vor allem weil die Ansteuerung (wenn man es einmal überrissen hat) wirklich sehr unkompliziert ist.
Was nicht heißen soll das du dich doof anstellst!!!! ;)
Hast du es denn schon geschafft, dass die Segmente "Ziellos" aus/an gehen?
wenn ja, währe es ratsahm folgendes zu machen:
OUT &H378,2^0 (=1)
notieren welches Segment für Bit 0 leuchtet
OUT &H378,2^1 (=2)
notieren welches Segment für Bit 1 leuchtet
OUT &H378,2^2 (=4)
notieren welches Segment für Bit 2 leuchtet
OUT &H378,2^3 (=8)
notieren welches Segment für Bit 3 leuchtet
OUT &H378,2^4 (=16)
usw.
dann könntest du schon mehrere bestimmte Segmente zum Leuchten bringen, also z.B. Zahlen darstellen
das würde dann so gehen:
z.B.
Segment 2, 4 und 5 leuchten, alle anderen sind aus:
OUT &H378, 2^(2-1) + 2^(4-1) + 2^(5-1)
MFG
-schumi- |
|
Nach oben |
|
 |
lugez
Anmeldungsdatum: 06.04.2010 Beiträge: 6
|
Verfasst am: 08.04.2010, 18:05 Titel: |
|
|
Hallo,
nein leider habe ich es noch nicht geschafft, dass die Segmente ziellos aus und an gehn.
Ich weis noch nicht genau an was es liegt, aber ich werde nun erstmal die Portbelegung kontrollieren und dann weiter schauen.
Oder hast du sonst eine Idee an was es liegen könnte?
mfG
Lukas Schmid |
|
Nach oben |
|
 |
-schumi-

Anmeldungsdatum: 28.10.2009 Beiträge: 131 Wohnort: Südbayern
|
Verfasst am: 08.04.2010, 18:31 Titel: |
|
|
Möglich, aber total-überaus-äußerst unwahrscheinlich: die Anzeige hat einen eigenen Controler, an den man dann einen bestimmten Codestrang senden muss
Aber das glaub ich bei mickrigen 7 Segmenten kaum!
könntest du mal einen Link von einem Schaltplan posten? Das würde die Sache schon deutlich vereinfachen
MFG
-schumi- |
|
Nach oben |
|
 |
lugez
Anmeldungsdatum: 06.04.2010 Beiträge: 6
|
|
Nach oben |
|
 |
-schumi-

Anmeldungsdatum: 28.10.2009 Beiträge: 131 Wohnort: Südbayern
|
Verfasst am: 09.04.2010, 18:07 Titel: |
|
|
Zitat aus deinem 2. Link:
Zitat: | ...der nun in die 4 Eingänge eines ICs geladen wird. Dieses IC stellt nun die benötigten Segmente a, c, d, f, g fest und gibt das Ergebnis an die 7 Ausgänge weiter |
--> also doch ein Controler
d.h. Wenn du z.B. ein 5 auf das Display schreiben willst müssen die 4 Eingänge so geschaltet sein, wie eine 5 binär aussieht: 0101
Wenn die Eingänge des ICs einfach nur mit den Ausgängen des Ports verbunden sind (davon gehe ich jetzt einfach mal aus) müsstest du für eine 5 einfach nur
OUT [BASISADRESSE], 5
eingeben, denn am Port wird die Zahl binär dargestellt, denn die 8 Ausgangspins sind eh so high/low wie die Zahl binär ausschaut. Von den 8 Ausgangspins werden dann nur die ersten oder letzten 4 benutzt
Man könnte also theoretisch zwei solche Displays an einem Port betreiben...
MFG
-schumi-
PS: bist du denn sicher, dass du den richtigen LPT-Port ansteuerst?
Zuletzt bearbeitet von -schumi- am 10.04.2010, 20:12, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 09.04.2010, 21:12 Titel: |
|
|
-schumi- hat Folgendes geschrieben: | Ich beschäftige mich schon lange mit dem Thema |
Dann sollte dir inzwischen aber doch auffallen, dass du LPT, die Abkürzung für Line Printing Terminal, eigentlich immer verkehrt schreibst.
-schumi- hat Folgendes geschrieben: | PS: bist du denn sicher, dass du den richtigen LTP-Port ansteuerst? |
Normalerweise sind kleine Rechtschreibfehler in Forenbeiträgen ja kein Problem, aber dadurch, dass du beharrlich "LTP" schreibst, könntest du den Fragesteller vielleicht etwas durcheinander bringen. Bei so einer Schnittstellenbezeichnung spielt die Reihenfolge der Buchstaben ja schon eine Rolle, wenn man Infomaterial sucht. _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 10.04.2010, 17:46 Titel: |
|
|
Denk dran, das diese Minus-Seitig angesteuert wird mit einem Vorwiderstand nach Plus...sonst LPT hinüber
Gruss |
|
Nach oben |
|
 |
-schumi-

Anmeldungsdatum: 28.10.2009 Beiträge: 131 Wohnort: Südbayern
|
Verfasst am: 10.04.2010, 20:38 Titel: |
|
|
Zitat: | Dann sollte dir inzwischen aber doch auffallen, dass du LPT, die Abkürzung für Line Printing Terminal, eigentlich immer verkehrt schreibst. zwinkern |
Oha, das tut mir wirklich leid..
Vielen Dank dass du mich drauf hingewiesen hast!!
Werds mir merken (hoffe ich )
Hab alles ausgebessert, nicht dass ich doch noch einen in die Irre führe..
@funkheld:
Zitat: | ...mit einem Vorwiderstand nach Plus...sonst LPT hinüber... |
Gut du es erwähnst!!
(auch wenn ich eher glaube dass das schon fertige Module sind, sonst währe es ja sehr warscheinlich dass er sich den Schaltplan aus dem i-net runtergeladen hat und nen Link hätte posten können)
MFG
-schumi- |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 11.04.2010, 18:10 Titel: |
|
|
Hallo
Wenn du nur Zahlen mit den 7-Segment-Anzeigen darstellen willst und nicht jedes Segment einzeln ansteuern musst, dann würde ich dir raten, 7-Segment-Decoder zu benutzen. Das sind ICs, die z.B. aus einem binären Eingangssignal (für die zehn Zahlen von 0-9 braucht man nur vier Bit = 16 Kombinationsmöglichkeiten) ein Ausgabesignal für die 7 Segmente erzeugen. So kannst du die Zahl der benötigten PC-Ausgänge verringern.
Noch einfacher geht es mit dem CMOS-IC 4026. Das sind Dezimalzähler, die schon 7-Segment-Ausgänge haben. Die zählen eingehende Steuerimpulse, und geben den Zählerstand von 0-9 in Form eines 7-Segmentmusters aus. Beim Überlauf, also wenn der Zähler von 9 auf 0 zurückspringt, gibt der IC ein Übertragsignal aus, das vom nächsten IC wieder als Zählimpuls für die nächste Dezimalstelle verwendet werden kann.
Damit kannst du im Prinzip beliebig viele 7-Segmentanzeigen mit nur zwei PC-Ausgängen steuern. Mit dem einen setzt du alle Zähler gemeinsam auf 0 zurück, mit dem andern sendest du daraufhin die gewünschte Anzahl von Zählimpulsen. Sollen die Anzeigen die Zahl 735 darstellen, sendest du eben 735 Impulse. Das geht so schnell, dass das Auge nichts vom Hochzählen mitbekommt.
Gruß
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
frebas
Anmeldungsdatum: 20.06.2008 Beiträge: 245
|
Verfasst am: 12.04.2010, 20:55 Titel: |
|
|
Skilltronic hat Folgendes geschrieben: | Hallo
Wenn du nur Zahlen mit den 7-Segment-Anzeigen darstellen willst und nicht jedes Segment einzeln ansteuern musst, dann würde ich dir raten, 7-Segment-Decoder zu benutzen. Das sind ICs, die z.B. aus einem binären Eingangssignal (für die zehn Zahlen von 0-9 braucht man nur vier Bit = 16 Kombinationsmöglichkeiten) ein Ausgabesignal für die 7 Segmente erzeugen. So kannst du die Zahl der benötigten PC-Ausgänge verringern.
Noch einfacher geht es mit dem CMOS-IC 4026. Das sind Dezimalzähler, die schon 7-Segment-Ausgänge haben. Die zählen eingehende Steuerimpulse, und geben den Zählerstand von 0-9 in Form eines 7-Segmentmusters aus. Beim Überlauf, also wenn der Zähler von 9 auf 0 zurückspringt, gibt der IC ein Übertragsignal aus, das vom nächsten IC wieder als Zählimpuls für die nächste Dezimalstelle verwendet werden kann.
Damit kannst du im Prinzip beliebig viele 7-Segmentanzeigen mit nur zwei PC-Ausgängen steuern. Mit dem einen setzt du alle Zähler gemeinsam auf 0 zurück, mit dem andern sendest du daraufhin die gewünschte Anzahl von Zählimpulsen. Sollen die Anzeigen die Zahl 735 darstellen, sendest du eben 735 Impulse. Das geht so schnell, dass das Auge nichts vom Hochzählen mitbekommt.
Gruß
Skilltronic |
Er muss sich nur um die Software kümmern die den LPT oder COM Port steuert, die Hardware soll er denke ich mal nicht verändern.
edit: aber den IC werden ich demnächst mit bestellen... |
|
Nach oben |
|
 |
lugez
Anmeldungsdatum: 06.04.2010 Beiträge: 6
|
Verfasst am: 28.09.2010, 21:16 Titel: Ergebnis |
|
|
danke an alle die mir geholfen haben, dass schulprojekt hat ne 1- gegeben...
mfG |
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 30.09.2010, 00:46 Titel: |
|
|
Darf man fragen an welcher schule das war? _________________ www.piratenpartei.de |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 30.09.2010, 16:27 Titel: |
|
|
Ich habe mir die Frage ja verkniffe. Aber 10. Klasse und 7ner Anzeigen? Ist das nicht etwas zu schwer?  |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 30.09.2010, 18:05 Titel: |
|
|
Zitat: | Aber 10. Klasse und 7ner Anzeigen? Ist das nicht etwas zu schwer? grinsen |
Ähhhh was soll man sonst machen? In der Schule geht man allgemein davon aus, dass der Stoff für alle etwas neues ist, was auch der Wahrheit entspricht, wenn man sich in seiner Freizeit nicht privat damit beschäftigt hat. Soll man jetzt gleich mit der ganzen Klasse irgendwelche MC's programmieren oder wie?
Ich besuche ein Gymnasium in BW und alles was über Wiederstände und LED's hinaus geht wurde nur minimal besprochen im Wahlfach NWT, das weder Pflicht ist, noch einen festen Lehrplan auf Landesebene besitzt.
Wenn sich ein Fach nicht ausschließlich mit Elektronik beschäftigt ist eine 7-Segment-Anzeige ein gutes erstes oder zweites Projekt in der Lehreinheit. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 01.10.2010, 17:29 Titel: |
|
|
Naja ok wir haben als mehrwöchiges Projekt Radios und Klatschschalter gebaut XD |
|
Nach oben |
|
 |
|