Hi, ich hab hier ein LCD, welches ich gerne mit einem 8051 Derivat ansteuern möchte. Standardmäßig sind bei diesem µC alle Pins Input Pins. Da ich aber für die Ansteuerung des LCDs 8 I/O Pins benötige muss ich die Konfiguration ändern. Im Datenblatt hab ich bereits die SFR gefunden mit denen ich die Ports konfigurieren kann, aber ich bin mir nicht sicher welcher Modus der richtige ist: -) Quasi Bidirectional -) Push Pull -) Open Drain -) Input Only Meine Überlegung Open Drain mit einem Pull-Up Widerstand? Liege ich damit falsch? KeinPlan
>Meine Überlegung Open Drain mit einem Pull-Up Widerstand?
Das ist dann Quasibidirektional, die Standardeinstellung
nach einem Reset.
hi.. falls du zuwenig portpins hast, kannst du auch die geschichte mit einem pcf8574-baustein per i2c-bus anbinden. gruss c.
Falls es ein HD44780 kompatibles LCD ist dann würde ich das LCD im 4Bit Mode ansteuern bei welchem du mit 7 Pins (4 Daten, RW,EN,RS) auskommst. Mit ein paar Software Tricks auch mit 6 Pins (ohne EN). Viele der neueren 8051er mit verschiedenen Portmodes sind nach dem Reset auf input-only gesetzt und nicht auf quasi-bidirektional. Abhängig von deinem Controller musst du also die Portpins erst auf diesen Mode umstellen per Software. Ciao, Rainer
> Mit ein paar Software Tricks auch mit 6 Pins (ohne EN)
Wie soll das gehen? Ohne RW kann ich mir noch vorstellen. Aber ohne EN
werden ja keine Kommandos übernommen, oder täuschts mir da?
Ralf
Ohne EN geht nicht. Oder man nimmt irgendeine externe Beschaltung. Übrigens ist ein einfaches Schieberegister einfacher und billiger als ein I2C PCF-Port Expander.
Sorry, hab mich verschrieben gehabt. Ich meinte natürlich die RW Leitung und nicht die EN Leitung. :)
Am einfachsten und schnellsten ist die Ansteuerung alledings über den Adressbus. Alle Steuersignale werden von der Hardware erzeugt. Du musst lediglich deine Daten an die entsprechende Adresse schicken oder auslesen und der Rest brauch dich garnicht zu interessieren. So mache ich das schon seit Jahren ohne Probleme.
MC wrote: > Am einfachsten und schnellsten ist die Ansteuerung alledings über den > Adressbus. Lohnt sich aber nur, wenn der eh schon benutzt wird. Ansonsten verlierst Du satte 18 Portpins. > Alle Steuersignale werden von der Hardware erzeugt. Nein. Das E-Signal mußt Du mit zusätzlicher Logik erzeugen (NAND aus /RD,/WR mit AND vom Chip-Select). > Du musst > lediglich deine Daten an die entsprechende Adresse schicken oder > auslesen und der Rest brauch dich garnicht zu interessieren. Nur wenn es ein standard 8051 bei max 12MHz ist. Moderne 8051-er sind aber zu schnell. Manche erlauben es, zusätzlich Waits einzufügen. Peter
>> Alle Steuersignale werden von der Hardware erzeugt. > >Nein. >Das E-Signal mußt Du mit zusätzlicher Logik erzeugen (NAND aus /RD,/WR >mit AND vom Chip-Select). Das zusätzliche NAND hatte ich zu der Hardware dazugezählt. >Nur wenn es ein standard 8051 bei max 12MHz ist. >Moderne 8051-er sind aber zu schnell. Manche erlauben es, zusätzlich >Waits einzufügen. Nö, wieso? Ich benutze einen 8051er mit 14,7456MHz und das funktioniert einwandfrei. Auch bei 16MHz habe ich das schon erfolgreich und fehlerfrei gemacht. Außerdem sollte man den Zustand des LCDs immer Abfragen, wenn man Daten oder Komandos schreiben will.
MC wrote: > Nö, wieso? Ich benutze einen 8051er mit 14,7456MHz und das funktioniert > einwandfrei. Auch bei 16MHz habe ich das schon erfolgreich und > fehlerfrei gemacht. "Funktioniert aufm Basteltisch", das ist natürlich ein fundiertes Qualitätskriterium. Wenn ich sowas meinem Arbeitgeber erzähle, müßte er mich fristlos entlassen. Was allein zählt, ist eine Worst-Case-Betrachtung: Und da steht im HD44780-Datenblatt E-Pulse: min 450ns. Und gucke ich ins AT89C52 Datenblatt, steht da WR-Pulse: min 400ns [12MHz]. Ich bin also schon bei 12MHz außerhalb der Spezifikation! Nehme ich jetzt nen schnelleren P89C668, ist dort WR-Pulse: 50ns [20MHz], also nur schlappe 800% zu schnell. Peter
>"Funktioniert aufm Basteltisch" Vom Basteltisch war nie die Rede. Ich meinte ein 8051-System, welches kommerziell vertrieben wird. Ansonsten habe ich mir die Datenblätter wenig angesehen. Wenn's läuft, dann läuft's. Was interessieren mich da die vom Hersteller angegebenen Grenzen. Aber wenn es mal nicht funktionieren will, dann frage ich hier nach.
MC wrote: > Ansonsten habe ich mir die Datenblätter wenig angesehen. Wenn's läuft, > dann läuft's. Was interessieren mich da die vom Hersteller angegebenen > Grenzen. ?!? Ich hoffe, daß ist keine berufliche Grundeinstellung von dir :) Das klingt jedenfalls nicht sehr professionell...
Da ich ja bis jetzt nur Bastler bin, nehm ich's leicht. Wieso auch unnötig schwer machen. Während verschiedener Praktika,... habe ich natürlich professioneller gearbeitet. Auch eine (lästige) Dokumentation hat da nicht gefehlt.
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.