LCD Zeichen anzeigen

Gast #2714453
Lesenswert?

Hallo,

ich habe ein 2zeiliges lc display. 8 bit datenbus.

Ich kann das Display initialisieren. Den Cursor anzeigen und 
positionieren.
Wenn ich ein Zeichen schreibe geht der Cursor automatisch eine Position 
weiter was ja normal ist.

 Aber es wird nichts angezeigt.

Da ich gern selbst porbiere hab ich alle Befehle einzeln geschrieben.
Die Zeichenausgabe mache ich so:

     PORTD = 0b00000000;
     PORTC |=(1<<PC0);
     PORTD = 0x48;
     PORTC |=(1<<PC2);
     _delay_us(50);
     PORTC &= ~(1<<PC2);  /* h schreiben */
     PORTC &= ~(1<<PC0);
     _delay_ms(2000);

Wobei PC0 das RS Signal ist und PC2 das enable. Hardwaremässig scheint 
es zu passen. Hab auch nachgemessen. Es ist ein ATmega 8 mit 16MHZ 
Kristall

Könnt ihr mir weiterhelfen?

mfg

Poldi
#2714495
Lesenswert?

Poldi schrieb:

>  Aber es wird nichts angezeigt.

Der Kontrast ist richtig eingestellt?



>  Wobei PC0 das RS Signal ist und PC2 das enable.

Vorschlag: mach dir dafür ein paar #define
Das ist kein großer Aufwand und es liest sich besser. Ist auch weniger 
fehleranfällig, wenn du die Manipulation von µC Pins in Begriffen der 
Anwendung formulieren kannst und nicht in µC-Pinbezeichnungen
1
#define LCD_RS     PC0
2
#define LCD_E      PC2
3

4
...
5

6

7
     PORTC |= (1 << LCD_RS);
8
     PORTD = 'h';
9

10
// ich würde auch hier eventuell mal eine kleine Pause einlegen,
11
// damit sich die Leitungen stabilisieren können.
12

13
     PORTC |= (1 << LCD_E);
14
     _delay_us(50);
15
     PORTC &= ~( 1 << LCD_E );
16

17
     PORTC &= ~( 1 << LCD_RS );
18

19
     _delay_ms(2000);

so sieht man im Code gleich viel besser, welche Einstellungen in welcher 
Reihenfolge vorgenommen werden.
Gast #2714514
Lesenswert?

Hallo,

hab schon alle möglichen Pausen zwischen den Befehlen ausprobiert. Den 
Kontrast hab ich auch schon verstellt. Hat nix gebracht. Der Cursor wird 
angezeigt. Ich probiers mal mit dem define Befehl. Ist mir unerklärlich 
das ganze. Das Display ist das von Pollin bestnr. 120422. Ich werds mal 
morgen früh probieren. Muss dann arbeiten.

Danke

POldi

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