void LCD1602_Delay()
{
unsigned int i;
for(i=999;i>0;i--);
}
void LCD1602_WriteCommand(unsigned char Command)
{
DATA=Command;
RS=0;RW=0;E=0;LCD1602_Delay();E=1;
}
void LCD1602_WriteData(unsigned char Data)
{
DATA=Data;
RS=1;RW=0;E=0;LCD1602_Delay();E=1;
}
void LCD1602_Init(void)
{
DATA=0X00;
LCD1602_Delay();
LCD1602_WriteCommand(0x01);
LCD1602_WriteCommand(0x38);
LCD1602_WriteCommand(0x0C);
LCD1602_WriteCommand(0x06);
LCD1602_WriteCommand(0x80);
}
void LCD1602_WriteChar(unsigned char row,unsigned char column,unsigned char ch)
{
unsigned char i;
if(row==1)
{
LCD1602_WriteCommand(0x80);
}
else if(row==2)
{
LCD1602_WriteCommand(0xC0);
}
for(i=1;i<column;i++)
{
LCD1602_WriteCommand(0x14);
}
LCD1602_WriteData(ch);
}
int LCD1602_Pow(unsigned char X,unsigned char Y)
{
unsigned char i;
int result=1;
for(i=0;i<Y;i++)
{
result*=X;
}
return result;
}
void LCD1602_WriteNum(unsigned char row,unsigned char column,unsigned int number,unsigned char lenth)
{
unsigned char i;
if(row==1)
{
LCD1602_WriteCommand(0x80);
}
else if(row==2)
{
LCD1602_WriteCommand(0xC0);
}
for(i=1;i<column;i++)
{
LCD1602_WriteCommand(0x14);
}
for(i=0;i<lenth;i++)
{
LCD1602_WriteData(number/LCD1602_Pow(10,lenth-i-1)%10+'0');
}
}