www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD-Adressen


Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benötige für ein 4x16 Display die Adressen der Zeilen:


1. Zeile Pos.1: 0x80
2. Zeile Pos.1: 0xc0
3. Zeile Pos.1: ?????
4. Zeile Pos.1: ?????

Bitte helft mir weiter, mit dem Datenblatt des HD's komme ich leider 
nicht weiter (ist nicht meine Stärke)

Autor: Ingo B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

 0 = 0x80
 1 = 0xC0
 2 = (0x80 + 20)
 3 = (0xC0 + 20)

Bis dann,
Ingo.

Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort!  Werde es gleich ausprobieren!

cu Kurt

Autor: Pierre (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann man das lc-display auch im simulatot simulieren oder muss man den 
programmspeicher immer neu "brennen" um es zu testen??

Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe es ausprobiert, funktioniert aber noch nicht.....
mein Display lässt sich nach wie vor nur für die erste und zweite Zeile 
adressieren

Die einzige Möglichkeit um in die dritte Zeile zu kommen ist momentan, 
die erste Zeile mit Zeichen zu überfüllen.

Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Auschnitt meines Programmes:

init_lcd();

   instruction(0x82); //cursor Line 1
   data('a');         //Zeichen ausgeben
   instruction(0xC2); //cursor Line 2
   data('b');         //Zeichen ausgeben
   instruction(0xA2); //cursor Line 3
   data('a');         //Zeichen ausgeben
   instruction(0xE2); //cursor Line 4
   data('b');         //Zeichen ausgeben

Autor: Phagsae (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das "Geheimnis" mit den Adressen ist eigentlich keines

Ich gehe mal von einem KS0070 aus
Der kann 80 Zeichen darstellen
Also von 0 bis 0x4F
Wenn man jetzt 2 Zeilen hat teilt man das einfach
also 0..39 und 40..80
macht dann 0 bis 27h und 27h bis 4fh
Ganz simpel oder ????

Tja leider F a l s c h !!!!!!
Hier denkt ein Dezimalwesen und will einem DIGITAL Alien
Befehle erteilen ........zzzzzzzzz

Verwirrend wird das weil die Zeilen bitweise organisiert werden
Also 128 64 32
obwohl nur 80 Zeichen Dargestellt werden

Wenn mehr zeilen benutzt werden teilt man einfach 128/n
Also 2 Zeilen je 64 oder 4 je 32 oder eben 1*128

Warum ? weil dann der Controller einfach die
jeweilig gesetzten bits auswertet

( Wir versetzten uns in dumpfe 1 und null welt )

Der Controller schläft und saugt zufrieden die Batterie leer
Plötzlich Aufruhr im Gemach
Irgend ein Sack tritt vehement gegen die Enable Tür
Der Controller brauch ca 60us um aus seinem Tiefschlaf zu erwachen
Verärgert schaut er auf seine Ratgeber
RS pennt ( wie üblich der faule wicht )
Aber hoppla RW ist auch nicht wach----strange!
Der Controller wartet noch die eine oder andere us ab
watt mutt datt mutt denkt er sich und schaut mal was sich am Datenport
( Audienzsaal ) so abspielt
Klarer Fall:
Ist D5 gestetzt --> Klaro nächste Zeile
Ist D6 gesetzt ---> nochne Zeile dazu  ... usw
Son Controller wills halt auch einfach haben ( verstehe ich gut )
binn jetzt doch ein kleinwenig ins schwafeln gekommen
:-)


rechnung 0+64=40h
rechnung 0+32=20h
rechnung 0+32+32=40h
rechnung 0+32+32+32=60h

Soweit alles einfach Warum startet dann ein Display bei
80h ????????

Ganz simpel um dem Controller zu signalisieren hier kommen DDRAM
und nicht CGRAM Daten werden die D7 bzw D7D6 Datenbits
Ausgewertet

D7 =1 -> DDRAM Adresse
D7=0 D6=1 ->CGRAM Adresse

Das setzten des D7 bits entspricht aber
Na ???
Was Wohl ????
Richtig die 80h

Also die Null ist in Wirklichkeit eine 80h
Die Adressen laufen nicht 0..80 sondern 0..31 32..63 64..tbc

Na was will der Labersack mir sagen ?
Wie sag ichs meinem LCD ???

Ich will die dritte Zeile 1 position
3. Zeile also 64 also 40h im DDRAM

Damit der dooofe Flussig Stein Anzeigeplatt ( hab ich schon so gelesen )
das kapiert:

Addiere D7 bit als 80h dazu

kommt man also auf 80h+40h = C0h


Alles klar ?


Phagsae

Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte keine Antworten wie

"es war einmal ein uC, ....Irgend ein Sack tritt vehement gegen die 
Enable Tür
Der Controller brauch ca 60us um aus seinem Tiefschlaf zu erwachen
Verärgert schaut er auf seine Ratgeber
RS pennt ( wie üblich der faule wicht )
Aber hoppla RW ist auch nicht wach----strange!"

Ich kenne eine Anstalt, die.........



Ich möchte nur wissen, wie die vier Adressen für die vier Zeilen bei 
einem 4x16 Zeichendisplay lauten! Kann mir jemand weiterhelfen?

Autor: Ingo B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Du hast falsch gerechnet:
 0x80 (hex) + 20 (dez) ist nicht 0xA0 !
sondern 0x94 (hex)!

Genauso mit der 4. Zeile....

Ich hoffe das hat geholfen.

Bis dann,
Ingo.

Autor: Phagsae (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A$80
B$C0
C$90
D$D0

Bitte bitte is ja n selbstbedienungsladen hier

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mann Kurt,

da gibt sich jemand die Mühe eine ausführliche Anleitung zu schreiben, 
und du beschwerst dich auch noch. Warum probierst du nicht einfach aus 
wo die anderen Zeilen anfangen?

MfG
Andreas

Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Ingo!

Durch deine Ratschläge und ein paar Tests habe ich nun die richtigen 
Adressen herausgefunden.

Hier die richtigen Adressen für ein 4x16 Display ohne langes Schnick 
Schnack, falls noch jemand diese benötigt:

0x80  1. Zeile 1.Pos
0xC0  2. Zeile 1.Pos
0x90  3. Zeile 1.Pos
0xD0  4. Zeile 1.Pos

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.