LCD Zeichen anzeigen

Gast #2714453
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
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
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
Gast #2715757
Guten Morgen,

ich hatte den Cursor als Sichtbar eingeschaltet (D=1). Hab ihr Testweise 
ausgeschaltet und es geht. Warum auch immer. Die Zeichen die ich sende 
werden angezeigt.

Gruss

POldi

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.