Display wird auch wunderbar, Initialisiert aber der Text erscheint erst nach einem Reset des MC auf dem Display???
- Code: Alles auswählen
#include
#include
void Taste(void);
void ausgabe(int Name);
void init_LCD(void);
void fertig(void);
void Main (void)
{
int i;
int Name[10] ={68,65,78,32,118,115,32,83,69,66};
printf("Hallo...");
init_LCD();
for(i=0;i<10;i++)
{
ausgabe(Name[i]);
};
while(1)
{
Taste();
};
}
//--------------------------
void Taste(void)
{
int Taste1;
{
Taste1= P16;
if (Taste1==0)
{
printf("\n\n Taste wurde gedrückt!");
while(P16==0); // wartet bis Taste wieder los gelassen wird
};
};
}
//----------------------------------
void ausgabe (int Name)
{
int i;
P40 = 1; //RS - Datenregister selektieren
P41 = 0; //RW - Schreiben auf das Display
P42 = 1; //E- Flanke vorbereiten
P6 = Name; // Daten an den Port legen
P42 = 0; //E - Flanke erzeugen
for(i=0;i<800;i++);
}
void init_LCD (void)
{
unsigned char befehl[7]={0x38,0x38,0x38,0x08,0x01,0x06,0x0C}; //Initialisierungsbefehle aus Tabelle
int i,k; //Zählvariable für die Verzögerungsschleife und Ausgabeschleife
P40=0; //RS //Befehlsregister auswählen
P41=0; //RW //Schreiben auf das Display
for(k=0;k<7;k++) //Ausgabeschleife für die 6 Befehle
{
P42 = 1; //E //Flanke vorbereiten
P6 = befehl[k]; //Befehl ausgeben
P42 = 0; //abfallende Flanke erzeugen
for(i=0;i<800;i++); //warten auf Befehlsausführung
} //end of for
} //end of funktionvoid init_LCD (void)
Datasheet des Displays (2x16)!http://www.reichelt.de/?SID=27p0sh@qwQARsAAEbrYuc0081c6d63f9dcb2d60c7e3ba97540faa;ACTION=7;LA=6;OPEN=1;INDEX=0;FILENAME=A500%252FLCD162CBL%2523EAS.pdf