Forum: Mikrocontroller und Digitale Elektronik Hilfe: 4x20 LCD Schaltmodus


von baby (Gast)


Lesenswert?

Hallo!

Ich habe eine LCD 4x20 bei Conrad gekauft, weiss aber nicht wie man im 
Assembler 4 lines modus einschalten.
Für 2 lines modus habe ich gefunden: LCD_2line = 0b00101000 entspricht 
28h. Und 1 line modus ist  : LCD_1line = 0b00100000 entspricht 20h.

Und wie ist es mit 4 line modus?

Vielen Dank für eure Hilfe!

von MdeWendt (Gast)


Lesenswert?

Hallo,

lade dich doch mal von Conrad das Datenblatt herunter (unter 
Datenblattserive -> Bestellnr.). Dort stehen alle Register und deren 
Funktion drin.

Martin

von baby (Gast)


Lesenswert?

Vielen Dank Martin

Ich habe das Datenblatt gefunden.

Baby

von hebel23 (Gast)


Lesenswert?

Hallo,

wenn ich mich recht erinnere, haben die 4x20 Displays 2 
HD44780-Kontroller. Der eine steuert die oberen 2 Zeilen und der andere 
die unteren 2. Die Steuerleitungen sind alle parallel geschaltet - bis 
auf die Enableleitung. Du musst die beiden oberen und unteren Zeilen 
also ansprechen, als wären es 2 getrennte Displays in dem du einmal den 
E1-Pin(obere zwei) und einmal den E2-Pin(untere zwei) zur Datenübergabe 
benutzt.

Gruß Andreas

von MdeWendt (Gast)


Lesenswert?

Hallo Andreas,

bist du dir da sicher? Ich habe zwar bisher nur 16*4 Displays benutzt - 
die haben einen Anschluss wie zB die 16*1. Nur der Adressbereich ist 
grösser.


Martin

von hebel23 (Gast)


Lesenswert?

Hi Martin,

ja, ich bin sicher. Ich habe aber gleich noch mal eine Recherche 
gestartet: Es gibt sowohl die eine als auch die andere Variante. Ein 
Beispiel für ein Display mit 2 Enableleitungen unter folgendem Link:

http://www.mpi.ch/attach/000001f6.PDF

Gruß Andreas

von Rudolf Sosnowsky (Gast)


Lesenswert?

Die meisten 4x20-Displays haben einen einzigen Controller. Die dritte 
Zeile ist die Fortsetzung der ersten, und die vierte die der zweiten. 
Erst die 4x40-Displays haben einen zweiten Controller. Für baby ist es 
deshalb wichtig zu wissen, dass sein/ihr Display in Duty 1:16 läuft, und 
deshalb als "2-line display" initialisiert werden muß. Um die Zeichen 
dann in die richtigen Zeilen zu verteilen, ist halt etwas Software 
nötig.

Gruß, Rudolf.

Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de

von baby (Gast)


Lesenswert?

Hallo zusammen

Eure Erklärung kann ich ein bisschen aufmachen. Für besser Verstehen 
könnt ihr ein Programmchen schreiben, das "LCD" am Display anzeigt mit 
4Bit oder 8Bit, für Atmega163.

Danke, Baby

von baby (Gast)


Lesenswert?

Programm in Assembler.
Noch etwas, ich habe mal probiert mit 16x2 Programme in Codesammlung, 
aber es ist nicht gegangen. Wenn ich den Strom an den Modul hängen, 
bekomme ich zwei schwarz Balken 1. und 3. Zeile. Mit dem Kontras habe 
ich auch versucht. Bleibt erfolglos.

Baby

von Rudolf Sosnowsky (Gast)


Lesenswert?

Hallo Baby,

ich habe leider kein passendes Programm. Deiner Beschreibung nach 
funktioniert schon die Initialisierung nicht. Wichtig ist, dass bei der 
Initialisierung die Delays eingehalten werden, dass das Timing so wie im 
Datenblatt dargestellt realisiert wird (Setup- und Hold-Zeiten), und 
dass die Flanken zwar steil genug sind (<20ns), aber andererseits nicht 
überschiessen (Doppel-Triggerung). Ist Dein Kabel kurz genug?

Gruß, Rudolf.

Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de

von baby (Gast)


Lesenswert?

Hallo Rudolf

Kabel von Port zu LCD beträgt 1m zu lang?

Ich schneide jetzt ab, und melde mich wieder.

Baby

von baby (Gast)


Lesenswert?

Nein, es geht auch nicht. Ich habe das Programm im Code Sammlung: LCD 
2x16 Display 4-bit unter 
http://www.mikrocontroller.net/attachment.php/662/LCD4BIT_NEU.asm
auch versucht, aber...pech.

Gruss

von Rudolf Sosnowsky (Gast)


Lesenswert?

Stimmt die Pinbelegung? Die ist etwas eigenwillig, aber durchaus 
möglich. Verdrahtungsfehler/Kurzschluß? Sind die restlichen 
Datenleitungen (D0...D3) offen bzw. auf High-Pegel? Wie hoch ist Deine 
Taktfrequenz? Du musst evtll. die Delay-Konstante anpassen.

Gruß, Rudolf.

Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de

von A.Füßer (Gast)


Lesenswert?

@Rudolf: Wie lange sollte/darf so ein Kabel denn sein? Ich hatte schon 
bei 40cm Probleme, bei 25cm gings dann. Wie sind die Erfahrungswerte?

Danke,
 André.

--
CAN@home - http://www.CANathome.de - Hausautomation mit AVR + CAN

von Rudolf Sosnowsky (Gast)


Lesenswert?

@André:
Die Kabellänge kann man nicht pauschal festlegen. Es spielen zu 
unterschiedliche Faktoren eine Rolle, z.B. die Treiberleistung auf der 
CPU-Seite. Zwei Beispiele.

1. Wir hatten ein Board, das ein Display über mit 74HC245 gepufferte 
Leitungen ansteuerte. Die Flanken waren so steil, dass die Signale auf 
Nachbarleitungen übersprachen und am "offenen Ende" des LCD-Controllers 
stark über Vcc und unter Gnd hinaus schossen. Erst mit einer 
Terminierung konnten die Signale gebändigt werden, damit der 
LCD-Controller 100% einwandfei lief.

2. Display direkt an den Port-Leitungen unseres Rechners mit dem 
M16C/62. Dieser Prozessor ist derartig EMV-optimiert, dass die Signale 
auch nach einer längeren Leitung (getestet bis ca. 1m) einwandfrei 
aussahen und der LCD-Controller funktionierte.

Im Zweifelsfall hilft, die Signale mit einem ausreichend schnellen 
Oszilloskop anzuschauen und zu mit Terminierungen an Treiber- oder 
Controllerseite zu optimieren.

Gruß, Rudolf.

Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de

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.