Forum: Mikrocontroller und Digitale Elektronik 7-segement anzeige


von noob (Gast)


Angehängte Dateien:

Lesenswert?

Hallo ich habe ein problem ich hab eine 7-Segement anzeige. Ich habe sie 
aus einen analog reciver ausgebaut und würde sie gerne am pc betreiben 
aber ich bin noch ein noob und habe nich so viel erfahrung in elektronik


schonmal Dank wür die Antworten

MFG noob

von noob (Gast)


Lesenswert?


von MaWin (Gast)


Lesenswert?

> und der 7-segement triber ist MC14499P

Perfekt, da musst du dich um nichts kümmern.

Du musst die Anzeige nur an den PC anschliessen,
Masse und 5V (von einem Floppy-Stromkabel oder so)
verbinden,
und CLK und DATA und ENABLE auf der Platine finden
und z.B. an D0, D1, D2 von einem Parallelport legen.

(auf der Platine ist noch mehr drauf, z.B. ein
Infrarotempfänger, den du nicht benutzt).

Dann kannst du ein Programm schreiben, welches die
Datenbits D0, D1, D2 des Parallelports so bedient,
wie es auf Seite 3 im Datenblatt steht (alle 16 bit
nacheinander), und du siehst deine Anzeige.

Keine zusätzliche Hardware, kein zeitkritisches
Programm.

Es ist eine ziemlich ideale Platinen für den
Verwendungszweck.

von Hans (Gast)


Lesenswert?

noob schrieb:
> und würde sie gerne am pc betreiben

LOL?! Was willste denn damit machen?

von noob (Gast)


Lesenswert?

ein paar zahlen ausgeben oder ne uhr

von noob (Gast)


Lesenswert?

@ MaWin

Danke


kann mir jemand mir helfen ein program dafür zu schreiben ich kann 
einbischen
in visual basic programieren aber nicht viel

von Peter D. (peda)


Lesenswert?

noob schrieb:
> aber ich bin noch ein noob und habe nich so viel erfahrung in elektronik

Dann wirst Du sie erstmal für einige Monate beiseite legen müssen.

Du brauchst nämlich Grundlangen in HW und SW.


Peter

von noob (Gast)


Lesenswert?

ich muss jetzt nur noch ein programm schreiben für die 7-segement 
anzeige

von noob (Gast)


Lesenswert?

kann den keiner helfen ?

von Harald (Gast)


Lesenswert?

noob schrieb:
> kann den keiner helfen ?

Ja wobei denn? Du fragst, ob dir einer bei nem Programm helfen 
kann...aber mach doch erstmal einen Ansatz.

von MaWin (Gast)


Lesenswert?

Visual Basic kann nicht direkt auf die Anschlüsse von parallelen LPT 
Druckerports zugreifen.
Du brauchst Hilfe bei deiner Spielzeugsprache.

http://www.aaroncake.net/electronics/vblpt.htm
http://www.codeproject.com/KB/vb/PortAccess.aspx

Lesen musst du schon selber.

von noob (Gast)


Lesenswert?

das programm sol so aussehen das da Buttons sint und wen ich da 
raufklich soll dan die zahl erscheinen und ich habe keine ahnung wie das 
geht -.-'

von Harald (Gast)


Lesenswert?

Und welchen Sinn macht das?

von olibert (Gast)


Lesenswert?

noob schrieb:
> das programm sol so aussehen das da Buttons sint und wen ich da
> raufklich soll dan die zahl erscheinen und ich habe keine ahnung wie das
> geht -.-'


Keine Lust sich einzulesen, hoffnungsloser Fall oder Troll

von noob (Gast)


Lesenswert?

keine ahnung

von noob (Gast)


Lesenswert?

ich kann nicht so gut englisch

von noob (Gast)


Lesenswert?

und nicht so gut visual basic

von Max D. (Firma: No RISC, no fun.) (metalfan)


Lesenswert?


von noob (Gast)


Lesenswert?

und da steht ich muss eine dll runter laden geht aber nicht

von noob (Gast)


Lesenswert?

ich habe doch schon gesagt ich habe nicht viel ahnung in visual basic

