it k2=P1^2;
sbit beep=P1^5;//蜂鳴器
sbit smg1=P2^2;//數(shù)碼管
//數(shù)碼管編碼
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar time=0,mode2=0;//系統(tǒng)變量
uchar shi=6,fen=59,miao=55,sec=0;
uchar start=0;
uchar flag1=0,flag2=0,time1=0;//報(bào)時(shí)控制
uchar flag=0;
uchar change=0;
//延時(shí)
void delay(uint i)
{
while(i--);
}
//主函數(shù)
void main()
{
uchar k=0;
TMOD|=0X01;
TH0=0X3C;
TL0=0XB0;
ET0=1;//打開定時(shí)器0中斷允許
EA=1;//打開總中斷
TR0=1;//打開定時(shí)器
beep=0;
while(1)
{
//正常模式
if(s1)
{
if(change)
{
change=0;
mode2=0;
}
if(mode2==0)//分鐘
{
P0=0;smg1=1;P0=smgduan[fen/10];delay(100);
P0=0;smg1=0;P0=smgduan[fen%10];delay(100);
}
else//小時(shí)
{
P0=0;smg1=1;P0=smgduan[shi/10];delay(100);
P0=0;smg1=0;P0=smgduan[shi%10];delay(100);
}
//LED
if(flag==0)
{
if(time<11)
P3=0xff;
else
P3=0;
}
//按鍵切換
if(!k1 &&(k!=1))//小時(shí)
{
k=1;
if(sec==0)
{
sec=3;
mode2=1;
start=1;
}
else
{
mode2=0;
start=0;
sec=0;
}
}
if(k1 && k2)
k=0;
}
else//設(shè)置模式
{
change=1;
if(mode2==0)//分鐘
{
if(time<11)
{
P0=0;smg1=1;P0=smgduan[fen/10];delay(100);
P0=0;smg1=0;P0=smgduan[fen%10];delay(100);
}
else
P0=0;
P3=0xff;
}
else//小時(shí)
{
if(time<11)
{
P0=0;smg1=1;P0=smgduan[shi/10];delay(100);
P0=0;smg1=0;P0=smgduan[shi%10];delay(100);
}
else
P0=0;
P3=0;
}
//按鍵切換
if(!k1 &&(k!=1))//切換
{
k=1;
mode2=!mode2;
}
if(!k2 &&(k!=2))//加
{
k=2;
if(mode2==0)
{
if(fen<59)
fen++;
else
fen=0;
}
資料借鑒于此紛傳
閱讀全文