Atmega48 + LCD PIC1602L bräuchte hilfe

Gast #2142682
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
Angehängte Dateien:
Gast #2143556
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
Gast #2143592
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.
Gast #2143812
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
Gast #2143850
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.
Gast #2143867
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
Gast #2143917
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
Gast #2144538
Lesenswert?

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

#define LCD_BOOTUP_MS           15
#2149925
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.
Angehängte Dateien:

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