Forum: Mikrocontroller und Digitale Elektronik Problem mit Lcd an 74HC595, Atmega32, [c]


von Thorsten (Gast)


Lesenswert?

Hallo Forum,

ich beschäftige mich grade mit der Ansteuerung der Schieberegister 
74HC595, da ich mehrere Ausgänge und Eingänge benötige, möchte ich ein 
4x20 LCD Display auch über die schieberegister ansteuern.

Ich habe die Routinen aus dem Tut entnommen und sie funktionieren 
einwandfrei bis auf das LCD.

Ich habe 4x den 74HC595 angeschlossen. An den ersten drei sitzen jeweils 
Relaiskarten. An dem 4. 74HC595 habe ich ein LCD folgendermaßen 
angeschlossen:

LCD            74HC595
RS     --->      Q5
E      --->      Q6
RW     --->      GND
D4     --->      Q1
D5     --->      Q2
D6     --->      Q3
D7     --->      Q4

Da ich 4 Schieberegister angeschlossen habe und das LCD an dem 4. hängt, 
habe ich am Quellcode folgendes angepasst:
1
#define LCD_PORT  0
2
#define LCD_B4    25  //  74HC595 PIN 15
3
#define LCD_B5    26  //  74HC595 PIN 1
4
#define LCD_B6    27  //  74HC595 PIN 2
5
#define LCD_B7    28  //  74HC595 PIN 3
6
#define LCD_RS    29  //  74HC595 PIN 4
7
#define LCD_EN    30  //  74HC595 PIN 5
8
#define LCD_LIGHT  31   //   74HC595 PIN 6
9
#define LCD_RW        //  auf GND gelegt

Ansonsten ist alles so wie im Tut, bis auf die Anpassung, dass ich einen 
4MHZ Quarz verwendende und es entsprechend angepasst habe.

wenn ich das Programm änder und Relais mit dem 4. Schieberegister 
ansteuer, funktionieren die korrekt. Wo liegt mein Fehler ??

Das LCD zeigt jedoch nur schwarze Balken in der 1. Zeile an..........

MfG

von Karl H. (kbuchegg)


Lesenswert?

Thorsten schrieb:

> Ansonsten ist alles so wie im Tut

?
Welcher Code?

Ich denke nicht, dass wir hier in einem Tutorial LCD-Code haben, der 
seine Ausgaben über ein Schieberegister abhandelt. Das ist alles auf 
direkte Pinzugriffe an irgendwelchen Ports ausgelegt. Da musst du dir 
den Low-Level Teil, auf neudeutsch Treiber, schon selber schreiben.

von Thorsten (Gast)


Angehängte Dateien:

Lesenswert?

Doch im Tut Schieberegister wird die Ansteuerung eines LCDs mithilfe 
eines 74HC595 beschrieben.

Siehe Code im Anhang

von Thorsten (Gast)


Lesenswert?

Fehler gefunden:

Man fängt bekanntlichermaßen bei 0 an zu zählen und nicht bei 1 ;-)

von Karl H. (kbuchegg)


Lesenswert?

Thorsten schrieb:

> LCD            74HC595
> RS     --->      Q5
> E      --->      Q6
> RW     --->      GND
> D4     --->      Q1
> D5     --->      Q2
> D6     --->      Q3
> D7     --->      Q4
>
> Da ich 4 Schieberegister angeschlossen habe und das LCD an dem 4. hängt,
> habe ich am Quellcode folgendes angepasst:
>
> #define LCD_B4    25  //  74HC595 PIN 15

Pin 15 am IC ist aber Q0 und das müsste dann hier eine 24 sein

von Thorsten (Gast)


Lesenswert?

Jap ich habs gesehen.
Und das hat mich fast ne Stunde gekostet..........

Na ja aus sowas lernt man...

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.