都是通過寫入命令,讀出數據,界面數據變化時通過不斷的刷新變化,忙閑查詢可以用命令,也可以用延時函數5ms就可以了,下面是個簡單的例子
想要復雜點的可以去我百度空間裏面找
#include<AT89X51.H>
sbit lcden=P3^4;
sbit lcdrs=P3^5;
unsigned char code tab[]="libinQQ490251568";
unsigned char code tab1[]="51binyf.com" ;
void delay(unsigned char z);
void into();
void xie_com(unsigned char com);
void xie_date(unsigned char date);
void main()
{ unsigned char num;
into();
for(num=0;num<16;num++)
{
xie_date(tab[num]);
delay(20);
}
xie_com(0x40+0x80+0x03); //使數據指針指到第二行 起始,+1----16可以使它在屏幕的任意位置顯示,
for(num=0;num<11;num++)
{
xie_date(tab1[num]);
delay(20);
}
while(1);
}
void delay(unsigned char z)
{unsigned i,k;
for(i=z;i>0;i--)
for(k=110;k>0;k--);
}
void into()// 此函數中寫入壹些顯示前的準備數據
{
lcden=0;//寫指令之前為E為低電平,
xie_com(0x38);//8為數據傳送,顯示2行,5x7點陣顯示字符
xie_com(0x0f);//開顯示,有光標且閃動 0f光標閃爍,0e光標不閃爍
xie_com(0x06);//寫入壹個字符後光標+1,指針也+1。字符整屏不移動
xie_com(0x80);//數據指針初始化即在第壹行最左邊,後面每個字符地址就加壹,第二行首地址是C0
xie_com(0x01);//清屏指令
}
void xie_com(unsigned char com) //寫指令函數
{
lcdrs=0; //RS=0寫指令
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void xie_date(unsigned char date) //寫數據 函數
{
lcdrs=1;//RS=1寫數據
P0=date;
delay(5);
lcden=1;//資料上說E端有壹個高脈沖時候執行壹次指令,實際應用中他內部
delay(5);//檢測到E端有壹個電平跳變就可以執行指令
lcden=0;
}