Forum: Mikrocontroller und Digitale Elektronik Atmega48 + LCD PIC1602L bräuchte hilfe


von jakobolus (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich bräuchte Hilfe bei der Ansteuerung eines PC1602L Displays mit einem 
Atmega48, es handelt sich um den Code aus dem Tutorial.



Verkabelung passt, habe Spannungen messen können.
Atmega48 läuft ohne Probleme.
Nur die Hintergrundbeleuchtung ist noch nicht angeschlossen.

vl liegts an der Optimierung?

wenn wer was nützliches weiß bitte um Hilfe.

Im Anhang ein Teil der Schaltung und mein Code

Danke
jakobolus

von us73 (Gast)


Lesenswert?

Nunja, es wäre schon hilfreich, wenn Du auch noch eine Frage dazu 
stellst oder, noch besser, beschreibst, was nicht geht.

Das sagst, Du brauchst Hilfe.
Aber wobei ?

von jakobolus (Gast)


Lesenswert?

Ja das Problem ist das das LCD nichts anzeigt, bzw. schon die 
Initialisierung funktioniert nicht(kriege keine scharzwn Felder auf dem 
LCD) .

Arbeite mit AVR Studio, der Compiler gibt auch keine Fehler oder 
Warnings raus.

lg Jakobolus

von ** (Gast)


Lesenswert?

Schwarze Felder im Display kommen schon beim anlegen der 
Versorgungsspannung.
Nach der Initialisierung müssen die weg sein.
Dreh mal am Kontrast (Poti R18!)


Sonst falsch angeschlossen oder Display putt.

von jakobolus (Gast)


Lesenswert?

Die Versorgung steht stabil am Display +5V.
Kontrast Poti habe ich auch schon probiert ändert nix.

Ist das bei jedem hd44780 kompatiblem LCD so, dass es schwarze Balken 
anzeigen muss wenn es eine Versorgung hat und noch nicht initialisiert 
wurde?

lg jakobolus

von ** (Gast)


Lesenswert?

Bei den Displays (mit HD44780-kompatiblen Chip), welche mir in die 
Finger gekommen sind*, war bei allen jede Zweite mit schwarzen Klötzen 
gefüllt. Nachdem man die Versorgungsspannung angelegt wurde.

Erst nach der Initialisierung ist alles leer.

Aber man hat ja schon Pferde kotzen sehen. Will heißen, dass es gerade 
bei Dir anders ist.

Eventuell hilft es ja, wenn Du die DB0 bis DB3 vom Display auf GND 
legst? Nur so als Idee.

Du hattest etwas über "Optimierung" geschrieben.
Lass die doch mal weg. Fluppt es dann?



*Ich hatte nur billige LCDisplays drei oder vier verschiedene Typen.

von jakobolus (Gast)


Lesenswert?

Habe DB0-3 bereits auf Masse geschlossen

Gerade das LCD nur mit VEE,VDD,und Kontrast angeschlossen macht trotzdem 
keine Schwarzen Klötzte, wird wohl das kotzende Pferd sein.

Habe auch schon mit und ohne "optimierung" ausprobiert.
Fuses wären mir auch keine bekannt, die da stören könnten.

lg jakobolus

von jakobolus (Gast)


Lesenswert?

So haha habe etwas neues herausgefunden :)

int main(void)
{
  DDRB = 0b01000000;
  PORTB |= (1<<PB1);
  // Initialisierung des LCD
  // Nach der Initialisierung müssen auf dem LCD vorhandene schwarze 
Balken
  // verschwunden sein#

  lcd_init();

   PORTB &= ~(1<<PB1);

  // Text in einzelnen Zeichen ausgeben
  lcd_data( 'T' );
  lcd_data( 'e' );
  lcd_data( 's' );
  lcd_data( 't' );

  // Die Ausgabemarke in die 2te Zeile setzen
  lcd_setcursor( 0, 2 );

nach dem Aufruf lcd_init() häng sich der code auf und der Proz hängt 
fest.

Vl kann mir ja jetzt wer helfen ;)

lg jakobolus

von Werner (Gast)


Lesenswert?

1
    // warten auf die Bereitschaft des LCD
2
    _delay_ms( LCD_BOOTUP_MS );

LCD_BOOTUP_MS??????

Wo hast du dieses deklariert???

von jakobolus (Gast)


Lesenswert?

LCD_BOOTUP_MS ist in der lcd-routines.h definiert
//////////////////////////////////////////////////////////////////////// 
////////
// LCD Ausführungszeiten (MS=Millisekunden, US=Mikrosekunden)

#define LCD_BOOTUP_MS           15

von Tip (Gast)


Lesenswert?

Hast du im AVR-Studio die CPU-Frequenz überprüft bzw. passt der im 
Source-Code eingetragene Wert zu deinem Board?

von jakobolus (Gast)


Lesenswert?

ja ist 8Mhz

von Uwe (de0508)


Angehängte Dateien:

Lesenswert?

Guten morgen,

vorweg zum LCD-Display; ist das dieses hier ?

http://www.synes.co.th/product/other-products/PC1602-L%20DataSheet.pdf

Dann benötigst Du einen negative Spannung (bis -8V) für den Kontrast an 
Vee.

Diese könnte man mit dem Atmel indirekt erzeugen und ich erhalte -4,8V 
mit BAT85 Dioden, das reicht für mein LCD-Display aus.

Das Pin PD3 wird per PWM 50%/50% angesteuert und die Frequenz liegt im 
kHz Bereich.

Ein weitere Möglichkeit ist der ICL7660 als Spannugsinverter von +5V auf 
-5V zu nutzen.

Sprut.de liefert da einen Vorschlag:

http://www.sprut.de/electronic/lcd/kontras2.gif


Des weiteren benötigen die LCD Displays mehr als 100µS Zeit zu 
Initialisierung. Für HD44780U Chips wird 15ms angegeben !

http://www.8051projects.net/lcd-interfacing/initlcd.gif


Ich hoffe es hilft Dir etwas.

von jakobolus (Gast)


Lesenswert?

Sry das ich mich erst jetzt wieder melde

Ja Uwe hatte recht, es war die negative Kontrastspannung.

Das ist wohl so bei niedertemp. LCDs

Vielen Dank für die Hilfe.

Jakob

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.