dat1[3]++;delay(280); if(dat[3]>=9) {
dat1[4]++;dat1[3]=0; if(dat1[4]>5) {
dat1[4]=0; } }
}
if(flag==1) {
alarms[3]++; delay(300); if(alarms[3]>9) {
alarms[4]++;alarms[3]=0;
if(alarms[4]>5) { alarms[4]=0;
}
}
dat[3]=alarms[3]; dat[4]=alarms[4]; }
}
if(miaobiao1==0) {TR0=0;ET0=0;TR1=1;ET1=1;
29
}
if(miaobiao2==0) {
TR0=1;ET0=1;TR1=0;ET1=0;
dat2[0]=0; dat2[1]=0; dat2[3]=0; dat2[4]=0; dat2[6]=0; dat2[7]=0; ms=0; sec=0; minit=0; }
if(P1_5==0) {
TR0=0;ET0=0;TR1=0;ET1=0; }
if(alarm==0)
{
TR0=0;ET0=0;TR1=0;ET1=0;flag=1; dat[0]=0; dat[1]=0; dat[2]=10; dat[3]=0;
dat[4]=0;
dat[5]=10;
30
dat[6]=0;
dat[7]=0;
} EA=1; }/*按键扫描*/ void init(void) {
TMOD = 0x11; TH0 = 0xDB; TL0 =0xFF; TH1=0xDB; TL1=0xFF; ET0 = 1; //10ms
ET1=1; //
TR1=1;
TR0=1; tcount=0; ms=0; sec=0; minit=0;
EA = 1;
}/*初始化*/ void test(void){ for(k=0;k<8;k++) {
P3=dis_bit[k];
P2=SEG7[dat[k]]; delay(1);
31
P3=0X00;
}
}/*数字显示*/ void main() {init(); delay(10); while(1) {
modify();
test(); } }/*主函数*/
Void diplay() interrupt 1 { ET0=0; TR0=0; TH0 = 0xDB; TL0 = 0xff; TR0=1; tcount++; if(tcount==100) {
time1.second++; tcount=0; dat1[0]=(time1.second); dat1[1]=(time1.second)/10;
}
32
if(time1.second==60) { dat1[0]=0; dat1[1]=0; time1.second=0; time1.minute++;
dat1[3]=(time1.minute);
dat1[4]=(time1.minute)/10; }
if(time1.minute==60) {
time1.minute=0; time1.hour++; dat1[6]=time1.hour; dat1[7]=time1.hour/10;
}
if(time1.hour>23) {
time1.hour=0; }
dat[5]=10; dat[2]=10; dat[0]=dat1[0]; dat[1]=dat1[1]; dat[3]=dat1[3]; dat[4]=dat1[4]; dat[6]=dat1[6]; dat[7]=dat1[7]; flag=0;
33