PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2. Zeile im LCD display



schroejahr
01.10.2005, 14:45
Hallo, ich habe das myavr board,mit lcd display und alles funktioniert super, das testprogramm läuft, und ich kann auch durch ein von mir geschriebenes programm das lcd display ansteuern, hintergrundbeleuchtung anmachen etc...

aber wie komme ich in die 2te zeile ?

hab mir das datenblatt des lcds angesehn, finde aber keine lösung...

das datenblatt gibts hier :

http://www.myavr.de/download/Beschreibung_myAVR_LCD.pdf

Lektor
01.10.2005, 15:37
was ist denn mit Seite 5 unter Set Function N H "2 line display". Hört sich doch danach an, oder nicht?

hrei
01.10.2005, 16:01
Hallo,

wenn Du in Bascom programmierst, was ich mal annehme, ist das ganz einfach:

Cls
Lcd "1.Zeile"
Locate 2 , 1
LCD "2.Zeile"

Grüße
Henrik

schroejahr
01.10.2005, 17:45
hi, mit der funktion "2 line display" gebe ich bei der init des displays an das ich ein 2 zeilen display benutze...

habe auch versucht einfach "durchzuschreiben" das er automatisch in zeile 2 springt, geht nicht.

Und ich programmiere in assembler

izaseba
01.10.2005, 19:25
Hallo, dann schaumal auf der Seite 6 im Dattenblatt nach, dort steht:
"Display Adressorganisation"
Du mußt direkt in die Adresse von der zweiten Zeile schreiben, in Deinem Fall liegt das erste Zeichen bei 0x40

Gruß Sebastian

schroejahr
01.10.2005, 20:17
sowas hab ich mir gedacht... und wie mach ich das ?
ich meine, wie übergebe ich die addresse für das zu schreibende zeichen an das lcd ?

izaseba
02.10.2005, 01:21
Hallo,
Hier (http://www.doc.ic.ac.uk/~ih/doc/lcd/instruct.html) hast Du alle Befehle von HD44780.
Dich interessiert "Set DD Ram address"
Du mußt zuerst diesen Behehl ausführen, also RS auf Befehl(LOW) dann 0x80+0x40(also 0xC0) anlegen, Enable; RS auf Daten(HIGH) , Zeichen anlegen, Enable und schon zauberst Du ein Zeichen in die zweite Zeile...
Analog dazu kannst Du alle Zeichen in beiden Zeilen ansteuern.
Ich hoffe, daß ich Dir helfen konnte,
Gruß Sebastian

schroejahr
02.10.2005, 09:01
hi, danke, das hilf mir schon weiter, leider funktioniert aber der gepostete link nicht

schroejahr
02.10.2005, 09:30
Hallo, in dem datenblatt zu meine lcd display welches ich schon oben gepostet hab steht auch die befehlstabelle, was müsste ich hiernach tun ?

erst den befehl ausführen mit angelegtem 0x40 (0x40 = 2.zeile,1. zeichen) ?

wenn ja ,wie ?
weil laut datenblatt ist ja db7 bereits high um die addresse zu setzen, dann hätte ich ja keine 8bit mehr zur verfügung um die 0x40 zu übergeben...

izaseba
02.10.2005, 09:51
komisch, gestern ging der link bei mir heute auch nicht mehr :-k
Naja, egel, also RS muß LOW sein, damit man ein Befehl überträgt, danach kommt 0x80 (Bit 7) plus die entsprechende Stelle laut Datenblatt (z.B. 0x40)
zusammenaddiert ergibt es 0xC0 die legst Du an die Datenleitungen, gefolgt von einem Enable Impuls, so jetzt setzt Du RS HIGH um Daten zu übertragen , auf Datenleitungen ASCII wert von Deinem Zeichen , wieder ein Enable Impuls, und schon scheibst Du in der 2. Zeile, jedes nächste Zeichen was Du sendest kommt hinterher,


weil laut datenblatt ist ja db7 bereits high um die addresse zu setzen, dann hätte ich ja keine 8bit mehr zur verfügung um die 0x40 zu übergeben...


um 0x40 zu übertragen braucht man auch keine 8 Bits,
0x40 ist ja 1000000 also 7 bits , d.h.
Du brauchst 11000000 (laut Datenblatt).

Bit 7 muß bei diesem Befehl IMMER gesetzt sein, deswegen ist es auf 1 im Datenblatt (davon kommt dieses 0x80 + 0x40 )

Na hat es jetzt Klick gemacht? Ich hoffe schon :-)

Gruß Sebastian

schroejahr
02.10.2005, 10:32
klar, danke jetzt hab ichs kapiert