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

Gast #3581984
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
>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
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 #3582335
Hi

>#define LCD_DB        PD0

>#define LCD_DB        PD3

Warum hast du das geändert? Da die Datenpins weiterhin auf PD0..3 liegen 
muss auch LCD_DB PD0 bleiben.

MfG Spess
Gast #3582469
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
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
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
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.
Gast #3582546
Hi

>1. Verbinde PD0 bis PD3 vom LCD mit Masse, sofern du 4Bit-Ansteuerung
>benutzt.

Verbreite nicht solchen Unsinn. Die Displaycontroller haben integrierte 
Pull-Up-Widerstände .

MfG Spess
Gast #3582669
Hi

>Hab die Pins alle nochmal hingelötet und siehe da... es funktioniert!

Den Hinweis auf deine Lötstellen hatte ich schon auf der Zunge. Hatte 
mir es aber erst mal verkniffen.

MfG Spess

Antwort schreiben

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