LCD Display testen .. ?

Gast #362639
Lesenswert?
• ▲
▼
Ich hab ein LCD Display aber bis auf die Beleuchtung tut sich nix.

Ab wann bekomme ich was zu sehen ? Sollte es schon genügen, Wenn + und
- und der Kontrast mittels Poti angeschlossen ist ? In dem Zusammenhang
ist häufiger von einer negativen Spannung für den Kontrast die Rede ..
aber laut Plan liefert der Mittelabgriff des Potis doch positive
Spannung ??? Geht das Display schon kaputt, wenn man mal 5 Volt + auf
den Kontrast gelegt hat ?

MFG
#362640
Lesenswert?
• ▲
▼
keine Angst. Das verträgt die Kontrastspannung.

Steuer mit deinem Poti die Kontrastspannung richtung 0V. dann müsste
die erste zeile komplett dunkel erscheinen. Wie groß ist denn dein Poti
? 10 K sollten angebracht sein. sonderlich größer darf es aber nich
sein.
Danach (wenn das klappt) musst du das Display über die Schnittstelle
initialisieren und du kannst es verwenden.
Gast #362642
Lesenswert?
• ▲
▼
Mein Display war anscheinend kaputt. Jetzt hab ich ein neues laufen und
tatsächlich kann ich die erste Zeile im Kontrast steuern.

Jetzt hab ich mir auch ein Programm in den Controller (R8C13) geladen
aber ich bekomm nix angezeigt. Da Programm wurde um die LCD Routine
erweitert, und der Rest des Programms funktoniert auch, nur bekomm ich
nix am Display angezeigt,

Es handelt sich um ein 2 * 16 Zeilen Display mit diesem HD 44xxxx Chip.
Angeblich unterscheiden sich die Displays aber in der Initialisierung.
Kann mal jemand über den Code schauen und mir sagen, ob was
wesentliches fehlt ??

Danke !!

>void delayus (unsigned int micros)
{
unsigned int i;
for (i = 0; i < micros; i++)
{
asm("nop");
}
}

void lcddata(unsigned char data)
{
delayus(100);
Port0 = data & 0xF0;
Port0 = Port0 + 0x04; //rs = 1
p0 = Port0;
p0 = Port0 + 0x08; //E = 1
asm("nop");
p0 = Port0; //E = 0
Port0 = ((data & 0x0f)<<4);
Port0 = Port0 + 0x04; //rs = 1
p0 = Port0;
p0 = Port0 + 0x08; //E = 1
asm("nop");
p0 = Port0; //E = 0
delayus (100);
}

void lcdctrl(unsigned char data)
{
Port0 = data & 0xF0;
p0 = Port0;
p0 = Port0 + 0x08; //E = 1
asm("nop");
p0 = Port0; //E = 0
Port0 = ((data & 0x0f)<<4);
Port0 = Port0 + 0x01;
p0 = Port0;
p0 = Port0 + 0x08; //E = 1
asm("nop");
p0 = Port0; //E = 0
delayus (100);
}

void initlcd (void)
{
delayus(15000);
lcdctrl(0x28);
delayus(5000);
lcdctrl(0x28);
delayus(1000);
lcdctrl(0x28);
delayus(1000);
lcdctrl(0x0c);
delayus(1000);
lcdctrl(0x01);
delayus(5000);
}


initlcd();     //hier sollten die folgenden Buchstaben erscheinen ..
lcddata (65);  //A
lcddata (66);  //B
lcddata (67);  //C

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren