Forum: Mikrocontroller und Digitale Elektronik LCD-Display schreibt nur halbe Zeile


von J. H. (joho62)


Lesenswert?

Guten Tag!
Ich habe ein einzeiliges Display bekommen
(SC1601AULB) und zum Test ein kleines Programm
gemacht:
<$regfile = "m8def.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32

Ddrb = &B00111111

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

Config Lcd = 16 * 1

Cls

Do :

Lcd "Hurra! Hurra!"

Waitms 2000

Cls

Lcd "Noch einmal!"

Waitms 2000

Cls

    Loop

End
>
Damit schreibt es nur 8 von den 16 Zeichen voll. Habe ich
jetzt einen dummen Anfängerfehler gemacht, oder ist das
ein Fehler des LCDs?
Wer weiß was? Danke sagt
Joachim

von John (Gast)


Lesenswert?

Es gibt einzeilige LCDs die als zweizeilig initialisiert werden müssen. 
In deinen Fall "8 * 2". Die linken 8 Zeichen sind die erste Zeile, die 
rechten 8 Zeichen bilden die zweite Zeile.

Gruß
John

von Chris B. (dekatz)


Lesenswert?


von Spess53 (Gast)


Lesenswert?

Hi

>Config Lcd = 16 * 1

Möglicherweise ist es ein 2x8 Display. Setz mal den Cursor auf 40H und 
gib etwas aus.

MfG Spess

von J. H. (joho62)


Lesenswert?

Also, 8*2 gibt bei Bascom einen Fehler aus (unbekanntes Device).

Das andere werde ich nachher weiter verfolgen, muß jetzt Pause
machen, Essen wird kalt...:-)

von Falk B. (falk)


Lesenswert?

Nein 1x16 ist OK, aber man muss halt mit zwei Zeilen logisch arbeiten, 
auch wenn die optisch nebeneinander liegen.

Lcd "HippHipp"
cursor auf Zeile 2 Spalte 0 setzen, wie ?
Lcd "Hurra!"

von Luca E. (derlucae98)


Lesenswert?

Falk Brunner schrieb:
> cursor auf Zeile 2 Spalte 0 setzen, wie ?

locate 2, 1

von mue_c (Gast)


Lesenswert?

Für diese LCDs gibt es die Config 16x1a.
Schau mal unter Config LCD ...

von J. H. (joho62)


Lesenswert?

Das war die Lösung! (16*1a)
Ich bedanke mich für die rege Beteiligung.
Wieder was gelernt....
Jo

von Jens S. (jens_s56)


Lesenswert?

Bei Bascom kennt keine 8*2 Displays.
Entweder verwendet man 16*1a, dann steht das 9. Zeichen (Locate 1,9) auf 
Adresse 40.
Oder man nimmt 16*2, dann fängt die 2. Zeile (Locate 2,1) bei Adresse 40 
an.
Dem Controller ist es egal, wo das Zeichen raus kommt, oder ob es diese 
überhaupt gibt...

von J. H. (joho62)


Lesenswert?

Inzwischen ist nun über ein Jahr ins Land gegangen.
Und ich habe das längst kapiert.
Jo

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.