mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD 4-zeilig


Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt stehe ich aber auf dem Schlauch,
nach Durchsicht der Datenblätter und beim Tutorial finde ich:

Konfiguration: 0b001dnfxx mit:
d = 0, 4-Bit Interface
d = 1, 8-Bit Interface
n = 0, 1 zeilig
n = 1, 2 zeilig
f = 0, 5x8 Pixel
f = 1, 5x11 Pixel

Frage: Was muss ich denn wo noch einstellen, wenn ich ein 4-zeiliges 
Display benutze (z.B. LCD 204B von Reichelt) ?

Manni

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für vierzeilige Displays brauchst du ganz einfach die zwei-, bzw. eben 
mehrzeilige Initialisierung. Die zweite Zeile ist dann an Adresse 0x40 
zu finden. Die dritte AFAIK bei 0x20 und die vierte bei 0x60. Müsstest 
du aber im Datenblatt noch genau nachschauen.

Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke dir Philipp für den Tip.

Habe gerade noch was beim Googlen gefunden:

"Vierzeilige Displays mit bis zu 20 Zeichen pro Zeile lassen sich mit 
nur einem Controller und zusätzlichen Displaytreibern aufbauen. Das 4x20 
Display ist eigentlich ein 2x40 Display, das in der Mitte 
durchgeschnitten wurde, und bei dem dann die hinteren Hälften der Zeilen 
unter den vorderen Hälften der Zeilen angebracht wurde. Wenn man also 
dem Controller Daten für die 1. Zeile übergibt, so werden davon die 
ersten 20 Zeichen wirklich in die 1. Zeile geschrieben, wärend Zeichen 
21 bis 40 in die 3. Zeile gelangen. Genauso gehören die 2. und 4. Zeile 
des Displays eigentlich hintereinander."

Jetzt ist meine Welt wieder in Ordnung und der Abend gerettet.



Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kan mir vielleicht jemand helfen?
habe folgendes Problem bzw. ich verstehe folgendes nicht ganz:

habe ein 4 Zeiliges LCD wenn ich folgendes schreibe:

#include <avr/io.h>
#include "lcd-routines.h"


 int main(void)

{


    lcd_init();

    lcd_data('T');
    lcd_data('e');
    lcd_data('s');
    lcd_data('t');
    lcd_data(' ');
    lcd_data('H');
    lcd_data('o');
    lcd_data('l');
    lcd_data('a');
    lcd_data('!');
    lcd_data('!');

  set_cursor(0,2);


    lcd_string("Funciona -!!");

    while(1)
    {
    }

    return 0;
}

dann schreibt er !

wenn ich aber statt set_cursor(0,2);  "set_cursor(0,3);" schreibe komm 
dann mein Text aber "Funciona...." taucht in der 17 Spalte im erste 
Zeile!!

warum??

vielen Dank!
Gruß
Martin

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kan mich keine helfen??

Autor: Gülcan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nain.

Gülcan.

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.