von hp-freund (Gast)


Lesenswert?

Falls Du ernsthaft interessiert bist, hier eine Schritt für Schritt 
Anleitung:
http://www.activevb.de/tutorials/tut_parallel/parallel.html
Erst mal eine LED am Druckerport zum leuchten bringen. Dann gehts 
(vielleicht) weiter ;)

von noob (Gast)


Lesenswert?

ich habe schon eine led zum leuchten gebracht mit FREEBASIC

von hp-freund (Gast)


Lesenswert?

Das ist doch schon mal was! Zeig mal das Programm.

von noob (Gast)


Lesenswert?

LED AUS :


DIM lpt(1 to 8) AS INTEGER, i AS INTEGER, lptbyte AS INTEGER

lpt(1) = 0
lpt(2) = 0
lpt(3) = 0
lpt(4) = 1 'Anschalten
lpt(5) = 0
lpt(6) = 0
lpt(7) = 0
lpt(8) = 1 'Anschalten

lptbyte = 0

FOR i = 1 to 8
  lptbyte = lptbyte + (2 ^ (i - 1)) * lpt(i)
NEXT i

OUT 888, lptbyte 'LPT schalten


LED AN


DIM lpt(1 to 8) AS INTEGER, i AS INTEGER, lptbyte AS INTEGER

lpt(1) = 0
lpt(2) = 0
lpt(3) = 0
lpt(4) = 1 'Anschalten
lpt(5) = 0
lpt(6) = 0
lpt(7) = 0
lpt(8) = 1 'Anschalten

lptbyte = 1

FOR i = 1 to 8
  lptbyte = lptbyte + (2 ^ (i - 1)) * lpt(i)
NEXT i

OUT 888, lptbyte 'LPT schalten

von hp-freund (Gast)


Lesenswert?

Gut.
Dann musst Du jetzt nur nacheinander die Bytes mit:
 OUT 888,
an den Port ausgeben.
Zuerst solltest Du eien Zuordnung der Portausgänge zu den 3 Daten Pins 
des IC festlegen und dann eine Tabelle der zu sendenden Bytes erstellen.

von noob (Gast)


Lesenswert?

dder code ist von mosfetkiller

von noob (Gast)


Lesenswert?

an data, clk oder enb senden ?

von hp-freund (Gast)


Lesenswert?

An alle!
Z.B.:
Ausgang0 an ENB
Ausgang1 an CLK
Ausgang2 an DATA

von hp-freund (Gast)


Lesenswert?

Das waren jetzt erst einmal die Verbindungen. Stromversorgung und 
Masseverbindung zum Druckerport nicht vergessen.

von noob (Gast)


Lesenswert?

an welchem muss ich den die codes senden z.b für 0000 = 0

von noob (Gast)


Lesenswert?

ich habe es geschaft eine led mit visual basic zum leuchten zu bringen

von noob (Gast)


Lesenswert?

ich weiß immer noch nicht an welchem ich was senden muss

von hp-freund (Gast)


Lesenswert?

Nun mal nicht so hektisch...

Im Datenblatt des IC auf Seite 4 wirds erklärt.
Wenn Du die 3 Pins des IC so wie in meinem Vorschlag angeschlossen hast, 
sieh dir das Diagramm auf der Seite an:

DATA  CLK  ENB
 X     1    1         OUT 888,3       IC nicht angewählt
 D1    1    0         OUT 888,2(+4)   IC aktiv, D1=0 oder 1
 D1    0    0         OUT 888,0(+4)   fallende CLK Flanke übernimmt 
Datenbit
 D2    1    0         OUT 888,2(+4)   CLK auf high
 D2    0    0         OUT 888,0(+4)   fallende CLK Flanke übernimmt 
Datenbit
usw. bis D16 dann
 D16   1    1         OUT 888,3        IC nicht angewählt

Du musst die Bytes in ein Array packen und in einer Schleife ausgeben.

von noob (Gast)


Lesenswert?

kannst du mir vieleicht ein beispiel schreiben   z.b das er die 1 
anzeigt plz?

von hp-freund (Gast)


Lesenswert?

