case 0x08; buf[3]=0x0b; break; } }
/*******************************************************/ displa();
if(S1) goto sett_1; for(i=0;<4;i++) delay20ms(); if(S1) goto sett_1; if(ml) {
TR1=0; ET1=0;
buf[0]=hourh; buf[1]=hourl; buf[2]=minuh; buf[3]=minul; return; }
setflag<<1; continue;
sett_1; if(S2) continue; for(i=0;i<4;i++) delay20ms();
if(S2) continue; if(!hh) goto sett_2 { hourh++;
if(hourh!=2) continue; hourh=0; continue; }
sett_2: if(!hl) goto sett_3; {
hourl++;
if(hourh) goto sett_20; if(hourl==10) goto sett_21; continue;
sett_21: hourl=0; continue;
sett_20: if(hourl==3) goto sett_22; continue; sett_22: hourl=0; continue; }
sett_3: if(!mh) goto sett_4; { minuh++;
if(minuh==6) goto sett_30; continue;
sett_30: minuh=0; continue;
}
sett_4: minul++;
if(minul==10) goto sett_40; continue;
sett_40: minul=0;
26
continue; } }
/*********************************************************** ;**********************************************************/ void delay20ms(void) {
uchar i, j;
for(i=0;i<20;i++)
for(j=0;j<255;j++); }
/*********************************************************** ;**********************************************************/ void timerl(void) interrupt 3 using 1 {
TH1=0x3c; /* 100ms 定时常数 */ TL1=0xb0;
conun++; /* 中断次数加1*/
if(count!=5) /* 判到10次(1s)否,不到直接返回 */ return;
ss=!ss; /* ss 闪烁标志求反 */ count=0; }
/********************************************************** ;*********************************************************/ void tl_init(void {
; TMOD=0X11; /*T1 定时方式1*/ TH1=0x3c; TL1=0xb0; }
27