#include
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
uint year=2012,month=6,day=8;
uchar hour=10,minute=0,second=0,second0=0;
uchar keynum=0;
//**************************************
void wrcmd0802(uchar cmd)
{
uchar m;
RW=0; (写指令
RS=0;
P0=cmd;
for(m=0;m<=2;m++);
E=1;
for(m=0;m<=2;m++);
E=0;
}
void wrdata0802(uchar shuju)
{
uchar m;
RW=0;
RS=1;
P0=shuju;
for(m=0;m<=2;m++);
E=1;
for(m=0;m<=2;m++);
E=0;
}
void init0802(void)
{
RW=0;
E=0;
wrcmd0802(0x38);
wrcmd0802(0x0C);
wrcmd0802(0x06);
wrcmd0802(0x01);
}
void disp0802(uchar x,uchar y,uchar ch)
{
uchar m;
wrcmd0802(0x80+x*0x40+y);
for(m=0;m<=252;m++);
wrdata0802(ch);
}
//*******************************************
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
}
//********************************************
void disp(void)
{
disp0802(0,0,year/1000+'0');
disp0802(0,1,year/100%10+'0');
disp0802(0,2,year/10%10+'0');
disp0802(0,3,year%10+'0');
disp0802(0,4,month/10+'0');
disp0802(0,5,month%10+'0');
disp0802(0,6,day/10+'0');
disp0802(0,7,day%10+'0');
disp0802(1,0,hour/10+'0');
disp0802(1,1,hour%10+'0');
disp0802(1,2,':');
disp0802(1,3,minute/10+'0');
disp0802(1,4,minute%10+'0');
disp0802(1,5,':');
disp0802(1,6,second/10+'0');
disp0802(1,7,second%10+'0');
}
//******************************************
//******************************************
void delay(void)
{ uchar i;
for(i=0;i<=200;i++);
}
void key44scan(void)
{
uchar t;
P1=0xfe;
t=P1;
t=t&0xf0;
if(t!=0xf0)
{