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
Hallo Rudolf Kabel von Port zu LCD beträgt 1m zu lang? Ich schneide jetzt ab, und melde mich wieder. Baby
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
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
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.