#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit rs=P1^0;//數據/命令選擇端(H/L)
sbit rw=P1^1;//讀/寫選擇端(H/L)
sbit en=P1^2;//使能端
uchar code zifu1[]="Gui fa zhi *_* !";
uchar code zifu2[]="tel: 18778434282";
uint i;
void delay(uchar time)//延時函數
{
uint x,y;
for(x=100;x>0;x--)
for(y=time;y>0;y--);
}
void write_com(uchar com) //命令輸入函數
{
rs=0;
P2=com;
delay(5);
en=1;
delay(5);
en=0;
}
void write_date(uchar date)//數據輸入函數
{
rs=1;
P2=date;
delay(5);
en=1;
delay(5);
en=0;
}
void chu()//液晶初始化
{
rw=0;//低電平威脅數據或命令
en=0;
write_com(0x38);//設置16X2顯示,5X7點陣,8位數據口
write_com(0x01);//數據指針清零
write_com(0x0c);//光標開啟
}
void move()//整屏移動(0x18是向左移,0x1c是右移)
{
for(i=0;i<16;i++)//移動16位
{
write_com(0x18);
delay(500);
}
}
void main()//主函數
{
chu();
write_com(0x80+0x10);//選擇地址
for(i=0;i<16;i++)
{
write_date(zifu1[i]);
delay(5);
}
write_com(0x80+0x40+0x10);
for(i=0;i<16;i++)
{
write_date(zifu2[i]);
delay(5);
}
while(1)
{
move();
}
}