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!
Hallo,
lade dich doch mal von Conrad das Datenblatt herunter (unter
Datenblattserive -> Bestellnr.). Dort stehen alle Register und deren
Funktion drin.
Martin
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
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
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
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
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
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
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
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
@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
@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