?? 1.c
字號(hào):
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
uint a,b,c,c1,d,x,y,xi,n,n0,
ke,ke0,kex,ke1,ke2,ke3,ke4,
ry,ry0,ry1,hf,hf0,hf1,hf2,
bian,ge,shi,bai,qian,q1,q2,q3,q4,t,f,ke12;
uchar code table[]={
0xa0,0xf9,0x64,0x70,0x39,
0x32,0x22,0xf8,0x20,0x30};
void into()
{
TMOD=0x22;
EA=1;
ET0=1;
TR0=1;
TH0=56;
TL0=56;
a=0;
b=0;
c=0;
d=0;
q1=0xfe;
q2=0xfb;
q3=0xfd;
q4=0xf7;
f=0xff;
ke1=1;
ke2=0;
ke3=1;
ke4=1;
ry=139;
hf=123;
xi=0;
n=2008;
// P0=0x00;
}
void delay(uint b)
{
for(x=b;x>0;x--)
for(y=30;y>0;y--);
}
void display()
{
ge=xi%10;
P0=q1;
P2=table[ge];
delay(10);
shi=xi%100/10;
P0=q2;
P2=table[shi];
delay(10);
bai=xi/100%10;
P0=q3;
P2=table[bai];
delay(10);
qian=xi/1000;
P0=q4;
P2=table[qian];
delay(10);
if (c%2)
{
P0=0xfd;
P0=0xf7;
P2=0xfb;
}
else
P2=0xff;
}
void key()
{
ke=P0&0xf0;
if (ke==0xe0||ke==0xd0||ke==0xb0||ke==0x70)
{
delay(10);
if (ke==0xe0||ke==0xd0||ke==0xb0||ke==0x70)
{
kex=ke;
delay(500);
ke0=P0&0xf0;
}
}
switch(kex)
{
case 0xe0: if (ke!=ke0)ke1++;break;
case 0xd0: if (ke!=ke0)ke2++;break;
case 0xb0: if (ke!=ke0)ke3++;break;
case 0x70: if (ke!=ke0)ke4++;break;
}
kex=0;
if (ke1>4)
ke1=1;
if (ke2>4)
ke2=0;
switch(ke1)
{
case 1:xi=c1;break;
case 2:xi=hf1;break;
case 3:xi=ry1;break;
case 4:xi=n;break;
}
if (ke2>0)
{
switch(ke2)
{
case 1:// if (a>4300)t=f,f=q1,q1=t;
if (ke!=ke0&&ke==0xbf)ge++;
if (ke!=ke0&&ke==0x7f)ge--;break;
case 2: //if (a>4300)t=f,f=q2,q2=t;
if (ke!=ke0&&ke==0xbf)shi++;
if (ke!=ke0&&ke==0x7f)shi--;break;
case 3: //if (a>4300)t=f,f=q3,q3=t;
if (ke!=ke0&&ke==0xbf)bai++;
if (ke!=ke0&&ke==0x7f)bai--;break;
case 4:// if (a>4300)t=f,f=q4,q4=t;
if (ke!=ke0&&ke==0xbf)qian++;
if (ke!=ke0&&ke==0x7f)qian--;break;
}
d=ge+shi*10+bai*100+qian*1000;
xi=d;
if (ke1!=0)
ke12=ke1+5;
switch(ke12)
{
case 7:hf0=d;break;
case 8:ry0=d;break;
case 9:n0=d;break;
}
ke1=0;
}
}
void year()
{
if(c==60)
{
hf++;
c=0;
}
if(hf==24*60)
{
ry++;
hf=0;
}
switch(ry/30)
{
case 1: if (ry%60==32)ry=ry+28;break;
case 2: if (ry%60==30)ry=ry+30;break;
case 3: if (ry%60==32)ry=ry+28;break;
case 4: if (ry%60==31)ry=ry+29;break;
case 5: if (ry%60==32)ry=ry+28;break;
case 6: if (ry%60==31)ry=ry+29;break;
case 7: if (ry%60==32)ry=ry+28;break;
case 8: if (ry%60==32)ry=ry+28;break;
case 9: if (ry%60==31)ry=ry+29;break;
case 10: if (ry%60==32)ry=ry+28;break;
case 11: if (ry%60==31)ry=ry+29;break;
case 12: if (ry%60==32)ry=ry+28;break;
default : ;
}
if (ry==365)
n++;
}
void time()
{
if (n==n0&&ry1==ry0&&hf1==hf0)
{
P1=0xfe;
}
if (hf1!=hf0)
P1=0xff;
}
void transfrom ()
{
hf1=hf%10+hf%60/10*10+hf/60%10*100+hf/60/10*1000;
c1=c%10+c%60/10*10+c/60%10*100+c/60/10*1000;
ry1=ry%10+ry%60/10*10+ry/60%10*100+ry/60/10*1000;
}
void main()
{
into();
while(1)
{
year();
key();
transfrom ();
display();
time();
}
}
void exter0() interrupt 1
{
a++;
if(a==4608)
{
c++;
a=0;
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -