LCD-Display

Zeichen

Manchmal braucht man Zeichen, wie helle Kästen o.a.. Im Lüfter Multiple soll die Anzeige die Stellung eines Wertes simulieren. Also eine Art Schieberegler.



Für den "Schieberegler" habe ich die Nummer 165 (kleines gefülltes Quadrat) verwendet. Es passten auch die 219 = offenes Viereck und die 255 = ganzes Feld dicht. Die ersten 15 Ziffern, also 0..15, markieren vier Querstriche.


C

void
LCD_Strobe(
void
)
{
// Bei Problemen ggf. Pause gemäß Datenblatt des LCD Controllers einfügen


//Entprell(LCDDelayStrobe);


PortLCDRsEn |= (1<<LCD_EN);

Entprell(LCDDelayStrobe); // kurze Pause

// Bei Problemen ggf. Pause gemäß Datenblatt des LCD Controllers verlängern


PortLCDRsEn &= ~(1<<LCD_EN);

//Entprell(LCDDelayStrobe);

}




// sendet ein Datenbyte an das LCD


void
DatenRaus
uint8_t
a)
{
PortLCDData &= 0x0F;
// Löschen 0x0F = 0000 1111


PortLCDData |= (a & 0xF0);
// Setzen 1111 0000 und a = 1011 0010 = 1011 0000


LCD_Strobe();

// 2. Hälfte des Bytes


PortLCDData &= 0x0F;
// Löschen


PortLCDData |= (a<<4);
// setzen


LCD_Strobe();

Entprell(LCDDelay);
}


void
LCD_TxData(
uint8_t
a)
{
PortLCDRsEn |= (1<<LCD_RS);
// RS auf 1 setzen


DatenRaus(a);
}



void
LCD_Command(
uint8_t
a)
{
PortLCDRsEn &= ~(1<<LCD_RS);
// RS auf 0 setzen


DatenRaus(a);
}