#define LCD_DB P1
sbit LCD_RS=P3^3;
sbit LCD_WR=P3^4;
sbit LCD_E=P3^5;
void delay(unsigned int time);
void write_code(unsigned char x);
void write_data(unsigned char x);
void read_status(unsigned char x);
unsigned char read_code(void);
unsigned char read_data(void);
main()
{
//---------------------------------------------Initiate
delay(100);
write_code(0x30);
delay(100);
write_code(0x30);
delay(100);
write_code(0x30);
while((read_code()&0x80)!=0x00);
write_code(0x38);
while((read_code()&0x80)!=0x00);
write_code(0x08);
while((read_code()&0x80)!=0x00);
write_code(0x01);
while((read_code()&0x80)!=0x00);
write_code(0x06);
while((read_code()&0x80)!=0x00);
write_code(0x10);
while((read_code()&0x80)!=0x00);
write_code(0x0c);
while((read_code()&0x80)!=0x00);
//=======================================================
write_code(0x01); //Clear display
while((read_code()&0x80)!=0x00);
write_code(0x38); //1 Line 5*7
while((read_code()&0x80)!=0x00);
write_code(0x0e); //Open display
while((read_code()&0x80)!=0x00);
write_code(0x06); //AC++
while((read_code()&0x80)!=0x00);
write_data(0x54); //"T"
while((read_code()&0x80)!=0x00);
write_data(0x4d); //"M"
}
/*-----------Main() The End------------*/
void delay(unsigned int time)
{
unsigned int i,j;
for(i=0;i<time;i++)
{
for(j=0;j<100;j++);
}
}
//==========================================
void write_code(unsigned char x)
{
LCD_E=1;
LCD_DB=0xff;
LCD_RS=0;
LCD_WR=0;
LCD_E=1;
LCD_DB=x;
LCD_E=0;
LCD_E=1;
}
/*=====================================================*/
/*======================================================*/
void write_data(unsigned char x)
{
LCD_E=1;
LCD_DB=0xff;
LCD_RS=1;
LCD_WR=0;
LCD_E=1;
LCD_DB=x;
LCD_E=0;
LCD_E=1;
}
/*======================================================*/
unsigned char read_code(void)/*读"忙"标志子程序*/
{
unsigned char x,i,j;
LCD_E=1;
LCD_RS=0;
LCD_WR=1;
LCD_E=1;
LCD_E=0;
x=LCD_DB;
return(x);
}
/*======================================================*/
unsigned char read_data(void)
{
unsigned char x;
LCD_E=1;
LCD_RS=1;
LCD_WR=1;
LCD_E=1;
LCD_E=0;
x=LCD_DB;
LCD_E=1;
return(x);
}