#include<reg52.h>
#define uchar unsigned char
#define uint unsigned uint
void write_com(uchar);
void write_data(uchar);
uchar code table[]=" ";
sbit lcde=P2^7;
sbit lcdrs=P2^6;
sbit lcdrw=P2^5;
uchar temp,num;
void delay(uchar z)
{
uchar i,j;
for(i=110;i>0;i--)
for(j=z;j>0;j--);
}
void init() //"初始化函数"
{
lcdrw=0;
lcde=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01); //"清屏"
write_com(0x80);
for(num=0;num<4;num++) //"写数据"
{
write_data(table[num]);
delay(20);
}
}
void write_com(uchar com) //"写指令函数"
{
lcdrs=0;
P0=com;
delay(10);
lcde=1;
delay(10);
lcde=0;
}
void write_data(uchar com) //"写数据函数"
{
lcdrs=1;
P0=com;
delay(10);
lcde=1;
delay(10);
lcde=0;
}
void main()
{
init();
while(1)
{
P1=0xfe;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xee:
write_com(0x0f);
write_com(0x06);
//write_com(0x80+add);
write_data(0x31);break;
case 0xde:
write_com(0x0f);
write_com(0x06);
//write_com(0x80+add);
write_data(0x32);break;
case 0xbe:
write_com(0x0f);
write_com(0x06);
//write_com(0x80+add);
write_data(0x33);break;
case 0x7e:
write_com(0x0f);
write_com(0x06);
//write_com(0x80+4);
write_data(0x34);break;
}
}
while(temp!=0xf0)
{temp=P1;
temp=temp&0xf0;
}
}
}
}