www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik HD44780: Woher kommt die Verschiebung der Displaypositionen?


Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

das ist vielleicht schon gefragt worden, aber ich find dazu nix. Kann 
mir jemand erklären, woher die Verschiebung der Positionen kommt? Also 
z.B. bei einem 4x20 Display, dass die erste Zeile bei Adresse/Position 
0x00 beginnt, die zweite bei 0x40, die dritte bei 0x14 und die vierte 
bei 0x54.

Ist das aus hardwaretechnischen Gründen so gemacht worden?

Ralf

Autor: Bernhard M. (boregard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm ... reine Vermutung....

Ich weiß nicht, wie lange es die HD44780 schon gibt, aber vor ~ 20 
Jahren kannte ich davon nur ein - und zweizeilige Displays, eben erste 
Zeile an 0x00 und zweite Zeile and 0x40, maximale Displaygröße 2x40.

Wenn man jetzt einfach die zweite Hälfte der ersten Zeile beim Display 
selbst als dritte, und die Zweite Hälfte der zweiten Zeile als vierte 
Zeile anlegt (also nur auf dem Glas...), dann kommt genau das jetzige 
Adressierungsschema heraus....
..und vielleicht ist dies auch die "Evolution" der Displays gewesen...

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernhard M. wrote:

> Wenn man jetzt einfach die zweite Hälfte der ersten Zeile beim Display
> selbst als dritte, und die Zweite Hälfte der zweiten Zeile als vierte
> Zeile anlegt (also nur auf dem Glas...), dann kommt genau das jetzige
> Adressierungsschema heraus....

Fast genau richtig, nur das mit der Hälfte passt nicht: Der 44780 hat 80 
Bytes an RAM, kann also maximal 2x 40 Zeilen ansprechen.
Diese 2 Zeilen sind gleichmäßig auf 128 Bytes verteilt, beginnen also 
bei 0 und bei 64 (0x40).
Elektrisch gesehen sind alle 4 zeiligen Display 2 Zeiler. Die 3 Zeile 
ist eine Fortsetzung der 1. Zeile und die 4. Zeile von der 2. Zeile.
Daher beginnt die 3. Zeile auch bei Adresse 20 (0x14) bei einem 4x20 
Display und bei Adresse 16 (0x10) bei einem 4x16 Display. Bei Zeile 4 
ist es genauso: Diese beginnt bei 84 (0x54) bzw 80 (0x50).

Autor: Bernhard M. (boregard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ich ging bei der Hälfte von den 80 Bytes RAM aus, hätte ich wohl 
noch schreiben sollen...

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den HD44780 gibt es seit etwa 30 Jahren. Die Originalchips haben nur die 
Treiber für 2x8 Zeichen gehabt und die Daten für die restlichen 
Positionen seriell an kaskadierbare Schieberegister mit LCD Treiber 
weitergegeben (die Chipvariante gibt es heute noch). Der HD44780 weiss 
also nicht wie das Display wirklich aufgebaut ist, sondern schiebt die 
Daten einfach raus. Daher ist die Verteilung des Speichers auf die 
Zeilen fest vorgegeben.

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.