该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#define uchar unsigned char
#define uint unsigned int
#define data P0
sbit wr=P3^0;
sbit cs1=P3^1;
sbit cs2=P3^2;
sbit m=P2^0;
sbit add=P2^1;
sbit jian=P2^2;
bit flag,flag1,flag2,flag3;
uchar shi,fen,miao,mm;
uchar a,b;
char c;
uchar dm[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
uchar buff[]={0,0,10,0,0,10,0,0}; void delay(char t)
{
while(t)
{
uchar i;
for(i=0;i<120;i++);
t--;
}
} void ms()
{
if(c==1)
{
mm=1;
if(b>10) buff[6]=buff[7]=11;
} if(c==2)
{
if(b>10) buff[3]=buff[4]=11;
} if(c==3)
{
if(b>10) buff[0]=buff[1]=11;
} if(c==4) c=mm=0;
} void smg()
{
char i;
buff[0]=shi/10;
buff[1]=shi%10;
buff[3]=fen/10;
buff[4]=fen%10;
buff[6]=miao/10;
buff[7]=miao%10;
ms();
for(i=0;i<8;i++)
{
data=~(0x01<
cs2=0;
wr=0;
wr=1;
cs2=1; data=dm[buff[i]];
cs1=0;
wr=0;
wr=1;
cs1=0;
delay(2); data=0xff;
cs1=cs2=0;
wr=0;
wr=1;
cs1=cs2=1;
}
} void key()
{
if((!m)&&(!flag))
{
c++;
flag=1;
}
if(m) flag=0; if((!add)&&(!flag1)&&(mm))
{
if(c==1) miao++;
if(c==2) fen++;
if(c==3) shi++;
flag1=1;
}
if(add) flag1=0; if((!jian)&&(!flag2)&&(mm))
{
if((c==1)&&(miao>0)) miao--;
if((c==2)&&(fen>0)) fen--;
if((c==3)&&(shi>0)) shi--;
flag2=1;
}
if(jian) flag2=0;
} main()
{
EA=1;
ET0=1;
TMOD=0x01;
TH0=0x4c;
TL0=0x00;
TR0=1;
while(1)
{
smg();
key();
}
} void time() interrupt 1
{
TH0=0x4c;
TL0=0x00;
if(mm==0) a++;
b++;
if(a==20) a=0,miao++;
if(miao==60) miao=0,fen++;
if(fen==60) fen=0,shi++;
if(shi==12) miao=fen=shi=0; if((b>10)&&(!mm)) buff[2]=buff[5]=11;
else buff[2]=buff[5]=10;
if(b==20) b=0;
}