LCD-Display

Gast #98055
Hi,
hab ein problem mit der LCD ansteuerung.
Hab nach dem Tutorial mein 16x2 LCD angeschlossen, steuere es im 4-Bit
Modus an, aber es ist nur die obere Zeile verfügbar. Beim einschalten
ohne software ist auch nur oben ein schwarzer Balken zu sehen. Unten
kann kein Text angezeigt werden.

Ich verwende einen AT90S1200 ...

Danke
Jan
Gast #98057
Hattest du den schon Text auf dem Display?

Die 2te Zeile musst du erst per Befehl anschalten.

Bei einer Zeile kann es sein das du wegen des Kontrast nicht siehst,
dass was angezeigt wird. Häng mal ein Poti an die Kontrastleitung.
Gast #98059
Wenn die 2te zeile an ist dan siehst du dort bei vollem kontrast die
Blöcke. Sind die da?

Wenn die nicht da sind und sich auch durch den Befehl nicht einschalten
lassen dann stimmt was am timing nicht.
Gast #98064
normal startet die 2.zeile bei 0x40. zumindest bei mir

zb so:


Outline2:

  ldi temp1, 0b11000000  ;set DDRAM addresse 40 => 2.Zeile
  rcall lcd_command


  print2:

    lpm
    tst R0
    breq print2_end
    mov temp1,R0
    rcall lcd_data
    adiw ZL,1
    rjmp print2

  print2_end:

ret
Gast #98065
Hallo,

Initialisierung zweizeilig:

 ;Initialisierung: muss ganz am Anfang des Programms aufgerufen werden
lcd_init:
           ldi  temp3,50
powerupwait:
           rcall  delay5ms
           dec  temp3
           brne  powerupwait
           ldi temp1, 0b00000011        ;muss 3mal hintereinander
gesendet
           out PORTD, temp1             ;werden zur Initialisierung
           rcall lcd_enable             ;1
           rcall delay5ms
           rcall lcd_enable             ;2
           rcall delay5ms
           rcall lcd_enable             ;und 3!
           rcall delay5ms
           ldi temp1, 0b00000010        ;4bit-Modus einstellen
           out PORTD, temp1
           rcall lcd_enable
           rcall delay5ms
           ldi temp1, 0b00101000        ;noch was einstellen...
           rcall lcd_command
           ldi temp1, 0b00001100        ;...nochwas...
           rcall lcd_command
           ldi temp1, 0b00000100        ;endlich fertig
           rcall lcd_command
           ret

Gruß

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 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.