Kann schon, will aber das Du es versteht/machst.
Mach dir die Zuordnung der Stellen zu den Datenbits D1..D16 klar. Dann 
geht es ganz von allein....

von Karl H. (kbuchegg)


Lesenswert?

Ich denke du gehst von falschen Vorstellungen aus.
Du musst gar nichts an den IC schicken, in dem Sinne, dass du deine 
gewünschte Anzeige einfach an den Parallelport gibst und die Anzeige 
machst das dann.

Der Parallelport ist für dich einfach nur eine Möglichkeit, wie du ein 
paar Leitungen nach draussen bekommst, die du gezielt auf 0 oder 1 
setzen kannst. Das ist alles. Mehr hast du nicht zur Verfügung.

Jetzt kommt das Datenblatt ins Spiel. Das verrät dir, das der IC mit 3 
Leitungen angesprochen wird. Und es verrät dir auch in welcher 
Reihenfolge welche Leitung auf 0 oder 1 gehen muss. Oder um bei dem zu 
bleiben was du schon kennst: Wenn an den Leitungen jeweils 1 LED wäre, 
in welcher Reihenfolge welche LED aufleuchten und wieder verlöschen 
muss.

KUrz gesagt: die ENB Leitung schaltet 'den IC als ganzes ein'. Solange 
die ENB Leitung auf 1 ist, kümmert sich der IC nicht darum, was auf den 
anderen beiden Leitungen passiert. Damit der IC darauf hört, muss ENB 
auf 0.

Und die anderen beiden Leitungen sind einfach:
An DATA legst du 1 Bit an, entweder 0 oder 1, je nachdem
Damit dieses 1 Bit in den IC übernommen wird, muss man an der CLK 
Leitung einen Puls erzeugen. Die Leitung muss also wechseln von 0 auf 1 
und wieder zurück auf 0. Mit dem letzten Teil 'zurück auf 0' wird dann 
das an der DATA Leitung anliegende Bit in den IC übernommen.

von noob (Gast)


Lesenswert?

kapiere es nicht :(

von noob (Gast)


Lesenswert?

ok ich klaube ich kapiere es lagsam

von noob (Gast)


Lesenswert?

mein kopf raucht

von Karl H. (kbuchegg)


Lesenswert?

Das macht nichts. Das gehört dazu.
Auch Rom ist nicht an einem Tag erbaut worden.

von noob (Gast)


Lesenswert?

:(

von noob (Gast)


Lesenswert?

kann mir einer ein gazen code schreiben weil ich es nicht kapiere weil 
ich ein noob bin

von Grrrr (Gast)


Lesenswert?

Wenn Du frustriert und müde bist, dann mach eine Pause.
Du packst das schon. Nur Mut.

Die Programmierstunde kostet Dich hier wahrscheinlich so um die 60 Euro.

von Grrrr (Gast)


Lesenswert?

Womit ich nicht unbedingt sagen will, das man eine Stunde braucht. Aber 
ich persönlich würde wenigstens eine Stunde abrechnen.

von noob (Gast)


Lesenswert?

ich kapiere es nicht!

von Grrrr (Gast)


Lesenswert?

Hier, genau an dieser Stelle, entscheidet sich, ob das Dein Hobby (oder 
Dein Beruf) wird (oder welche Note Du bekommst). Die meisten von uns 
haben sich mühsam durch Buecher, Datenblätter und fremde (ganz abgesehen 
von den eigenen ;-) ) Programme gekämpft und lernen immer noch dazu.
Diesen Kampfgeist musst Du auch Dir  angewöhnen.

Wir helfen Dir gerne kostenlos, zu lernen und zu verstehen, aber umsonst 
arbeiten tun wir nicht.

Aus dem Code von Karl-Heinz und der Erklärung von HP-Freund kannst Du, 
mit ein wenig Mühe, was funktionierendes machen. Auf Deinem Niveau ist 
das schon ein beachtlicher Erfolg. Also, ran an den Speck.

Wenn Du was nicht verstehst, dann beschreibe genau, was Du gelesen hast, 
was Du davon verstehst und was nicht. Mit "ich verstehe es nicht" können 
wir nichts anfangen um Dir weiter zu helfen.

von noob (Gast)


Lesenswert?

DATA  CLK  ENB
 X     1    1         OUT 888,3       IC nicht angewählt
 D1    1    0         OUT 888,2(+4)   IC aktiv, D1=0 oder 1
 D1    0    0         OUT 888,0(+4)   fallende CLK Flanke übernimmt
Datenbit
 D2    1    0         OUT 888,2(+4)   CLK auf high
 D2    0    0         OUT 888,0(+4)   fallende CLK Flanke übernimmt
Datenbit
D3     1     0
D3     0     0
usw. bis D16 dann
 D16   1    1         OUT 888,3        IC nicht angewählt
so?

von Karl H. (kbuchegg)


Lesenswert?

noob schrieb:
> DATA  CLK  ENB
>  X     1    1         OUT 888,3       IC nicht angewählt
>  D1    1    0         OUT 888,2(+4)   IC aktiv, D1=0 oder 1
>  D1    0    0         OUT 888,0(+4)   fallende CLK Flanke übernimmt
> Datenbit
>  D2    1    0         OUT 888,2(+4)   CLK auf high
>  D2    0    0         OUT 888,0(+4)   fallende CLK Flanke übernimmt
> Datenbit
> D3     1     0
> D3     0     0
> usw. bis D16 dann
>  D16   1    1         OUT 888,3        IC nicht angewählt
> so?

abschreiben kann jeder :-)

