Forum: Mikrocontroller und Digitale Elektronik Displaytech 162 LCD mit bascom ansteuern


von David S. (Gast)


Lesenswert?

Moin Moin, ich hab mir letztens bei Reicehlt das Display bestellt:
http://www.reichelt.de/?ACTION=3;ARTICLE=31652;PROVID=2402

Mein Code sieht grad so aus:
1
$regfile = "2313def.dat"
2
'$crystal = 16000000
3
4
Ddrd = &B11111111                                           'LCD-Output
5
6
7
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
8
Config Lcd = 16 * 2
9
10
ldi r24, $24                                                'hier die Anpassungen
11
rcall _lcd_control                                          'für das Reichelt-LCD
12
ldi r24, $9
13
rcall _lcd_control
14
ldi r24,$20
15
rcall _lcd_control
16
17
Initlcd
18
Cls
19
Cursor Off Noblink
20
21
Locate 1 , 1
22
Lcd "Zeile1..."
23
24
Locate 2 , 1
25
Lcd "Zeile2..."
26
27
End

Display is auch garantier richtig angeschlossen, zehnmal übrprprüft, es 
zeigt in der ersten Zeile auch schöne schwarze Rechtecke deren Kontrast 
ich übern Poti regeln kann.

Das lässt für mich darauf was schliesen was ich nach stundenlangen 
googeln so über LCD rausgefunden hab das nur die erste Zeile 
initialisiert wird, oder?

Ich weis das es Bascom lieber wäre wenn ich en Display mit nem HD44780 
Controller hätt, aber soeins gibts bei Reichelt nur für 18 Euro, und das 
is mir dann doch etwas zuviel^^

Vorhin bin ich dann hierrauf gestosen und hab das auch gleich Probiert ( 
Beitrag "Bascom: Reichelt-LCD" ), und das was oben steht 
is nu bei rausgekommen, mit LCDs hab ich halt noch nie gearbeitet.

Weis jemand was ich falsch mache?

Danke schonmal für eure Antworten :)

MFG
David

von Karl H. (kbuchegg)


Lesenswert?

David Sutter schrieb:

Gleich vorweg:
Ich habe keine Lösung für dein Problem

> Das lässt für mich darauf was schliesen was ich nach stundenlangen
> googeln so über LCD rausgefunden hab das nur die erste Zeile
> initialisiert wird, oder?

Nö. Da hast du dann schlecht recherchiert.
Das bedeutet, dass das LCD überhaupt nicht initialisiert wurde.
Selbst wenn du nur die Versorgungs und Kontrastspannung anlegst, 
erscheinen die beiden Balken. Sinn der Sache ist es, dem Benutzer eine 
Möglichkeit zur Einstellung des Kontrastes zu geben (und wahrscheinlich 
auch eine Rückmeldung, ob das LCD das zeitliche gesegnet hat)

> Ich weis das es Bascom lieber wäre wenn ich en Display mit nem HD44780
> Controller hätt, aber soeins gibts bei Reichelt nur für 18 Euro, und das
> is mir dann doch etwas zuviel^^

Tja. Wieviel sind dir die Stunden der bisherigen Fehlersuche wert :-)


> Vorhin bin ich dann hierrauf gestosen und hab das auch gleich Probiert (
> Beitrag "Bascom: Reichelt-LCD" ), und das was oben steht
> is nu bei rausgekommen, mit LCDs hab ich halt noch nie gearbeitet.

Darauf würde ich nicht allzuviel geben.
Dieses Posting stammt aus 2005. In der Zwischenzeit hat sich viel getan. 
BASCOM wurde weiterentwickelt. Da würde ich mal nach etwas Neuerem 
suchen.

von Karl H. (kbuchegg)


Lesenswert?

R/W des LCD hast du an Masse gelegt?
Beitrag "lcd mit KS0070B tut nicht"

von David S. (Gast)


Lesenswert?

