Hallo Zusammen
Ich versuche gerade mit einem AtMega32 das LCD PC1602F B anzusteuern,
aber das Display zeigt absolut keine Reaktion.
Die Datenleitungen sind alle an PORTC. RS, R/W, E sind an PORTB Pin 0,
1, 2
Ich benutze folgenden code:
void initialiselcd(void)
{
_delay_ms(15);
PORTB &= ~(1<< PB0) & ~(1<< PB1) & ~(1<< PB2);
PORTC = 0x01;
_delay_ms(1);
PORTB |= (1<< PB2);
_delay_ms(10);
PORTB &= ~(1<< PB2);
PORTC = 0x02;
_delay_ms(1);
PORTB |= (1<< PB2);
_delay_ms(10);
PORTB &= ~(1<< PB2);
PORTC = 0x06;
_delay_ms(1);
PORTB |= (1<< PB2);
_delay_ms(10);
PORTB &= ~(1<< PB2);
PORTC = 0x0C;
_delay_ms(1);
PORTB |= (1<< PB2);
_delay_ms(10);
PORTB &= ~(1<< PB2);
PORTC = 0x38;
_delay_ms(1);
PORTB |= (1<< PB2);
_delay_ms(10);
PORTB &= ~(1<< PB2);
}
void println(void)
{
PORTB |= (1<< PB0);
_delay_ms(10);
PORTC = 0x54;
_delay_ms(10);
PORTB |= (1<< PB2);
}
Ist das richtig, dass ich nach jedem Befehl das Enable gesetzt werden
muss?
Für den Kontrast benutze ich ein Poti.
Gruss
Gast
#1189845
Nicht schon wieder ein LCD Thread :( >Ist das richtig, dass ich nach jedem Befehl das Enable gesetzt werden >muss? Es gibt tausende Codes im Internet zu dem Thema wo du dir was klauen kannst. Das Datenblatt zum LCD wird dir auch einige Fragen beantworten. Es ist ja ok das du es selber versuchen möchtest, aber dann mach es bitte auch alleine. Das Thema wurde hier schon zu oft durchgekaut ;)
Martin Ambühl wrote: > Ich versuche gerade mit einem AtMega32 das LCD PC1602F B anzusteuern, > aber das Display zeigt absolut keine Reaktion. Wenn es Dir zu profan ist, einfach nen funktionierenden Code zu nehmen, z.B.: http://www.mikrocontroller.net/attachment/30300/lcd_drv.zip dann machs eben selber. Erwarte aber nicht, daß sich jemand dafür interessiert. Niemand kann sich täglich immer wieder LCD-Babyschritte reinziehen. Auch wenn sie so wunderbar ausführlich kommentiert sind, wie Deine. Peter
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.