von noob (Gast)


Lesenswert?

ich habe d3 hinzu gefügt ist databit d3 richtig ?

von Karl H. (kbuchegg)


Lesenswert?

noob schrieb:
> ich habe d3 hinzu gefügt ist databit d3 richtig ?

Ja, klar. Du musst in Summe 16 Bits ausgeben! (eigentlich 20, wenn wir 
die Position des Dezimalpunktes auch noch mit dazu nehmen).

Das Datenbit wir an die DATA Leitung angelegt und dann macht CLK zuerst 
auf 1 und dann wieder auf 0.

von noob (Gast)


Lesenswert?

immer so weiter z.b 1  0
                    0  0 ?

von Grrrr (Gast)


Lesenswert?

Ja. Richtig. Die Bits werden durchgezählt.

Wenn Du plus 4 addierst, wird das Datenbit 1, wenn Du es nicht tust, 
dann wird es 0.

So wird es Null.
>  DX    1    0         OUT 888,2   CLK auf high
>  DX    0    0         OUT 888,0   fallende CLK Flanke übernimmt

So wird es Eins.

>  D2    1    0         OUT 888,2+4   CLK auf high
>  D2    0    0         OUT 888,0+4   fallende CLK Flanke übernimmt

von Karl H. (kbuchegg)


Lesenswert?

Aber vielleicht solltest du erst mal wieder deine LED an den 
Parallelport höngen und noch ein bischen weiter damit experimentieren. 
Im Idealfall hast du 3 LED am Port hängen und du kannst in BASIC so 
programmierern, dass du jede einzelne LED unabhängig von den anderen ein 
und wieder ausschalten kannst. Egal welchen Zustand LED1 und LED2 haben 
musst du LED3 ein und auch wieder ausschalten können. Selbiges natürlich 
auch für die anderen beiden LED.

Das erscheint mir als Vorstufe eine vernünftige Übung für dich zu sein. 
Denn Hand aufs Herz. Was mit

  OUT 888, 2(+4)

gemacht wird ... ich glaub nicht das du das verstanden hast.

von noob (Gast)


Lesenswert?

ok

von noob (Gast)


Lesenswert?

ich weiß was mit out 888 2 (+ 4 )gemacht wird
in visual basic muss ich das so schreiben out 888 (2+4)

von Karl H. (kbuchegg)


Lesenswert?

Warum die 3 LED?
Weil du 3 Leitungen von dieser Platine bedinen musst.
Wenn du die LED da drann hast (und auch schon ein wenig Übung im 
Ansteurn dieser LED), kannst du ja auch mal die Zusatzplatine mit ihren 
3 Leitungen mit dazu anhängen (und die LED drann lassen). Das müsste 
eigentlich funktionieren. Der Vorteil: Deine LED zeigen dir dann an, was 
dein Programm macht und du kannst (überhaupt wenn dein Programm die 
Leitungen gaanz langsam bedient) an, welche Leitung wann was macht.

