Forum: Mikrocontroller und Digitale Elektronik BASCOM und Pollin LCD Display


von Dieter Harms (Gast)


Lesenswert?

Hallo, ich habe mir bei Pollin ein LCD Display gekauft. (HD44780, 4x27
Zeichen, kennt vermutlich der ein oder andere)

Jetzt habe ich ein Programmierproblem mit Bascom. Dort lässt sich doch
der Anschluss frei konfigurieren oder muss ich mich an irgendwelche
konkreten Pinbelegungen halten?

Ich hatte mir folgendes Schema überlegt und danach auch meine Schaltung
ausgelegt: (4-Bit-Modus)

RS --> PinB.0
E1 --> PinC.3
E2 --> PinC.2
D4 --> PinB.5
D5 --> PinB.4
D6 --> PinB.3
D7 --> PinB.2

So habe ich das Ganze verdrahtet und mein Programmcode sieht nun wie
folgt aus:

$regfile = "m8def.dat"
$crystal = 4000000

'Einbindung der LCD-Bibliothek für ein 2-Prozessor-Display
 $lib "lcd4e2.lbx"

'Bascom kennt keine Display mit 27 * 4 Zeichen, daher 40 * 4
verwenden
 Config Lcd = 40 * 4

Config Lcdbus = 4
Config Lcdmode = Port

'man achte auf die Ergänzung E2
 Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 ,
Db7 = Portb.2 , E = Portc.3 , E2 = Portc.2 , Rs = Portb.0

' Systemvariable der LCD-Bibliothek (wichtig, bloß nicht ändern)
   Dim ___lcde As Byte



Main:

' wählt die beiden oberen Zeilen aus
 ___lcde = 0

' löscht die beiden oberen Zeilen
   Cls
' wählt die obere Zeile aus
   Upperline
' schreibt in die erste Zeile an Position 3
   Locate 1 , 3
' den Text in Anführungszeichen
   Lcd "Zeile 1"
' wählt die zweite Zeile aus
   Lowerline
' schreibt in die zweite Zeile an Position 2
   Locate 2 , 2
' in diesem Fall den Inhalt der Variablem mit dem Namen Variable
   Lcd "Zeile 2"
' unterdrückt den Cursor
   Cursor Off

' wählt die beiden unteren Zeilen aus
   ___lcde = 1
   Waitms 100
   Cls
   Thirdline
   Locate 1 , 1
   Lcd "Zeile 3"
   Fourthline
   Locate 2 , 1
   Lcd "Zeile 4"
   Cursor Off

Goto Main
End

von Dieter Harms (Gast)


Lesenswert?

Das Display macht jetzt auch etwas, aber bekomme irgendwie nur
kryptische Dinge. Am PC lässt sich das Display tadellos betreiben.

Bitte helft mir!

von Alex (Gast)


Lesenswert?

So ein Display habe ich auch!

von Paul Baumann (Gast)


Lesenswert?

Schreib mal unter ___lcde = 0 das Wort Initlcd hin. Es sieht so aus,
als ob das Ding nicht initialisiert würde.

MfG Paul

von Robert S. (razer6)


Lesenswert?


von Alex (Gast)


Lesenswert?

Hi!
Hast du was rausgefunden??? Bei mir geht das auch nicht!
Mein Code sieht erstmal so aus:

$regfile = "m16def.dat"
$crystal = 10000000

 $lib "lcd4e2.lbx"


 Config Lcd = 20 * 4

 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 ,
Db7 = Portb.3 , E = Portb.5 , E2 = Portb.6 , Rs = Portb.4

 Dim ___lcde As Byte

 ___lcde = 0
 Cls
 Locate 1 , 1
 Lcd "zeile 1"

Funktioniert nicht! :( Alles richtig verlötet.. ans Port B
Weiss jemand warum?

von Karl heinz B. (kbucheg)


Lesenswert?

Ich vermisse den
  InitLCD
der das LCD initialisiert.

von Alex (Gast)


Lesenswert?

Habe ich korrigiert....
passiert nichts :(
Kontrast funzt.
Es gibt bestimmt noch ein hacken bei 2 Controller -LCD.
mir dem einfachen LCD habe ich keine probleme mehr

von Alex (Gast)


Lesenswert?

wo kann das problem denn liegen?????????

von _CH_ (Gast)


Lesenswert?

Hallo,

versuche mal bei Config Lcd 40*4 und initialisiere jede Displayhälfte 
einzeln!

Wenn das noch immer nicht funzt, kann ich dir mal meinen Code posten, 
der bei mir bisher anstandslos funktioniert.

Gruß,
Christian

von HSBO (Gast)


Lesenswert?

Nun habe ich endlich mein LCD-Modul von Pollin erhalten, und X-Mal die 
Anschlüsse durchgemessen.
Alles korrekt verbunden.
STK500 PortB --> LCD
8515 und 90S2313 mit dem LCD Programm beschrieben. Nach dem 
Programmieren erscheinen meist die ersten beiden Zeilen wie es im Prog 
steht.
Zeile 3 und 4 erscheinen nach dem löschen des CLS.
Nach einem Reset oder nach Ein- und Ausschalten verschieben sich die 
Inhalte oder es werden Buchstaben durch andere Zeichen ersetzt.

Bei einem Programm von mir in dem ich nur Wörter in die vier Zeilen 
setze ist es ähnlich.
Und nocheinmal habe ich die verbindungen nachgemessen. Die stimmen 100%.

Jetzt habe ich das Programm vom RoboterNetz für das 4 Zeilige Modul 
aufgespielt. Die 4 Zeilen werden richtig dargestellt, dann jedoch 
wechseln die Zeileninhalte.Zum Beispiel Zeile 4 in Zeile 3. Jedoch kann 
mann kein System erkennen. Das LCD zeigt einfach was es will. Ab und zu 
sind wirre Zeichen dabei.

Danach habe ich den Ausgangsport gewechselt. Das Ergebniss ist dasselbe.

von Dieter Harms (Gast)


Lesenswert?

Genau so sieht es bei mir auch aus. Am PC über LPT lässt sich das 
DIsplay wunderbar betreiben, doch über meinen ATmega8 und Bascom bekomme 
ich nur komische Zeichen in den Zeilen dargestellt. Alles geht drunter 
und drüber...


von Alex (Gast)


Lesenswert?

keine Ahnung, was ihr da habt.. bei mir funzt er SCHON einwandfrei.. hat 
mir aber 2 Tage LESEN gekostet

von HSBO (Gast)


Lesenswert?

BEI MIR WAR DIE $CRYSTAL-DIREKTIVE VERKEHRT (2000000 statt 1000000)

Es läuft jetzt wunderbar.

Vielleicht hilft es euch ja auch.

Gruß
HSBO

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.