Atmega8+3wire +Easy function+win avr
void LCDclr(void);
void LCDhome(void);
void LCDshiftRight(uint8_t);
void LCDshiftLeft(uint8_t);
void LCDcursorOn(void);
void LCDcursorOnBlink(void);
void LCDcursorOFF(void);
void LCDblank(void);
void LCDvisible(void);
void LCDcursorLeft(uint8_t);
void LCDcursorRight(uint8_t);
********
void sendByteToRegister(uint8_t);
void LCDenableCommand(void);
void LCDdisableCommand(void);
void LCDenableData(void);
void LCDdisableData(void);
void LCDsendChar(uint8_t); //forms data ready to send to 74HC164
void LCDsendCommand(uint8_t); //forms data ready to send to 74HC164
void LCDinit(void);
// write a byte to the LCD character generator or display RAM
void LCDwritebyte(uint8_t, uint8_t);
void LCDdefinechar(const uint8_t* ,uint8_t);
void LCDclr(void);
void LCDhome(void);
void LCDstring(uint8_t*, uint8_t);
void LCDGotoXY(uint8_t, uint8_t);
void LCDprintData(u32,u32);
void LCDcursorRight(uint8_t); //shif cursor right by n
void CopyStringtoLCD(const uint8_t*, uint8_t, uint8_t);//copies flash string to LCD at x,y
void LCDshiftRight(uint8_t); //shift by n characters Right
void LCDshiftLeft(uint8_t); //shift by n characters Left
void LCDcursorOn(void); //Underline cursor ON
void LCDcursorOnBlink(void); //Underline blinking cursor ON
void LCDcursorOFF(void); //Cursor OFF
void LCDblank(void); //LCD blank but not cleared
void LCDvisible(void); //LCD visible
void LCDcursorLeft(uint8_t); //Shift cursor left by n
void LCDcursorRight(uint8_t); //shif cursor right by n
------------------------------------------------------------------
http://kavirelectronic.ir/winavr/source/lcd3w/LCD3WIRE.zip