Und das ist allemal besser, als wenn man im Dunkeln stochert und nicht 
weiß, warum die externe Schaltung nicht reagiert.


Ich hätte dir ja gerne vorgeschlagen, mit dem Modul ohne steuernden 
Computer zu spielen. Modul an die Versorgung anschliessen und dann die 
Steuerleitungen einfach mal an + bzw. - halten, wie es laut Datenblatt 
erfoderlich ist. Aber das scheiter daran, dass man so das 
unvermeindliche Prellen nicht los wird und so keine sauberen Pulse 
erzeugen kann.

von noob (Gast)


Lesenswert?

ich weiß immer noch nicht wie das program weiter geht :(


DATA  CLK  ENB
 X     1    1         OUT 888,3       IC nicht angewählt
 D1    1    0         OUT 888,2(+4)   IC aktiv, D1=0 oder 1
 D1    0    0         OUT 888,0(+4)   fallende CLK Flanke übernimmt
Datenbit
 D2    1    0         OUT 888,2(+4)   CLK auf high
 D2    0    0         OUT 888,0(+4)   fallende CLK Flanke übernimmt
Datenbit
usw. bis D16 dann
 D16   1    1         OUT 888,3        IC nicht angewählt

von Karl H. (kbuchegg)


Lesenswert?

noob schrieb:
> ich weiß immer noch nicht wie das program weiter geht :(


Das was du da hast, ist erst mal gar kein Programm.
Da ist links die Spalte, in der aufgeschlüsselt ist, welche Leitung wann 
auf 0 bzw. 1 bzw. uninteressant (X) gehen soll, bzw das gewünschte 
Datenbit annehmen muss.

Die mittlere Spalte ist der Programmtext, der am Parallelport die in der 
ersten Spalte aufgeschlüsselten Bits tatsächlich herstellt  und die 
rechte Spalte ist die Kommentierung was da passiert


Du solltest allen Ernstes mit was einfacherem anfangen, so hat das wenig 
Sinn, wenn du uns diese "Skizze" als "das Programm" verkaufen willst.

von Armin S. (nimra)


Lesenswert?

Hi,

Was soll die Anzeige denn anzeigen?
Hat dein PC noch einen Parallel Port?
Hast du schon Programmiererfahrungen?

NIMRA

von noob (Gast)


Lesenswert?

mein pc hat einen parallelport
ist es so richtig

 Out(888, 3)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 3)

von noob (Gast)


Lesenswert?

wenn ich das mache kommt ...7 und wenn ich noch mal mach ....

von Karl H. (kbuchegg)


Lesenswert?

noob schrieb:
> mein pc hat einen parallelport
> ist es so richtig

Gehs in einzelnen Schritten durch.

Welche Leitung nimmt welchen Zustand an? (Wie hast du die Leitungen 
eigentlich angeschlossen?)

Nahmen wir mal an
  Enable  ENB ist am Parallelport an Pin D0
  Daten                           an Pin D1
  und CLK                         an Pin D2


dort seien jetzt auch noch Leds drann. In der folgenden Aufstellung sei 
# eine LED die leuchtet (der Ausgang ist auf 1), bzw sei o eine LED die 
nicht leuchtet (der Ausgang ist auf 0)

                                    D2      D1      D0
                                   (CLK)   (DATA)  (ENB)
>
>  Out(888, 3)
3 ist binär 00000011, also           o       #       #

laut unserer Zuordnung von D2, D1 und D0 zu den Leitungen heisst das:
Enable ist auf 1, Daten auf 0, CLK auf 0.
Da Enable auf 1 ist, interessiert sich der IC für die anderen Leitungen 
nicht

>         Out(888, 2 + 4)

2+4 = 6, binär 00000110              #       #        0

Enable hat offenbar auf 0 gewechselt, d.h. der IC horcht auf die 
Leitungen. Aber auch CLK ist auf 1 gegangen. Aus dem Datenblatt wissen 
wir: Das darf er, der IC reagiert erst, wenn CLK wieder auf 0 geht

>         Out(888, 0 + 4)

0+4 = 4,  binär 00000100             o       #        o


Holla, genau das hat CLK jetzt gemacht: Von 1 auf 0 zu wechseln. D.h. 
der IC hat das was an DATA ansteht (nämlich eine 1) übernommen.

Von den 20 SChiegeregisterbits im IC

     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
     | 1 | X | X | X | X | X | X | X | X | X | X | X | X | X | ...
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+

hat das erste einen definierten Wert zugewiesen bekommen. VOn den 
anderen wissen wir nichts, daher hab ich ein X reingemalt

>         Out(888, 2 + 4)

2+4 = 6,  binär 00000110            #        #        o

gegenüber vorher ist CLK wieder auf 1 gegangen. Aus dem Datenblatt: das 
ist dem IC egal, da passiert nichts

>         Out(888, 0 + 4)

4,  binär 00000100                  o         #       o

wieder ist an CLK eine fallende Flanke aufgetreten, ein Übergang 1->0
Und wieder bedeutet er für das IC, dass es den an DATA anliegenden 
Zustand (eine 1) in das Schieberegister übernehmen soll.
Die 20 BIts im IC werden um 1 Stelle nach rechts geschoben, und die 1 
aus dem DATA Eingang kommt ganz links rein

Damit haben wir
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
     | 1 | 1 | X | X | X | X | X | X | X | X | X | X | X | X | ...
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+

und so gehts weiter und weiter, bis alle 20 Bits im Schieberegister 
gelandet sind.

von Karl H. (kbuchegg)


Lesenswert?

noob schrieb:
> wenn ich das mache kommt ...7 und wenn ich noch mal mach ....

Das Problem ist, dass du zwar ein 'Programm geschrieben hast' aber nicht 
weißt
* wie es funktioniert.
* was eigentlich an den 7-Seg rauskommen müsste.


Mein Rat steht immer noch:
Sieh zu, dass du

* dein Programm extrem langsam ablaufen lassen kannst
  Am besten wäre es, wenn du in Einzelschritten druchgehen kannst
  so dass du von einem OUT zum nächsten genau untersuchen kannst,
  was sich am Port tut und auch überlegen kannst, was das jetzt
  für das IC bedeutet.

* ein paar LED zusätzlich an den Ausgang bekommst, die dir anzeigen
  wie die betreffende Ausgangsleitung steht: leuchten für 1, nicht
  leuchten für 0

von noob (Gast)


Lesenswert?

ok aber wo her wei? ich welche bits ich machen soll

von Karl H. (kbuchegg)


Lesenswert?

noob schrieb:
> ok aber wo her wei? ich welche bits ich machen soll

Du weisst ja, was du ausgeben willst.

Im Datenblatt ist eine Tabelle

   0000   0
   0001   1
   0010   2
   0011   3
   ....


d.h. mit jeweils 4 Bit steuert man eine Anzeige an

Wenn die erste Stelle links eine 3 anzeigen soll,

   0011   3

dann muss ins Schieberegister

     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
     | 0 | 0 | 1 | 1 | X | X | X | X | X | X | X | X | X | X | ...
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+

     | 4 Bits für    | 4 Bits für    |  4 Bits für   |  4 Bits ...
     | die 1.te 7Seg | die 2.te 7Seg | die 3.te 7Seg |  die 4.te ..


die 4 Bits, die für diese Stelle zuständig sind, sind auf 0011, genau 
wie es die Tabelle vorschreibt. (und praktischerweise ist das dann auch 
die interne Darstellung einer 3 im PC)


Steht alles im Datenblatt. Zum Teil auch mit Zeichnungen, damit es die 
des Englischen nicht mächtigen Japaner auch begreifen.

von noob (Gast)


Lesenswert?

und die anderen stellen sind für die anderenn segemente ?

von Karl H. (kbuchegg)


Lesenswert?

noob schrieb:
> und die anderen stellen sind für die anderenn segemente ?

Spätestens jetzt ist es hoch an der Zeit wieder einen Blick ins 
Datenblatt zu werfen.
Da sind Zeichnungen und Tabellen drinn, für diejenigen die nur Japanisch 
oder Kisuaheli lesen können. Nur mit den Zeichnungen/Tabellen alleine 
kann man verstehen (wenn man ein wenig darüber nachdenkt) wie das 
funktioniert.

von noob (Gast)


Lesenswert?

ich habe es geschaff eine drei zumachen
        Out(888, 3)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)

