Natureengeneer
28.07.2012, 21:04
Hallo liebe Forengemeinde ich habe Probleme mit der Darstellung von Zeichen mit einem LCD Display 4,75mm 204A-CC-BC-3LP von RS mithilfe eines Atmega 32 gefused auf 8MHz.
Laut Shopseite soll es einen KS0066, laut Datenblatt einen KS0076B Controller besitzen. Soll wohl beides identisch sein...????
Zur Initialisirung habe ich die lcd-routines von Mikrocontroller.net genommen welche für einen HD44780waren und diese modifiziert damit das LCD richtig initialisiert wird.(.h,.c modifizierte Routines im Anhang)
Anschluss:
DB0= Databyte4
DB1= Databyte5
DB2= Databyte6
DB3= Databyte7
DB4= R/S
DB5= E
R/W=GND
Nun will ich in der main.c folgendes zur Ausgabe bringen:
/*
* main.c
*
* Created: 27.07.2012 21:09:46
* Author: Natureengener
*/
#include <avr/io.h>
#include "lcd-routines.h"
int main(void)
{
// Initialisierung des LCD
lcd_init();
lcd_setcursor( 0, 1 );
lcd_string("Zeile1");
lcd_setcursor( 0, 2 );
lcd_string("Zeile2");
lcd_setcursor( 0, 3 );
lcd_string("Zeile3");
lcd_setcursor( 0, 4 );
lcd_string("Zeile4");
while(1)
{
}
return 0;
}
Doch leider Zeigt das LCD teilweise falsche Zeichen an.(Siehe Bilder Anhang) Ohne einen 0.1uF Kondensator zwischen VSS und VDD zeigt es noch mehr Müll an.
Zudem kommt nach jedem Reset am Display etwas anderes raus.
Was mache ich nur falsch?
KS0073 war kein Problem aber dieses 0066 verweigert den Dienst strikt.
Hatte jemand auch schonmal solche Probleme und weiß vielleicht weiter?
Lieben Dank schonmal.
Laut Shopseite soll es einen KS0066, laut Datenblatt einen KS0076B Controller besitzen. Soll wohl beides identisch sein...????
Zur Initialisirung habe ich die lcd-routines von Mikrocontroller.net genommen welche für einen HD44780waren und diese modifiziert damit das LCD richtig initialisiert wird.(.h,.c modifizierte Routines im Anhang)
Anschluss:
DB0= Databyte4
DB1= Databyte5
DB2= Databyte6
DB3= Databyte7
DB4= R/S
DB5= E
R/W=GND
Nun will ich in der main.c folgendes zur Ausgabe bringen:
/*
* main.c
*
* Created: 27.07.2012 21:09:46
* Author: Natureengener
*/
#include <avr/io.h>
#include "lcd-routines.h"
int main(void)
{
// Initialisierung des LCD
lcd_init();
lcd_setcursor( 0, 1 );
lcd_string("Zeile1");
lcd_setcursor( 0, 2 );
lcd_string("Zeile2");
lcd_setcursor( 0, 3 );
lcd_string("Zeile3");
lcd_setcursor( 0, 4 );
lcd_string("Zeile4");
while(1)
{
}
return 0;
}
Doch leider Zeigt das LCD teilweise falsche Zeichen an.(Siehe Bilder Anhang) Ohne einen 0.1uF Kondensator zwischen VSS und VDD zeigt es noch mehr Müll an.
Zudem kommt nach jedem Reset am Display etwas anderes raus.
Was mache ich nur falsch?
KS0073 war kein Problem aber dieses 0066 verweigert den Dienst strikt.
Hatte jemand auch schonmal solche Probleme und weiß vielleicht weiter?
Lieben Dank schonmal.