Hallo ich suche die richtigen logischen ausdrücke für eine BCD Anzeige, in meinem Programm bekomme ich das einfach nicht zum laufen. Für Anzeigenfeld a = B # !C und !B # C und A # D u.s.w also für b,c,d,e,f,g
Versuchs nochmal mit einem Posting. Aber diesmal: Gib alle Informationen an. Stell dir einfach vor, du musst jemanden den du vorher noch nie gesehen hast, um Hilfe fragen. Wenn er das obige liest, was könnte er dich fragen, bzw. was wird er von dir auf jeden Fall mal wissen wollen.
Du meinst vermutlich eine 7-Segment LED-Anzeige. Sowas macht man einfach mit ner Tabelle: Beitrag "ADC mit Multiplexanzeige" Ein MC ist nicht so der Logik-Knilch, d.h. damit würde man nur unnötig viel Code erzeugen. Dagegen kann er super fix eine Memoryadresse (Tabellenzugriff) auslesen. Peter
@ Karl heinz Buchegger Danke für den Tipp ich bin noch nicht so lange in Forum. Ja ich möchte eine 7 Segment Anzeige bauen, kann man die Logik Ausdrücke micht meit einem KV Diagramm erstellen?
> Ja ich möchte eine 7 Segment Anzeige bauen, kann man die Logik Ausdrücke > micht meit einem KV Diagramm erstellen? Schon, aber was hat das mit einem Microcontroller zu tun?
Die 7-Segment Anzeige steuert man mit einen Mikrokontroler normalerweise nicht mit logischen Funktionen an. Da müsste für jedes Segement eine entsprechende Auswertung gemacht werden (ist möglich aber ein zu grosser Aufwand). Dies löst man einfacher mit einer Liste. Jedes Element der Liste enthält einen Wert (ein Byte) für alle Segmente. Zum anzeigen einer Ziffer muss dann nur das entsprechende Element aus der Liste gelesen werden und dieses auf den Port ausgegeben werden. Gruss JensM
Wo ist da das Problem? --a-- | | f b | | --g-- | | e c | | --d-- Nimm Dir einen Zettel, male eine Tabelle mit 7 Spalten und zehn Zeilen drauf. Und male Dir in jede Zeile die gewünschten Muster der Segmente, mit einer 1 für ein leuchtendes und einer 0 für ein nicht leuchtendes Segment. Bei der 0 beispielsweise leuchten die sechs Segmente a-f, g leuchtet nicht. Das machst Du für alle (benutzten) Kombinationen der vier Eingangssignale, und schon kannst Du Dir Gleichungen für jedes einzelne Segment herausziehen. Segment a beispielsweise leuchtet bei den Ziffern 0 2 3 5 6 7 8 und 9, also nur bei 1 und 4 nicht. Wenn Du so ein 7-Segment-Display mit einem µC ansteuerst, dann wird das ganze natürlich viel einfacher, da benötigst Du keinerlei Logikgleichungen, sondern nur eine Tabelle mit 10 bzw. 16 Einträgen. Jeder Eintrag ist 7 Bits (oder 8, incl. Dezimalpunkt) groß und enthält das zum Tabellenindex passende Bitmuster. Angenommen, Segment a entpricht Bit 0, dann ist die 0 (bei der die Segmente a-f leuchten) also mit dem Wert 0x3F ausgedrückt. Die 1 (bei der die Segmente b und c leuchten) ist damit mit dem Wert 0x06 ausgedrückt. Und so weiter.
Kann natürlicha auch sein, dass das einfach nur eine Hausaufgabe ist. Also Michi. Was hast du bisher getan, um dein Problem in den Griff zu kriegen? (Ich frag nach, damit weitere Antworten auf deinen Wissenstand zugeschnitten werden können. Ist auch so ein Punkt, den man sich bei einer Fragestellung an Unbekannte überlegen sollte: Was muss ich ihm sagen, damit er erkennen kann, wo meine Probleme anfangen bzw. was ich schon selbst rausgefunden hab) Was ich tun würde: Ich würd mir mal eine Tabelle machen, in der die möglichen Eingangssignale an den 4 Eingangsleitungen in der einen Achse und die 7 Ausgangssignale in der anderen Achse gegenüber stehen und so eine Matrix bilden. Und dann füll ich einfach mal die Matrix aus, welches Ausgangssegment auf 1 sein muss und welches auf 0, wenn eine bestimmte Eingansgkombination vorliegt. Sowas in der Art 0 1 2 3 4 5 D 0 0 0 0 0 0 C 0 0 0 0 1 1 B 0 0 1 1 0 0 A 0 1 0 1 0 1 ---+------------------------------------------- a| 1 0 1 .... b| 1 1 1 ... c| 1 1 0 d| 1 0 1 e| 1 0 1 f| 1 0 0 g| 0 0 1 Und dann heist es in dieser Tabelle mal zu stöbern und nachzusehen, welche Bedingungen erfüllt sein müssen, damit zb. Ausgangsleitung a gleich 1 sein kann. Hast du sowas schon gemacht? (PS: Und natürlich ist eine Tabelle sehr viel einfacher, als da jetzt grossartig nach Logikzusammenhängen zu suchen. Ich geb den Denkanstoss auch hauptsächlich deswegen, damit du siehst dass es immer unklug ist, sich ohne Vorbereitung an ein Programm zu setzen. Programmlogik entsteht nicht während man im Editor sein Programm schreibt. Programmlogik entsteht im Vorfeld, wenn man das Problem untersucht und analysiert und sich überlegt, wie man das Problem lösen könnte). Und ja: Papier und Bleistift sind ausgezeichnete Werkzeuge um eine Problemanalyse zu machen. (PS: In obige Tabelle hab ich zufällige 0 und 1 eingesetzt. Es geht ums Prinzip. Die Arbeit musst du machen)
Michi wrote: > Ich brauche das erste einem um die Logik zu verstehen. Z.B. einfach aus der Innenschaltung des 7447 abmalen: http://www.ece.uncc.edu/ecelab/data-sheets/DM74LS47bcd27.pdf Aber für die Realisierung mit nem MC ist das völlig ungeeignet. Peter
Hi, falls Interesse besteht, ich hab mir vor kurzem für meine SPS eine 4-Sieben-Segmentanzeige mit 16 Eingängen und ein paar Tastern gebastelt. Dabei kannst du die Anzeige auf Hex, Bcd und Binär umstellen, ok binär sieht nicht ganz so gut aus, aber mir reichts. Ich könnte dir sowohl den Schaltplan als auch mein Basicprogramm posten. Das ganze hab ich mit einem Mega 16 und einer gemultiplexten Anzeige gemacht. Das Prinzip ist das gleiche wie Jens schrieb, mit den Listen, ausser die Binäranzeige, die wird bitcodiert.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.