if(shi1==255) shi1=23; } if(cnt==4) { miao2--; if(miao2==255) miao2=59; } if(cnt==5) { fen2--; if(fen2==255) fen2=59; } if(cnt==6) { shi2--; if(shi2==255) shi2=23; }
if(cnt==7)
{ miao3--; if(miao3==255) miao3=59; } if(cnt==8) { fen3--; if(fen3==255) fen3=59; } if(cnt==9) { shi3--; if(shi3==255) shi3=23;
25
}
if(cnt==10) { miao--;
if(miao==255) miao=59;cnt1++; } if(cnt==11) { fen--; if(fen==255) fen=59;cnt1++; } if(cnt==12) { shi--; if(shi==255) shi=23;cnt1++; } }
void clock() // 闹铃子函数 //判断秒的数值是否相等
{ if(miao==miao1&&alm1==0||miao==miao2&&alm2==0||miao==miao3&&alm3==0) //是,在判断分是否相等
if(fen==fen1&&alm1==0||fen==fen2&&alm2==0||fen==fen3&&alm3==0) //是,再判断时是否相等
if(shi==shi1&&alm1==0||shi==shi2&&alm2==0||shi==shi3&&alm3==0) { flag2=0; //是,则标志位,flag2清零 while(!(flag2==1200)&&(cnt==0)) //判断flag2是否到1200且不
// 为调时状态
//没有,则继续驱动蜂鸣器响
{if(key4==0)
{while(!key4) flag2=1200;
}
if(flag1>1) //等时方波驱动蜂鸣器
26
{ fmq=~fmq;
flag1=0; }
shijian(); //调用时间子函数 display(); //调用显示子函数 }
fmq=1; //关闭蜂鸣器 }
void main() // 主函数
{ init(); //调用初始化子函数 while(1)
{ clock(); //闹钟子函数 if(cnt==1||cnt==2||cnt==3) //显示子函数 { display1(); }
if(cnt==4||cnt==5||cnt==6)
}
{ display2(); }
if(cnt==7||cnt==8||cnt==9)
{ display3(); }
if(cnt==0||cnt==10||cnt==11||cnt==12||cnt==13)
{ display(); }
shijian();
key_scan();
//调用时间子函数 //调用键盘扫描子函数
} }
void time0() interrupt 1 // 定时中断 { TH0=0x3c; //初值50ms (65536-50000)/256 TL0=0x0b0;
// (65536-50000)%6
flag++; //标志位 flag1++;
flag2++;
}
27