Gut werd ich morgen dann mal machen!
Druckbare Version
Gut werd ich morgen dann mal machen!
Hast du an Pin 3 vom Display den Schleifer eines Potis angeschlossen?
Sind nach dem Anlegen der Betriebsspannung am Display in Zeile 2 und 4 dunkle Balken sichtbar?
Die nicht verwendeten Daten-Pins sollen offen bleiben. Siehe Datenblatt.Zitat:
Zitat von TomEdl
Initlcd wird nicht funktionieren, da das Display nicht 100% kompatibel ist. Außerdem ist die Initialisierung neuerdings schon automatisch enthalten.
R/W muss auf GND, damit BASCOM Befehle und Daten in den Controller schreiben kann.Zitat:
Zitat von Kampi
Deine Declare Zeile muss so aussehen:
Declare Sub Lcdwrite(byval Zeichen As Byte)
Zitat:
Zitat von Tido
So ich hab jetzt mal R/W nach Groung gelegt und diesen Code benutzt:
Ja hab ich so angeschlossen und es sind keine dunklen Balken sichtbar. Das Programm funktioniert nun soweit und das mit dem R/W Ground mach ich morgen. Melde mich dann morgen mittag nochmal.Nun wird mir auf dem Display ein V mit Unterstrich und ein ê angezeigt. Ist das richtig so oder deutet das auf einen Fehler hin? *kopf kratz*Code:$regfile = "m32def.dat"
$crystal = 16000000
Config Lcd = 20 * 4a
Dim Zeichen As Byte
Declare Sub Lcdwrite
'Pins des LCD-Modules setzen ggf. an eigene Anschlüsse anpassen
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Initlcd
Call Lcdwrite(&B00101100)
Waitms 5
Call Lcdwrite(&B00001001)
Waitms 5
Call Lcdwrite(&B00101000)
Waitms 5
Call Lcdwrite(&B00000110)
Waitms 5
Call Lcdwrite(&B00001100)
Waitms 5
Cls
Locate 1 , 1
Lcd "Hallo Welt"
'Schreibt die Initialisierungs - Bits zum LCD
Sub Lcdwrite(byval Zeichen As Byte)
' Höherwertiges Nibble setzen
If Zeichen.4 = 1 Then Portc.4 = 1 Else Portc.4 = 0
If Zeichen.5 = 1 Then Portc.5 = 1 Else Portc.5 = 0
If Zeichen.6 = 1 Then Portc.6 = 1 Else Portc.6 = 0
If Zeichen.7 = 1 Then Portc.7 = 1 Else Portc.7 = 0
' Höherwertiges Nibble übertragen
Portc.3 = 1
Waitms 1
Portc.3 = 0
Waitms 1
' Niederwertiges Nibble setzen
If Zeichen.0 = 1 Then Portc.4 = 1 Else Portc.4 = 0
If Zeichen.1 = 1 Then Portc.5 = 1 Else Portc.5 = 0
If Zeichen.2 = 1 Then Portc.6 = 1 Else Portc.6 = 0
If Zeichen.3 = 1 Then Portc.7 = 1 Else Portc.7 = 0
' Niederwertiges Nibble übertragen
Portc.3 = 1
Waitms 1
Portc.3 = 0
Waitms 1
End Sub
Hallo Kampi,
ich würde jetzt zunächst mal wieder deinen ursprünglichen Code benutzen. Auch der sollte eine gewisse Ausgabe ermöglichen. Dann im nächsten Schritt diese speziellen Sachen integrieren, um die Inkompatibilität zu beheben.
Code:$regfile = "m32def.dat"
$crystal = 16000000
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Cls
Locate 1 , 1
Lcd "Hallo Welt"
End
Gut werd ich dann mal nach der Arbeit aufspielen und mich dann nochmal melden.
Boah es funktioniert endlich *Luftsprünge macht*. Es lag anscheinend echt nur an der fehlenden R/W Verbindung.
Danke euch allen für die Hilfe =D>
Also bei mir geht mit fehlendem Initlcd gar nix.Zitat:
Zitat von for_ro