Interfacing a HD44780 Based LCD zu einem AVR STK600(ATmega2560)

Gast #3581984
Lesenswert?

Hallo Leute,

ich habe vor kurzem mein Micro Controller programmiert und  zuerst habe 
ich versucht über Ports meine LED einzuschalten(hat funktioniert).

Danach versuchte ich über meine Controller einen LCD 
anzusprechen.(bc1602e)

Dafür habe ich versucht diesen Code zu übernehmen:

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung

Dafür haben ich die 2 Main-Beispiel Code versucht, aber es hat nicht 
funktioniert.

Auf dem LCD erscheinen nur die schwarzen Balken, die eigentlich mit: 
"uart_init(1000)", weggehen sollten, aber es geht nicht.

Auf dem Bild sieht man, dass da noch die Leitungen vertauscht sind. 
Daher hab ich gedacht, ich sollte das hier vertauschen;
1
//  LCD DB4-DB7 <-->  PORTD Bit PD0-PD3
2
#define LCD_PORT      PORTD
3
#define LCD_DDR       DDRD
4
#define LCD_DB        PD0
5

6
//  LCD RS      <-->  PORTD Bit PD4     (RS: 1=Data, 0=Command)
7
#define LCD_RS        PD4
8

9
//  LCD EN      <-->  PORTD Bit PD5     (EN: 1-Impuls für Daten)
10
#define LCD_EN        PD5

in:
1
//  LCD DB4-DB7 <-->  PORTD Bit PD0-PD3
2
#define LCD_PORT      PORTD
3
#define LCD_DDR       DDRD
4
#define LCD_DB        PD3
5

6
//  LCD RS      <-->  PORTD Bit PD4     (RS: 1=Data, 0=Command)
7
#define LCD_RS        PD6
8

9
//  LCD EN      <-->  PORTD Bit PD5     (EN: 1-Impuls für Daten)
10
#define LCD_EN        PD4
__________________________________________

Aber die Balken bestehen und ich verzweifele daran.

Kann mir bitte jemand helfen?

Vielen Dank

Mit freundlichen Grüßen

Gunasiri
Angehängte Dateien:
Gast #3581994
Lesenswert?

>Auf dem LCD erscheinen nur die schwarzen Balken, die eigentlich mit:
>"uart_init(1000)", weggehen sollten, aber es geht nicht.

Was hat dein UART mit dem LCD zu tun?

>Kann mir bitte jemand helfen?

Ohne das komplette Projekt mit deinen Code: Nein.
Gast #3582171
Lesenswert?

holger schrieb:
>>Auf dem LCD erscheinen nur die schwarzen Balken, die eigentlich
> mit:
>>"uart_init(1000)", weggehen sollten, aber es geht nicht.
>
> Was hat dein UART mit dem LCD zu tun?
>
>>Kann mir bitte jemand helfen?
>
> Ohne das komplette Projekt mit deinen Code: Nein.



SORRY!

ICH meine:

lcd_init();
und nicht uart_init
Gast #3582469
Lesenswert?

Hi

>Ja ich hab auch mal alles so gelassen wie es ist und es hat nicht
>funktioniert

Was hast du so gelassen?

>//  LCD RS      <-->  PORTD Bit PD4     (RS: 1=Data, 0=Command)
>#define LCD_RS        PD6

>//  LCD EN      <-->  PORTD Bit PD5     (EN: 1-Impuls für Daten)
>#define LCD_EN        PD4

Das passt aber nicht mit der Verkabelung deines Displays zusammen.

MfG Spess
Gast #3582486
Lesenswert?

Hi

>Ich hab das so gelassen, wie auf dem ersten Bild.
>und trotzdem erschreinen die schwarzen balen

Wenn ich mich beim verfolgen deiner Drähte nicht vertan habe, ist der 
Anschluss am Display so:

PD4  RS
PD5  R/W
PD6  E

Und das passt nicht zu

>#define LCD_EN        PD5

MfG Spess
Gast #3582505
Lesenswert?

Hi

>Das habe ich auch gemerkt

Und was hast du dem 'Merken' gemacht?

>kann es sein, dass das LCD kaputt ist?

Möglich. Aber für viel wahrscheinlicher halte ich Fehler die durch dein 
etwas planloses Rumgediller zustande kommen.

MfG Spess
Gast #3582542
Lesenswert?

1. Verbinde PD0 bis PD3 vom LCD mit Masse, sofern du 4Bit-Ansteuerung 
benutzt. Bei 8Bit-Ansteuerung musst du sie mit dem µC verbinden.
2. Stell den Kontrast so ein, dass die Balken etwa halb zu sehen sind, 
dann erkennst du, wenn das LCD reagiert, denn bei zu starkem Kontrast, 
siehst du die Balken auch, wenn alles funktioniert.

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