/* Initializes LCD */ void InitializeLCD(void) { GPIO_setHigh(myGpio, E); LCDDelay1600(); LCDDelay1600(); LCDDelay1600(); LCDDelay1600(); WriteCommandLCD(0x38); //Command to select 8 bit interface LCDDelay1600(); WriteCommandLCD(0x38); //Command to select 8 bit interface LCDDelay(); //Small delay WriteCommandLCD(0x38); //Command to select 8 bit interface LCDDelay(); WriteCommandLCD(0x08); //Command to off cursor,display off WriteCommandLCD(0x01); //Command to Clear LCD LCDDelay1600(); WriteCommandLCD(0x06); //Command for setting entry mode WriteCommandLCD(0x0f); //Command to on cursor,blink cursor WriteCommandLCD(0x02); //Command return the cursor to home LCDDelay1600(); }
/***************************LCD写命令函数********************/ void LCDWriteCmd(unchar cmd) { DBPort=cmd; RS=0; RW=0; LCDDelay(5); EN=1; EN=0; }
/************************LCD写数据函数**************************/ void LCDWriteDate(unchar date) { DBPort=date; RS=1; RW=0; LCDDelay(5); EN=1; EN=0; }
/* Send a byte of data to LCD */ void SendByte(unsigned char Value) { unsigned char temp; if((Value & 0x01) == 0x01) GPIO_setHigh(myGpio, D0); else GPIO_setLow(myGpio, D0); if((Value & 0x02) == 0x02) GPIO_setHigh(myGpio, D1); else GPIO_setLow(myGpio, D1); if((Value & 0x04) == 0x04) GPIO_setHigh(myGpio, D2); else GPIO_setLow(myGpio, D2); if((Value & 0x08) == 0x08) GPIO_setHigh(myGpio, D3); else GPIO_setLow(myGpio, D3); if((Value & 0x10) == 0x10) GPIO_setHigh(myGpio, D4); else GPIO_setLow(myGpio, D4); if((Value & 0x20) == 0x20) GPIO_setHigh(myGpio, D5); else GPIO_setLow(myGpio, D5); if((Value & 0x40) == 0x40) GPIO_setHigh(myGpio, D6); else GPIO_setLow(myGpio, D6); if((Value & 0x80) == 0x80) GPIO_setHigh(myGpio, D7); else GPIO_setLow(myGpio, D7); GPIO_setHigh(myGpio, E); //Set E pin to select LCD for(temp=0;temp<5; temp++); GPIO_setLow(myGpio, E); //Clear E pin to deselect LCD LCDDelay(); //Small delay }
/* Writes a command byte to LCD */ void WriteCommandLCD(unsigned char CommandByte) { GPIO_setLow(myGpio, RS); //Clear RS pin to write command SendByte(CommandByte); LCDDelay(); //Small delay }
/* Writes a Data byte to LCD */ void WriteDataLCD(unsigned char DataByte) { GPIO_setHigh(myGpio, RS); //Set RS pin to 1 to write Data SendByte(DataByte); LCDDelay(); //Small delay }