Jo R/W liegt auf GND, aber könnte es daran liegen das ich mittem 
internen Oszilator arbeit und das Timing bei der Übertragung dann zu 
ungenau ist?

von Karl H. (kbuchegg)


Lesenswert?

Kannst es ja einmal ausprobieren

Lüge BASCOM an und behaupte dein µC läuft mit 16Mhz. Wenn der Proz dann 
tatsächlich langsamer läuft hat BASCOM alles viel zu kurz berechnet und 
dein Programm braucht in Wirklichkeit für alles viel länger als BASCOM 
ausgerechnet hat.

Beim einem LCD darf man nur nicht zu schnell sein. Zu langsam kann man 
sein soviel man will :-)

von David S. (Gast)


Lesenswert?

Ich versteh iwie nich was ich machen soll :P, also $crystal = 16000000 , 
und dann?

von Karl H. (kbuchegg)


Lesenswert?

David Sutter schrieb:
> Ich versteh iwie nich was ich machen soll :P, also $crystal = 16000000 ,
> und dann?

nichts und dann. einfach ausprobieren.

Deine Vermutung war, dass dein 'Timing zu ungenau' ist. Bei einem LCD 
kann aber 'zu ungenau' nur heißen: 'zu schnell'.
Also lügen wir BASCOM so an, dass es das LCD viel langsamer als 
notwendig ansteuert. Wenn sich deine Befürchung bewahrheitet, dann 
müsste es funktionieren. Funktinoiert es dann immer noch nicht, dann ist 
deine Hypothese 'Timing zu ungenau' nicht haltbar.

von Klemm (Gast)


Lesenswert?

Vielleicht ist der Controller ja auch einfach kompatibel?

Probier mal genau dieses Programm mit genau dieser Belegung:

$regfile = "2313def.dat"
$crystal = 16000000

Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , 
Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Config Lcd = 16 * 2

Cls
Lcd "Hurra!"
do:loop


Belegung:

1,3,5 auf GND
2     auf 5V
4     auf RS
6     auf E
7-10  frei lassen
11-14 DB4-DB7

von Klemm (Gast)


Lesenswert?

Reichelt scheint gerade down zu sein - was für einen Controller hat denn 
Dein Display?

von Karl H. (kbuchegg)


Lesenswert?

Klemm schrieb:
> Reichelt scheint gerade down zu sein - was für einen Controller hat denn
> Dein Display?

Hab nachgesehen als Reichelt noch up war:
Einen KS0070B

von Klemm (Gast)


Lesenswert?

Der ist kompatibel. Ganz sicher.

von David S. (Gast)


Lesenswert?

Super Leute!

Also ich habs jetz ohne den ganzen Krimskrams gemacht, also ganz normal, 
und hab noch mal alle Verbindungen gecheckt, bzw einfach alle kabel 
nochmal weg, und wieder verbunden, und es funzt!

Super, danke euch! Mach gleich noch en Pic :-)

von Klemm (Gast)


Lesenswert?

Welchen Krimskrams hast Du denn weggelassen?

von David S. (Gast)


Lesenswert?

Das:
1
ldi r24, $24                                                'hier die Anpassungen
2
rcall _lcd_control                                          'für das Reichelt-LCD
3
ldi r24, $9
4
rcall _lcd_control
5
ldi r24,$20
6
rcall _lcd_control


ICh würd jetz gern bischen Temperatur messen, ich weis nich ob jemand 
die Seite von ThomasPfeifer(.net) kennt, aber der misst iwo ne Temp mit 
ner Zenerdiode, wie genau hab ich da nich rausgefunden.

Diode hab ich da, bräucht ich nurnoch nen Anhaltspunkt wie ich das mess.
AD-Wandler hat der 2313 ja.

Wie stell ich das denn am geschicktesten an?

von Klemm (Gast)


Lesenswert?

Die Threads hier zum Thema "A/D-Wandlung" und "Temperatursensor" lesen 
und den geschicktesten 'raussuchen und nachbauen!

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.