Forum: Mikrocontroller und Digitale Elektronik LCD 4x20


von Nadine, Sander (Gast)


Lesenswert?

Hallo,
wer kann mir bitte helfen. Ich versteh nicht warum ich keine vernüpftige 
Anzeige hinbekomme. Hatte vorher ein 2x16 Display, AT90s8515, 
Programmiere in C und die Welt war in Ordnung. Aber jetzt möchte ich 
gern ein 4x20 Display benutzen, aber wie!!!

Im Anzeigefeld sind nur komische Zeichen!!!
Hat einer eine C-Datei die mir weiterhelfen kann!!!

Besten Dank im vorraus
Nadine

von crazy horse (Gast)


Lesenswert?

wenn beide Displays zumindest einen mehr oder weniger kompatiblen 
Controller drauf haben, sollte es ersteinmal funktionieren, die 
Zeilenadressierung kann anders sein. Wird wohl irgendwas mit dem Timing 
nicht stimmen, gerade bei den Wartezeiten während der Initialisierung 
gibt es relativ große Unterschiede.

von Nadine, Sander (Gast)


Lesenswert?

Was bedeutet das jetzt für mein Display?
Wie sieht denn die Treiber-Routine aus, genauso wie beim 2x16?
Ich finde bei Google nur Sachen in asm.


#asm
.equ __lcd_port=0x15 ;PORTC
#endasm

// include the LCD driver routines
#include <lcd.h>
#include <90s8515.h>
void main(void)
{
// initialize the LCD for
// 2 lines & 16 columns
lcd_init(16);

// go on the second LCD line
lcd_gotoxy(0,0);

// display the message
lcd_putsf("Nadine\nSander\nbraucht\nHILFE");

// stop here
while (1);
}

von Main666 (Gast)


Lesenswert?

Hallo,

erstmal solltest Du genau wissen welcher LCD Controller auf deinem 
Display verwendet wurde.
Bei einem 4x20 ist auf jeden Fall die Initialisierung anders als bei 
einem 2x16, dazu ist das Datenblatt des Chips nötig.


Gruß Main666

von Nadine, Sander (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Main666,

Ich habe das Display von der Firma Reichelt erworben
TYP LCD 204B LED ; Hersteller Displaytech ;

Ich habe mal das Datenblatt angehängt, aber verstehen tue ich davon nix 
muss halt noch viel lernen.

Ich Dank Dir jetzt schon.

Gruß Nadine

von reini (Gast)


Lesenswert?

Hallo Nadine,
ich habe so ein Display bereits angesteuert und kann dir den Source-Code 
mailen, leider aber erst am Montag, da ich die Codes auf der Arbeit 
habe. Falls Dir das zu spät ist, schau mal auf der Seite 6 vom Datasheet 
nach. Da ist beschrieb, wann du welches Zeichen bei der Initialisierung 
senden muß.
Reini

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Schau doch erst mal in der Doku des Compilers nach mit welchen 
Parametern die Funktion lcd_init() aufgerufen werden muss.

von Main666 (Gast)


Lesenswert?

Hallo,


Seite 6 ist genau das was Du brauchst. Die letzte function set Zeile 
müsste sich zu der 2x16 Initialisierung unterscheiden, eventuell auch 
schon vorherige Befehle.

Bitte unbedingt auf die angegebenen Wartezeiten achten oder das BusyFlag 
abfragen was aber am Anfang der Init auch nicht geht.

Auf Seite 5 sind alle Kommandos zusammengefasst, da findest Du die 
genaue Erklärung der Initialisierung.


Viel Erfolg !


Gruß Main666

von Nadine, Sander (Gast)


Lesenswert?

Hallo alle zusammen,

erst mal vielen Dank für Eure mühe, ich werd es mal probieren.

Reini wenn Du mir den Source-Code mailen würdest fände ich das SUPER

Danke

Schönes Wochenende

Gruß Nadine

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.