#include<reg52.h>
#define LCD_BUS P2
#define uchar unsigned char
void LCD12864_state();
void LCD12864_cmd(uchar cmd);
void LCD12864_writedata(uchar dat);
void delay(uchar k);
void LCD12864_pos(uchar x,uchar y);
sbit LCD_RS=P1^0;
sbit LCD_RW=P1^1;
sbit LCD_E=P1^2;
sbit PSB =P3^6;
uchar display1[]={"hello"};
uchar display2[]={"nihao"} ;
uchar display3[]={"hello"};
uchar display4[]={"nihao"};
void main()
{
uchar i;
LCD12864_state();
LCD12864_pos(0,0);
while(display1[i]!='\0')
{
LCD12864_writedata(display1[i]);
i++;
}
i=0;
LCD12864_pos(1,0);
while(display2[i]!='\0')
{
LCD12864_writedata(display2[i]);
i++;
}
i=0;
LCD12864_pos(2,0);
while(display3[i]!='\0')
{
LCD12864_writedata(display3[i]) ;
i++;
}
i=0;
LCD12864_pos(3,0);
while(display4[i]!='\0')
{
LCD12864_writedata(display4[i]);
i++;
}
while(1);
}
void LCD12864_state()
{
PSB=1;
LCD12864_cmd(0X30);
delay(5);
LCD12864_cmd(0X0c);
delay(5);
LCD12864_cmd(0X01);
delay(5 );
}
void LCD12864_cmd(uchar cmd)
{
LCD_RS=0;
LCD_RW=0;
LCD_E=0;
LCD_BUS=cmd;
delay(5);
LCD_E=1;
delay(5);
LCD_E=0;
}
void LCD12864_writedata(uchar dat)
{
LCD_RS=1;
LCD_RW=0;
LCD_E=0;
P2=dat;
delay(5);
LCD_E=1;
delay(5);
LCD_E=0;
}
void delay(uchar k)
{
uchar j,t;
for(j=0;j<k;j++)
for(t=0;t<100;t++)
;
}
void LCD12864_pos(uchar x,uchar y)
{
uchar pos;
if(x==0)
x=0x80;
else if(x==1)
x=0x90;
else if(x==2)
x=0x88;
else if(x==3)
x=0x98;
pos=x+y;
LCD12864_cmd(pos);
}
|