von Harald (Gast)


Lesenswert?

Alter Schwede...............................

von Karl H. (kbuchegg)


Lesenswert?

noob schrieb:
> ich habe es geschaff eine drei zumachen

Möglich.

>         Out(888, 3)
>         Out(888, 2 + 4)
>         Out(888, 0 + 4)
>         Out(888, 2 + 4)
>         Out(888, 0 + 4)

Aber sicher nicht mit dem hier angegebenen Programm. Bzw. Wenn diese 5 
Zeilen zu einer 3 an den 7-Seg führen, dann höchstens zufällig. Vor 
allen Dingen deshalb weil

* du nur 2 Bits ausgibst
* die eigentliche 7-Segment Anzeige erst dann auf die neue Bitsituation
  im Schieberegister reagiert, wenn Enable wieder auf 1 gezogen wird.
  Und auch davon ist in dem 5-Zeiler nichts zu sehen

von noob (Gast)


Lesenswert?

das solte ne 1 sein ist aber ne sieben ...
    Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 3)
        Out(888, 2 + 4)
        Out(888, 0 + 4)

von Karl H. (kbuchegg)


Lesenswert?

noob schrieb:
> das solte ne 1 sein ist aber ne sieben ...
1
     Out(888, 2 + 4)            // 1. Bit ausgeben
