hi ho...
falls dein LCD immer noch net will ist hier mal ein ausschnitt aus meinem quelltext. das display wird über einen 4 bit bus betrieben.
die sendefunktionen:
initialisierung des displays:Code:void sendb(unsigned char datenh, unsigned char datenl) // Befehle senden { PORTC = datenh; // High - Nibble PORTB |= 1 << E; // Enable 1 _delay_us(40); PORTB &= ~1 << E; // Enable 0 PORTC = datenl; // Low - Nibble PORTB |= 1 << E; // Enable 1 _delay_us(40); PORTB &= ~1 << E; // Enable 0 } void sendd(unsigned char datenh, unsigned char datenl) // Daten senden { PORTC = datenh + 16; // High - Nibble PORTB |= 1 << E; // Enable 1 _delay_us(40); PORTB &= ~1 << E; // Enable 0 PORTC = datenl + 16; // Low - Nibble PORTB |= 1 << E; // Enable 1 _delay_us(40); PORTB &= ~1 << E; // Enable 0 }
das "+ 16" beim daten senden bedeutet, daß die RS leitung auf "high" gezogen wird. (daten -> RS=1, befehle -> RS=0)Code:PORT C: 7 6 5 4 3 2 1 0 - - RW RS D7 D6 D5 D4 */ // 4 bit 2 zeilen 5x7 dots -> 00101000 sendb(0b0010, 0b1000); // display on, cursor off, blink off -> 00001100 sendb(0b0000, 0b1100); // Clear Display & Cursor Home sendb(0b0000, 0b0001);
mfg







Zitieren
Lesezeichen