break; case 23:
case 24://秒表复位 flag1=24;
msecond_minute=0; msecond_second=0; msecond_msecond=0; break; case 25:
zancun1++;
if(zancun1==100) {
zancun1=0; zancun2++;
if(zancun2==100) {
zancun2=0; zancun3++; } }
break; default: break; }
while(s3_bit==0) {
judge_dis(); }//等待按键释放 } } }
//**************************************** //显示处理函数 void judge_clock() {
zancun4=hour_count&0xf0; zancun4>>=4;
zancun6=hour_count&0x0f; zancun4*=10;
zancun4+=zancun6;
zancun5=minute_count&0xf0; zancun5>>=4;
zancun6=minute_count&0x0f;
zancun5*=10;
zancun5+=zancun6;
if(clock_hour==zancun4 && clock_minute==zancun5) {
if(clock_en==1 && clock_flag==0) {
speak_count=0;//开启蜂鸣器 clock_flag=1; speak_count=0; } } else {
clock_flag=0; }
if(clock_flag==1 && speak_count<400) {
if(msecond_count<=5) {
speak=0;
speak_count++; } else {
speak=1;
} } else {
speak=1; } }
//**************************************** ////闪烁显示子程序
void dis_san(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1,uchar san) {
if(san==1) {
if(msecond_count<5) {
display1(s6);
} } else {
display1(s6); }
if(san==2) {
if(msecond_count<5) {
display2(s5); } } else {
display2(s5); }
if(san==3) {
if(msecond_count<5) {
display3(s4); } } else {
display3(s4); }
if(san==4) {
if(msecond_count<5) {
display4(s3); } } else {
display4(s3); }
if(san==5) {
if(msecond_count<5) {
display5(s2);
} } else {
display5(s2); }
if(san==6) {
if(msecond_count<5) {
display6(s1); } } else {
display6(s1); } }
//**************************************** //时钟显示程序
void dis(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1) {
display1(s6); display2(s5); display3(s4); display4(s3); display5(s2); display6(s1); }
//******************************************************************************************** void init_t0() {
TMOD=0x01;//设定定时器工作方式1,定时器定时50毫秒 TH0=(65536-50000)/256; TL0=(65536-50000)%6; EA=1;//开总中断 ET0=1;//允许定时器0中断 t0_crycle=0;//定时器中断次数计数单元 }
//************************************************** //LED处理函数 void dis_led() {
if(msecond_count<5) {
led1_bit=1; led2_bit=1; } else {
led1_bit=0; led2_bit=0; } }
//*************************************************************** //功能:把数据1显示在数码管1上 void display6(uchar dis_data) {
smg_data=tabl1[dis_data];//送显示断码 dis_bit6=0;//锁存数据 delay_50us(40); dis_bit6=1; }
//*************************************************************** //功能:把数据1显示在数码管1上 void display5(uchar dis_data) {
smg_data=tabl1[dis_data];//送显示断码 dis_bit5=0;//锁存数据 delay_50us(40); dis_bit5=1; }
//*************************************************************** //功能:把数据1显示在数码管1上 void display4(uchar dis_data) {
smg_data=tabl1[dis_data];//送显示断码 dis_bit4=0;//锁存数据 delay_50us(40); dis_bit4=1;
}//*************************************************************** //功能:把数据1显示在数码管1上 void display3(uchar dis_data) {
smg_data=tabl1[dis_data];//送显示断码 dis_bit3=0;//锁存数据 delay_50us(40);