📄 clock0510.c
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint fen,miao,temp,fengao,fendi,miaogao,miaodi;
uchar button_select;
uint flag_tiaoshi=0,flag_xuanwei=0;
long count,spark;
uint button=0;
sbit dula=P2^6;
sbit wela=P2^7;
sbit tiaoshi=P3^4;
sbit xuanwei=P3^5;
sbit caozuo=P3^6;
uchar code tabledu[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x00
};
display(uchar,uchar,uchar,uchar);
void clock();
delay(uchar);
uchar scan();
void operate(uchar);
void spark_fun();
void initial();
void main()
{
initial();
while(1)
{
clock();
button_select=scan();
operate(button_select);
spark_fun();
display(fengao,fendi,miaogao,miaodi);
}
}
void clock()
{
if(count>=20)
{
count=0;
miao++;
if(miao>=60)
{
miao=0;
fen++;
if(fen>=60)
{
fen=0;
}
}
}
else ;
}
uchar scan()
{
if(tiaoshi==0)
{
delay(250);
if(tiaoshi==0)
button=1;
while(!tiaoshi);
}
else if(xuanwei==0)
{
delay(250);
if(xuanwei==0)
button=2;
while(!xuanwei);
}
else if(caozuo==0)
{
delay(250);
if(caozuo==0)
button=3;
while(!caozuo);
}
else button=0;
return button;
}
void tim1() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
count++;
}
void tim0() interrupt 1
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
spark++;
}
void spark_fun()
{
if(flag_tiaoshi==1)
{
TR1=0;
TR0=1;
spark=0;
if(flag_tiaoshi==1&&flag_xuanwei==3&&spark>=10)
{
fengao=16;
if(spark>=20)
{
spark=0;
fengao=fen/10;
}
}
else
if(flag_tiaoshi==1&&flag_xuanwei==2&&spark>=10)
{
fendi=16;
if(spark>=20)
{
spark=0;
fendi=fen%10;
}
}
else
if(flag_tiaoshi==1&&flag_xuanwei==1&&spark>=10)
{
miaogao=16;
if(spark>=20)
{
spark=0;
miaogao=miao/10;
}
}
else
if(flag_tiaoshi==1&&flag_xuanwei==0&&spark>=10)
{
miaodi=16;
if(spark>=20)
{
spark=0;
miaodi=miao%10;
}
}
}
}
display(uchar fenshi,uchar fenge,uchar miaoshi,uchar miaoge)
{
P0=tabledu[fenshi];
dula=1;
dula=0;
P0=0xfe;
wela=1;
wela=0;
delay(1);
P0=tabledu[fenge];
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
delay(1);
P0=tabledu[miaoshi];
dula=1;
dula=0;
P0=0xfb;
wela=1;
wela=0;
delay(1);
P0=tabledu[miaoge];
dula=1;
dula=0;
P0=0xf7;
wela=1;
wela=0;
delay(1);
}
void operate(uchar y)
{
fengao=fen/10;
fendi=fen%10;
miaogao=miao/10;
miaodi=miao%10;
switch(y)
{
case 0: ;break;
case 1:
if(flag_tiaoshi==1)
{
flag_tiaoshi=0;
initial();
break;
}
else
{
flag_tiaoshi=1;
}
break;
case 2:
{
if(flag_tiaoshi==1)
{
flag_xuanwei++;
if(flag_xuanwei==4)
flag_xuanwei=0;
}
}
break;
case 3:
if(flag_tiaoshi==1)
{
switch(flag_xuanwei)
{
case 0: temp=miao;miao=miao+1;if(temp/10<miao/10)miao=(miao/10-1)*10+miao%10;break;
case 1: miao=miao+10;if(miao>59)miao=miao-60;break;
case 2: temp=fen;fen=fen+1;if(temp/10<fen/10)fen=(fen/10-1)*10+fen%10;break;
case 3: fen=fen+10;if(fen>59)fen=fen-60;break;
}
}
break;
}
}
delay(uchar x)
{
uchar a,b;
for(a=x;a>0;a--)
for(b=255;b>0;b--);
}
void initial()
{
EA=1;
ET1=1;
ET0=1;
TMOD=0x11;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR1=1;
TR0=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -