#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit beep=P2^3;
sbit lcdrs=P3^5;
sbit lcden=P3^4;
sbit wela=P2^7;
sbit dula=P2^6;
sbit key0=P3^0;
sbit key1=P3^1;
sbit key2=P3^2;
sbit rd=P3^7;
uchar shi,fe,miao,t0,j,num,num1,temp;
uchar code table[]={"0123456789"};
uchar code table1[]={"Welcome!"};
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void di()
{
beep=0;
delayms(30);
beep=1;
}
void write_com(uchar com)
{
lcdrs=0;
lcden=0;
P0=com;
lcden=1;
delayms(5);
lcden=0;
}
void write_date(uchar date)
{
lcdrs=1;
lcden=0;
P0=date;
lcden=1;
delayms(5);
lcden=0;
}
void init()
{
rd=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
TR0=1;
EA=1;
shi=0;
fe=0;
miao=0;
wela=0;
dula=0;
write_com(0x38);
delayms(1);
write_com(0x0c);
delayms(1);
write_com(0x06);
delayms(1);
write_com(0x01);
}
void display()
{
write_com(0x80);
for(j=0;j<8;j++)
{
write_date(table1[j]);
}
delayms(2);
write_com(0x80+0x45);
for(j=0;j<1;j++)
{
write_date(table[shi/10]);
}
delayms(2);
write_com(0x80+0x46);
for(j=0;j<1;j++)
{
write_date(table[shi%10]);
}
delayms(2);
write_com(0x80+0x47);
for(j=0;j<1;j++)
{
write_date(':');
}
delayms(2);
write_com(0x80+0x48);
for(j=0;j<1;j++)
{
write_date(table[fe/10]);
}
delayms(2);
write_com(0x80+0x49);
for(j=0;j<1;j++)
{
write_date(table[fe%10]);
}
delayms(2);
write_com(0x80+0x4a);
for(j=0;j<1;j++)
{
write_date(':');
}
delayms(2);
write_com(0x80+0x4b);
for(j=0;j<1;j++)
{
write_date(table[miao/10]);
}
delayms(2);
write_com(0x80+0x4c);
for(j=0;j<1;j++)
{
write_date(table[miao%10]);
}
delayms(2);
}
void keysan()
{
rd=0;
if(key0==0)
{
delayms(10);
if(key0==0)
{
TR0=0;
while(!key0);
write_com(0x80+0x10);
write_com(0xf0);
di();
}
}
}
void main()
{
init();
while(1)
{
display();
keysan();
}
}
void T0_time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t0++;
if(t0==20)
{
t0=0;
miao++;
if(miao==60)
{
miao=0;
fe++;
if(fe==60)
{
fe=0;
shi++;
{
if(shi==24)
shi=0;
}
}
}
}
}
|