Hey, wir programmieren in der Schule 8051 MC. Nun habe ich aber 2 Dinge noch nicht so richtig verstanden. Einmal was der genaue Unterschied zwischen positiver und negativer Logik ist und warum an den Ports nur erkannt werden kann ob eine 0 oder keine angelegt ist und nicht die 1? Vielen Dank im voraus Gruß Alex
>warum an den Ports nur erkannt werden kann ob eine 0 oder keine angelegt >ist und nicht die 1? Es gibt nur 0 oder 1.
Alex, bist du in der gleichen Klasse wie Jungles W ?-) Schau mal in: Beitrag "Ist dies eine wired AND Schaltung mit negativer Logik?"
. True False Positive Logik: 1 (high) 0 (low) Negative Logik: 0 (low) 1 (high)
Hey, ne Jungles W kenn ich nich und sein angesprochenes Thema nehmen wir auch so nicht in der Schule durch;). Was mir jetzt noch unklar ist, ist für was die negative Logik dient da doch eigentlich die positive Logik die üblichere ist oder? Zudem die schon gestellte Frage wieso wir mit der negativen Logik beim 8051 arbeiten müssen um abzufragen ob eine 0 oder 1 am Port anliegt? Wieso ist das nicht mit der positiven Logik möglich? Gruß Alex
Hallo! Per Software kannst Du feststellen, welcher Pegel 0 oder 1 bzw. LOW oder HIGH an einem Pin anliegt. Die Bewertung für die beiden Pegel wirst Du dann im weiteren Programm vornehmen. Diese Bewertung und Verknüpfung zu einem Resultat geschieht über Logik. z.B. WENN "Temperatur über Sollwert" UND "Schalter auf Automatik" DANN "Heizung aus". Positive oder negative Logik hängt dabei von der Art der Signale ab: z.B. ist wichtig, ob bei "Schalter auf Automatik" das zugehörige Signal 0 oder 1 ist. Dito bei "Temperatur über Sollwert". Bei einer Binären Logik gibt es nur zwei Zustände 0 und 1. D.h. mit einem Bit (einem Eingang) kann kein dritter Zustand erfasst werden. Der dritte Zustand wäre nach Deiner Denkart "kein Signal", also Eingang offen. Das ist logisch Blödsinn und technisch erst recht. Man muß also dafür sorgen, daß ohne Signal "Schalter auf Automatik" ein betimmter Pegel z.B. 0 vorhanden ist. Wenn jetzt der "Schalter auf Automatik" gestellt wird muss genau der andere Pegel also 1 anliegen. Der gerade gezeigte Pegelwechsel Signal wird aktiv -> Pegel wird 1 ist positive Logik. Negative Logik kann man auf zwei Arten erreichen: 1. Der Pegelwechsel bei Aktivwerden des Signales "Schalter auf Automatik" ist genau umgekehrt (Pegel 1->0) oder 2. Der Schalter wird mit "Handregelung" beschriftet, dann ist ja das Logisch aktive gerade umgekehrt. Wie der Ruhepegel ohne anliegende Signale ist, hängt von der äußeren Beschaltung ab. Ich nehme für Deinen Fall an 0. P.S. Die Eins-Plus im Klassenbuch gehört MIR!!!
Hey, Danke für die super-Erklärung, hat mir einiges gebracht:). Aber eins hat sich mir noch nicht so ganz gezeigt und zwar wieso man nun mit der negativen Logik beim 8051 arbeiten muss um auszulesen ob eine 1 oder 0 an einem Pin des Ports hängt und wieso man nicht die positive Logik verwenden kann? Dazu muss man sagen das man einmalig eine 1 auf den jeweiligen pin schieben muss um ihn als Eingang freizuschalten, falls das weiterhelfen sollte:) Gruß Alex
Hallo nochmal! Der 8051 liest wie viele Mikrokontroller und Logikschaltkreise in unbeschaltetem Zustand High-Pegel. Das hat bei den als Ein- und Ausgang nutzbaren Pins mit der Innenschaltung zu tun. Auch bei den einfachen Logikgattern ist das so und hat vor allem historische und technische Hintergründe. Abhängig von der Logik-/Prozessorfamilie sind die Eingänge meist so hochohmig, daß sie als "Antennen" das Gras wachsen hören. Sie fangen Signale ein, die keine sind. Deshalb ist es unabdingbar, alle Eingänge definiert zu beschalten. Damit wird auch ohne irgend ein Steuersignal immer ein fester Pegel erkannt. Bei den vor langer langer Zeit weit verbreiteten Logik-Gattern der TTL-Reihe (Transistor-Transistor-Logik) war es aus Innenschaltungsgründen so, daß ein unbeschalteter Eingang immer High-Pegel erkannte. So hat sich eingebürgert, aktive Signale mit Low anzulegen. Wie Du oben gelesen hast: negative Logik. Das ist aber eine reine Definitionsfrage, die aus Bequemlichkeitsgründen oder praktischen Erwägungen auch anders festgelegt werden kann. Wenn ich einen Kontakt habe, der nach Masse schaltet, passt diese "negative" Logik ja auf Anhieb. Im Falle, daß mein Sensor z.B. bei "Füllstand erreicht" 5 Volt liefert, würde ich die Eingangsbeschaltung so wählen, daß eine positve Logik angewendet werden kann. Wenn allerdings die Beschaltung vorgegeben ist, bleiben wie schon angedeutet zwei Möglichkeiten: 1. Signal extern umdrehen (invertieren) daß "Füllstand erreicht2 0 Volt liefert, 2. oder in der Software, die das Signal auswertet, "andersrum" denken. Ach so - noch zum 8051: Es hat mit der Innenschaltung zu tun, daß mann erst eine 1 in das entsprechende Ausgangsregister schreiben muß, um ihn als Eingang verwenden zu können. Danach könnte man über eine äußere Beschaltung durchaus noch positive Logik verwenden, also inakiv=0 / aktiv=1. Es ist aber eher unüblich, nicht jedoch unmöglich. Positiv oder negativ (logisch) zu denken kann besonders dann Sinn machen, wenn es um die Betrachtung von Störungen geht: Was ist bei einem Kabelbruch / Kurzschluss? Kann ich das erkennen oder kocht die Aquarienheizung 'ne feine Fischsuppe? Du siehst, Logik ist ein weites, nicht zu unterschätzendes Feld.
Hey, Vielen Dank Route_66 jetzt hab ichs verstanden:). Ist auch sehr gut und verständlich verfasst von dir, Danke! Gruß Alex
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.