Forum: Mikrocontroller und Digitale Elektronik LCD ES DIP204


von Thorsten (Gast)


Lesenswert?

Hi!
Mein altes Display hat den geist aufgegeben.
Habe mir also diesen Display gekauft, soll nahezu 100% HD44780 
kompatibel sein.
Display ausgetauscht, angeschlossen wir das vorherige. Leider tut sich 
gar nichts, hitergrundbelecuhtung funtkioeniert , sonst nichts. Weißt 
jemand wieso? Kompilliere  mit gcc- compiler.
Gruß

von A.K. (Gast)


Lesenswert?

Kontrast neu eingestellt?

von Thorsten (Gast)


Lesenswert?

Hi, ja Kontrast ist ok. Ich vermute aber dass das Wort "nahezu" zutrifft 
und meine LCD.lib nicht mehr passt. Hat jemand vielleicht dieses 
Display? Achso, das Display heißt EA und nicht ES

von Uwe (Gast)


Lesenswert?

Hi!
<Mein altes Display hat den geist aufgegeben.
So, so
<Display ausgetauscht, angeschlossen wir das vorherige. Leider tut sich
<gar nichts.
Nanu, warum das denn? War das Alte eventuell garnicht def.?
Wenn du es nur mit Spannung versorgst erscheinen auch keine schwarzen 
Kästchen?
hm,
Pinbelegung anders?
Kalte Lötstellen?
<ja Kontrast ist ok.
An was merkst du das denn?
Eigentlich sind die EA DIP recht gut zu handhaben und auch recht 
zuverlässig. Schaue doch bitte nochmal genau nach.

Viel Erfolg, Uwe

von Frank (Gast)


Lesenswert?

Die Dinger waren ja nun schon desöfteren Thema hier. Sie sind eben nicht 
vollkompatibel zum HD44780 und müssen auch anders initialisiert werden. 
Datenblatt lesen und/oder hier im Forum suchen hilft auf jeden Fall 
weiter.

bye

Frank

von Thorsten (Gast)


Lesenswert?

Also das alte Display war kein EA DIP204, es war ein 100% HD44780.
Habe auch versucht hier was zu finden, leider hilft mir das nicht 
weiter.
Was muss ich ändern, ausser der Zeilenadressierung? Was ist da noch 
anders?

von Thorsten (Gast)


Angehängte Dateien:

Lesenswert?

Ich setzte mal meine bisherige benutzte lcd.h ein.

von Thorsten (Gast)


Angehängte Dateien:

Lesenswert?

und lcd.c. Vielleicht sagt mir jemand was ich dort ändern soll?

von Matze (Gast)


Lesenswert?

Ich kann den auch nicht zum Leben erwecken,gibts irgendwo ne fertige 
Library?

von axel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe ein ähnliches display.. hab meine lcd library irgendwo aus dem 
internet und dann aufs display angepasst, hoff sie hilft weiter. Was ich 
geändert hab weiß ich nicht mehr genau ist schon lange her..
axel

von axel (Gast)


Angehängte Dateien:

Lesenswert?

..und noch die lcd.h

von Matthias (Gast)


Lesenswert?

DIP204 hat als Controller KS0073 drauf. Dieser braucht eine andere 
Initialisierung als der 44780. Auch ist die Zeilenadressierung anders.

Die Initialisierung selber ist einfacher, da das Busy-Flag sofort zur 
Verfügung steht, im Gegensatz zu 44780, wo erst mal ohne Busy-Auswertung 
initialisiert werden muß. Es steht aber alles im Datenblatt, Download 
bei EA.

So funktioniert DIP204 bei mir (SDCC 8051 Display im 8-Bit-Mode)
1
// ***********************************************************************
2
// Schreiben eines Zeichens an das LCD-Modul
3
// Übergabe: lcd_byte : Auszugebendes Zeichen/Steuerzeichen
4
//           lcd_mode : 0 - Daten
5
//                      1 - Steuerzeichen
6
// ***********************************************************************
7
void write_lcd(byte lcd_byte, bit lcd_mode) {
8
byte idata lcd_busy = 1;
9
  // Testen ob LCD-Modul noch im internen Zyklus ist
10
  LCD_RW = 1;
11
  LCD_RS = 0;
12
  LCD_DATA = 0xFF;  // Datenportlatch für Rücklesen vorbereiten  
13
  while(lcd_busy) {
14
    LCD_E1 = 1;
15
    _asm nop; nop; nop; _endasm;     // Impulsverzögerung  
16
    if (!(LCD_DATA & 0x80)) lcd_busy = 0; // BUSY-Flag abfragen
17
    LCD_E1 = 0;
18
    _asm nop; nop; nop; _endasm;     // Impulsverzögerung      
19
  }
20
  // LCD-Anzeige ist zum Empfang neuer Zeichen bereit
21
  LCD_DATA = lcd_byte; // Byte ausgeben
22
  LCD_RW = 0;
23
  if (lcd_mode) {
24
    // Steuerzeichen
25
    LCD_RS = 0;
26
    } else {
27
    // Daten
28
    LCD_RS = 1;
29
  }
30
  LCD_E1 = 1;
31
  _asm nop; nop; nop; _endasm;     // Impulsverzögerung
32
  LCD_E1 = 0;
33
} 
34
35
// ***********************************************************************
36
// Grundinitialisierung des LCD-Moduls 8-Bit Bus
37
// KS0073 EA-DIP204 4x20 Display
38
// ***********************************************************************
39
void init_lcd(void) {
40
  delay(50);                      // Wartezeit nach POWER-ON bis VCC stabil ist
41
  // Grundinitialisierung
42
  write_lcd(0x34,1);               // 0011 0100 (8Bit Bus RE=1)
43
  write_lcd(0x09,1);               // 0000 1001 (4 Zeilen Mode)
44
  write_lcd(0x30,1);               // 0011 0000 (8Bit Bus RE=0) 
45
  write_lcd(0x0C,1);               // 0000 1111 (Dipl. ein, Cursor aus, Cursor blinken aus)
46
  //write_lcd(0x0F,1);               // 0000 1111 (Dipl. ein, Cursor ein, Cursor blinken)
47
  write_lcd(0x01,1);               // 0000 0001 (Diplay löschen, Cursor auf Pos. 1)
48
  write_lcd(0x06,1);               // 0000 0110 (Autoinkrement)
49
}

Gruß
Matthias

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.