LCD im 4-bit-mode ansteuern

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From German to

Threaded View
Hallo NG!

Ich möchte mein Ansteuerungsmodul für LCD-Displays (für Visual Basic) mit
einer Möglichkeit erweitern, das Display im 4-Bit-Modus zu verwenden.
Ich hab es schon einige Male versucht, aber immer ohne Erfolg. Ich schicke
folgendes an das Display:

(R/W und RS sind immer auf Low, bei jeder Ausgabe erfolgt natürlich das
Bestätigen mit Enable und danach eine Pause von 1ms)

00110000
20ms Warten

00110000
00110000 '4-bit-mode setzen

00100000 'Functionset

00100000
00100000 'Schrift setzen (8x5)

00000000
11000000 'Display an

00000000
00010000 'Display löschen

00000000
01000000 'Entry Mode set

Wisst ihr, was ich da falsch mache?
Das Display zeigt immer nur seine zwei Balken an und ist von der ganzen
Sache wenig beeindruckt.

MfG

Chris
--
http://www.hobby-elektronik.de.vu
ICQ: 176979879
We've slightly trimmed the long signature. Click to see the full one.
Re: LCD im 4-bit-mode ansteuern
Quoted text here. Click to load it

Im Datenblatt des KS0070 wird hier eine Pause von 1,64ms gefordert.
Im Datenblatt des HD44780 ist bei mir keine Zeit angegeben.

Welcher Controller ist auf dem Display?

Quoted text here. Click to load it


Die Länge des Enable-Impulses könntest du noch kontrollieren.
Bei mir war die Verdrahtung schlecht und ich mußte ein paar NOPs
einfügen.

mfg
werner
--
VK: Z80 "NDR Klein Computer"
http://www.my-stuff.onlinehome.de

Re: LCD im 4-bit-mode ansteuern
Hallo Werner!

[Code]

Quoted text here. Click to load it

Es ist ein Samsung, also KS0070 und ein Bruder von ihm (16x4)

Quoted text here. Click to load it


Ich habe die Pausen zwischen Ehigh -> Elow und Elow-> nächster Befehl
testweise auf 20ms gestellt. Hilft leider nichts.

Wenn ich das Display an meine Funkuhr (PIC16F84) anschließe funzt das
Display wie eines mit dem HD44780.

MFG

Chris



Re: LCD im 4-bit-mode ansteuern
Hallo!

Quoted text here. Click to load it
Der Kommentar muß 8-bit mode heißen, denn hier ist das Display im
8Bit-Modus. Die dreimalige Wiederholung stellt sicher, daß das unter
allen Umständen (auch im 4bit-Modus) so ist, damit beim nächsten
Befehl klar ist, ob man beim Low oder High-Nibble des 4bit-Modus ist.
Quoted text here. Click to load it
ok. setzt 4bit-Modus

Quoted text here. Click to load it
Ungewöhnliche Initialisierung, 22h. Einzeiliges Display mit
integrierten Spannungsinverter?!
Üblich wäre: 28h => 0010xxxx 1000xxxx für zweizeilig ohne eingeb.
Spannungsinverter, oder manche langen einzeiligen
             22h => 0010xxxx 0010xxxx für einzeilig mit eingeb.
Spannungsinverter
             20h => 0010xxxx 0000xxxx für einzeilig ohne eingeb.
Spannungsinverter
             2Ah => 0010xxxx 1100xxxx für vierzeilig oder lange
zweitzeilige ohne eingeb. Spannungsinverter

also Bit 2+3: 1/2/4Zeilig oder 1/2Zeilig+Schriftart
Bit 1: Spannungswandler an/aus (wenn vorhanden, sonst undefiniert)

Quoted text here. Click to load it

ok.


ok.


ok.


Das einzig Auffällige ist das SystemSet von 22h. Wenn der stimmt oder
eine Änderung nix bewirkt, schreib doch mal Deine Routine, die ein
Datenbyte ins Steuerregister ausgibt.

Gruß

Tassilo
--
µC Assembler-IDE für AVR, 8051, Z80, 8048 =>
http://www.theeg.de/aside/index.html
We've slightly trimmed the long signature. Click to see the full one.
Re: LCD im 4-bit-mode ansteuern
Hallo Tassilo!

Quoted text here. Click to load it

*Kopfantischkantehau*

Mann, jetzt kann ich nichteinmall mehr ein Datenblatt lesen.
Danke, jetzt wird alles initialisiert!

MfG

Chris

--
http://www.hobby-elektronik.de.vu
ICQ: 176979879
We've slightly trimmed the long signature. Click to see the full one.
Re: LCD im 4-bit-mode ansteuern
Quoted text here. Click to load it

In meinem Datenblatt steht 0 0 1 dl 1 0 x x . Das würde ich auch so machen,
weil der erste Transfer manchmal als 4 bit(initialisiertes Display) und
manchmal als 8 bit (Neustart) erkannt wird. Deshalb schicke ich alles so
als ob das Display schon 4 bit läuft.

Aber was meinst du mit RS immer auf Low?

Zum senden von Daten muß RS umgeschaltet werden. Falls das schon machst
versuchs mal mit einem 3K Pullup an Enable.

Außerdem verwende ich zum Initialisieren im 4-bit mode diesen Initstring.
 lcdinitstring[]=

--
MFG Gernot

Re: LCD im 4-bit-mode ansteuern
Hallo Gernot!

Quoted text here. Click to load it
machen,

Steht in meinem auch. Aber ich bin auf beiden Augen blöd ;)

Quoted text here. Click to load it

Weil man RS nur dazu braucht, wenn man Zeichen in den DD-Ram  und CG-Ram
braucht?

Quoted text here. Click to load it

Verwechselt du RS und E?

Quoted text here. Click to load it

Hex und Binär vermischt?
Das sieht komisch aus!

MfG

Chris



Re: LCD im 4-bit-mode ansteuern
Quoted text here. Click to load it


Nein mit Daten meinte ich Zeichen. Das andere sind für mich Kommandos ;-)

Quoted text here. Click to load it

Mein Compiler schluckt das ohne murren. Ich bin halt tippfaul. Ist aber so
gemeint wie es dasteht.

--
MFG Gernot

Re: LCD im 4-bit-mode ansteuern
Hallo Gernot!

Quoted text here. Click to load it

Unter Daten verstehe ich beides!
Daten sind eben Daten, egal ob Zeichen, Commands oder sonst irgendwas!

Quoted text here. Click to load it
Initstring.

Dann machs ich halt bisschen übersichtlicher ;)
lcdinitstring[]=

MfG

Chris



Re: LCD im 4-bit-mode ansteuern

Quoted text here. Click to load it

12=0x0C
Ach ja, die Null wird nicht gesendet.    

--
MFG Gernot

Re: LCD im 4-bit-mode ansteuern
Quoted text here. Click to load it

Ich hatte C im Kopf, warum ich A geschrieben hab, weiß ich nicht.

Mfg

Chris



Site Timeline