{ timedata[con]=0x09; 的减1处理 } else { timedata[con]--; }break; case 5: if(timedata[con]==0) { timedata[con]=0x02; 减1处理 } else { timedata[con]--; } break; default: ; } dis[con]=timedata[con];dis[6]=0x0a; } } EA=1; } else if(naozhong!=0) 断,功能类似上面 { EA=0; if(key0==0) { delay(10); while(key0==0); if(dis[x]>=10) { dis[7]=dis[x];dis[x]=dis[6];dis[6]=dis[7]; } x++;TR0=0;ET0=0;TR1=1;ET1=1; if(x>=6) { x=0;TR1=0;ET1=0;TR0=1;ET0=1; }
21
//2、4位为0时
//当前位数据-1
//5位为0时的
//减1处理
//送显示数据
//开启调时按钮中
}
if(x<=9) { if(key1==0) { delay(10); while(key1==0); secclock[x]++; switch(x) { case 1: case 3: if(secclock[x]>=6) { secclock[x]=0; }break; case 2: case 4: if(secclock[x]>=10) { secclock[x]=0; } break; case 5: if(secclock[x]>=3) { secclock[x]=0; } break; default: ;
} dis[x]=secclock[x]; dis[6]=0x0a; } } if(x>=0) { if(key2==0) { delay(10); while(key2==0); switch(x) {
22
case 1: case 3: if(secclock[x]==0) { secclock[x]=0x05; } else { secclock[x]--; }break; case 2: case 4: if(secclock[x]==0) { secclock[x]=0x09; } else { secclock[x]--; }break; case 5: if(secclock[x]==0) { secclock[x]=0x02; } else { secclock[x]--; } break; default: ; } dis[x]=secclock[x];dis[6]=0x0a; } } EA=1; }
}
/********************************************************************
23
****/
/* 0.3s闪烁中断小程序 */
/************************************************************************/
void time_intt1(void)interrupt 3 {
EA=0;TR1=0;TH1=0X3C;TL0=0XB0;TR1=1; cons++;
if(cons==6) //50ms x 6 =300ms =0.3s { cons=0x00; dis[7]=dis[con];dis[con]=dis[6];dis[6]=dis[7]; }
EA=1; }
/************************************************************************/
/* 电子钟显示进位处理程序 */
/************************************************************************/
void time_intt0(void)interrupt 1 { { int i,j,x=0; j=0;
if(naozhong==0&&stop==1) { ET0=0;TR0=0;TH0=0X3C;TL0=0XB0;TR0=1; conls++; if(conls==20) //20次延时,秒+1 { conls=0x00; timedata[0]++; if(timedata[0]>=10) //10s时,秒十位数+1 { timedata[0]=0; timedata[1]++; if(timedata[1]>=6) //60s时,分+1 { //5 timedata[1]=0; timedata[2]++;
24
if(timedata[2]>=10) //10min时,分十位数+1 { timedata[2]=0; timedata[3]++; if(timedata[3]>=6) //60min时,时+1 { timedata[3]=0; timedata[4]++; if(beep==0) {
for(i=1;i<=(timedata[5]*10+timedata[4])&&beep==0;i++) 报时功能,几点钟就响几下 { baojing=0; P1=0x00; delay(500); baojing=1; P1=0xff; delay(500); timedata[0]++; } } if(timedata[4]>=10) 时,时十位数+1 { timedata[4]=0; timedata[5]++; if(timedata[5]==2) //当h等于24时,清零 { if(timedata[4]==4) { timedata[4]=0; timedata[5]=0; } } } } } } } for(b=0;b<6;b++)
25
//整点 //10h //分别向各个位送