2
         Out(888, 0 + 4)
3
         Out(888, 2 + 4)        // 2. Bit ausgeben
4
         Out(888, 0 + 4)
5
         Out(888, 2 + 4)        // 3. Bit ausgeben
6
         Out(888, 0 + 4)
7
         Out(888, 3)            // zur Anzeige duchschalten
8
         Out(888, 2 + 4)
9
         Out(888, 0 + 4)

4 Bits!
Du brauchst 4 Bits für eine Stelle! Nicht 3

> ne 1 sein

Für eine 1 musst du die Bits  0001  an das IC übergeben. Wo genau machst 
du das? Du schiebst 3 mal ein 1-Bit raus!

bei 0001

ist die Reihenfolge   ein 1 Bit rausgeben. Dazu muss DATA auf 1 sein!
                      ein 0 Bit rausgeben. Dazu muss DATA auf 0 sein!
                      ein 0 Bit rausgeben. Dazu muss DATA auf 0 sein!
                      ein 0 Bit rausgeben. Dazu muss DATA auf 0 sein!


Diese beiden Anweisungen zusammen
1
         Out(888, 2 + 4)
2
         Out(888, 0 + 4)
schieben ein 1 Bit in das Schieberegister.
Diese beiden Anweisungen zusammen
1
         Out(888, 2 + 0)
2
         Out(888, 0 + 0)
schieben eine 0 in das Schieberegister.

von noob (Gast)


Lesenswert?

ist das 11   Out(888, 3)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 0)
        Out(888, 0 + 0)
        Out(888, 2 + 0)
        Out(888, 0 + 0)

        Out(888, 3)

von noob (Gast)


Lesenswert?

ist das so richtig
 Out(888, 3)
        Out(888, 2 + 0)
        Out(888, 0 + 0)
        Out(888, 2 + 0)
        Out(888, 0 + 0)
        Out(888, 2 + 4)
        Out(888, 0 + 4)
        Out(888, 2 + 0)
        Out(888, 0 + 0)
        Out(888, 3)

von Karl H. (kbuchegg)


Lesenswert?

Diese beiden Anweisungen zusammen
1
         Out(888, 2 + 4)
2
         Out(888, 0 + 4)
schieben ein 1 Bit in das Schieberegister.

Diese beiden Anweisungen zusammen
1
         Out(888, 2 + 0)
2
         Out(888, 0 + 0)
schieben eine 0 in das Schieberegister.

