www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD an 8051 - Portkonfiguration?


Autor: KeinPlan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Meine Überlegung Open Drain mit einem Pull-Up Widerstand?

Das ist dann Quasibidirektional, die Standardeinstellung
nach einem Reset.

Autor: KeinPlan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, ok wieder etwas gelernt :)

Besten Dank!

Autor: haldol (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi..
falls du zuwenig portpins hast, kannst du auch die geschichte
mit einem pcf8574-baustein per i2c-bus anbinden.
gruss c.

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder RW an GND, spart noch ein Pin.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne EN geht nicht. Oder man nimmt irgendeine externe Beschaltung. 
Übrigens ist ein einfaches Schieberegister einfacher und billiger als 
ein I2C PCF-Port Expander.

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jko zB. das 164. Dann reichen 2-3 Leitungen.
Beitrag "Standard LCD über nur 3 Drähte"

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, hab mich verschrieben gehabt. Ich meinte natürlich die RW Leitung 
und nicht die EN Leitung. :)

Autor: MC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: MC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: MC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>"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.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: MC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.