Noch einfacher kann ich es dir jetzt wirklich nicht mehr machen. Jetzt 
mutiert das alles zu 'Malen nach Zahlen'. Du brauchst nur noch 
Codebausteine zusammenzusetzen

von noob (Gast)


Lesenswert?

ich weiß aber ist das das oben richtig ?

von Karl H. (kbuchegg)


Lesenswert?

noob schrieb:
> ist das so richtig
mal sehen

>  Out(888, 3)
>         Out(888, 2 + 0)      eine 0
>         Out(888, 0 + 0)
>         Out(888, 2 + 0)      noch eine 0
>         Out(888, 0 + 0)
>         Out(888, 2 + 4)      eine 1
>         Out(888, 0 + 4)
>         Out(888, 2 + 0)      und eine 0
>         Out(888, 0 + 0)
>         Out(888, 3)


wenn ich die in der Reihenfolge in der sie eingeschoben werde aufmale

zuerst die 0                       0
dann eine 0 nachegschoben          00
dann kommt eine 1                  100
dann wieder eine 0                 0100

das ist dann wohl nicht ganz 11 :-)

von noob (Gast)


Lesenswert?

das war die 2

von Karl H. (kbuchegg)


Lesenswert?

noob schrieb:
> das war die 2

Ja.
Das stimmt auch mit der Figure 1 aus dem Datenblatt überein, nach der 
das LSB bei den jeweiligen 4 Bits links steht.
Ist mir bisher entgangen. Aber eigentlich bist ja du der Datenblattleser


 Also

 Im Schieberegister muss

     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
     | 1 | 1 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | ...
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+

eingeschoben werden, damit das als

   0011 (oder '3') angesehen wird.

Die rechte Stelle der 4-er Gruppe wird als letztes eingeschoben.

Deine Sequenz schiebt

    0010

ins Schieberegister und das ist laut Tabelle tatsächlich eine 2

von noob (Gast)


Lesenswert?

DANKE AN ALLE ICH HABE ES KAPIERT !!!!!

von Lehrmann M. (ubimbo)


Lesenswert?

Hehe freut mich - war ja ne schwere Geburt =)
Viel Spaß :-D

von Karl H. (kbuchegg)


Lesenswert?

Lehrmann Michael schrieb:
> Hehe freut mich - war ja ne schwere Geburt =)

Warten wirs ab :-)

Geht ja noch weiter.
Ich kann die nächste Frage schon förmlich riechen :-)


 als Beispiel:  32

    32 / 10        -> 3
                      |
           +----------+
           v
    32 - ( 3*10 )  -> 2            ==>  2 ausgeben, 3 ausgeben

von noob (Gast)


Lesenswert?

Lehrmann Michael schrieb:
> war ja ne schwere Geburt

ich wuste das das jemand sagt

von noob (Gast)


Lesenswert?

die segement anzeige gint beim booten zahlen 2000,3000,4000 und beim 
anmelde biltschirm 72

von Marc (Gast)


Lesenswert?

noob schrieb:
> die segement anzeige gint beim booten zahlen 2000,3000,4000 und beim
> anmelde biltschirm 72


Was ist los?!

von noob (Gast)


Lesenswert?

nix nur das meine segement anzeige beim pc start zahlen aus gibt und ich 
wollt wissen warum

von Karl H. (kbuchegg)


Lesenswert?

noob schrieb:
> nix nur das meine segement anzeige beim pc start zahlen aus gibt und ich
> wollt wissen warum

Warum fragst du das dann nicht gleich so?

Die Antwort:
Weil sich da wohl der BIOS Hersteller eine Debug Möglichkeit eingebaut 
hat, wie er den Service Technikern ein Instrument in die Hand geben 
kann, damit die beim Booten verfolgen können, welche Teile noch 
durchlaufen, welche nicht, und welche fehlerhaft arbeiten.

Und das ganze indem man ein Gerät an den LPT ansteckt auf dem diese 
Codes erscheinen.

Also wohl eine Variante hiervon
http://www.pchell.com/hardware/beepcodes.shtml

von Thomas R. (tinman) Benutzerseite


Lesenswert?

das ist normal, einfach ignorieren.

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.