}
//************************************************** //显示处理函数 void judge_dis() {
if(flag1==0) {
if(second_flag==1) {
zancun7++; second_flag=0; }
if(zancun7<1) {
if(temp_flag2==1) {
readtemp_ds18b20();//读取温度 temp_flag2=0; }
dis_temp();//温度显示函数 }
if(zancun7>=1) {
temp_flag2=1;
zancun4=hour_count&0xf0; zancun4>>=4;
zancun5=minute_count&0xf0; zancun5>>=4;
zancun6=second_count&0xf0; zancun6>>=4;
dis(zancun4,hour_count&0x0f,zancun5,minute_count&0x0f,zancun6,second_count&0x0f);
dis_led();
if(zancun7==5)zancun7=0; } }
if(flag1!=0) {
switch(flag1) {
case 1:
dis(5,10,11,1,12,12);//显示SET1
led1_bit=1; led2_bit=1; break; case 2:
dis(5,10,11,2,12,12);//显示SET2 break; case 3:
dis(5,10,11,3,12,12);//显示SET3 break; case 4:
dis(5,10,11,4,12,12);//显示SET4 break; case 5:
dis(5,10,11,5,12,12);//显示SET5 break; case 6:
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,12,12,1); break; case 7:
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,12,12,2); break; case 8:
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,12,12,3); break;
case 9://进入修改时间,时间分位个位闪烁
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,12,12,4); break;
case 10://进入修改闹钟,闹钟小时十位闪烁
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,12,zancun3,1); break;
case 11://进入修改闹钟,闹钟小时个位闪烁
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,12,zancun3,2); break;
case 12://进入修改闹钟,闹钟小时十位闪烁
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,12,zancun3,3); break;
case 13://进入修改闹钟,闹钟小时个位闪烁
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,12,zancun3,4); break;
case 14://进入修改闹钟的开关
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,12,zancun3,6); break; case 15:
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,zancun3/10,zancun3,1);
break; case 16:
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,zancun3/10,zancun3,2);
break; case 17:
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,zancun3/10,zancun3,3);
break; case 18:
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,zancun3/10,zancun3,4);
break; case 19:
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,zancun3/10,zancun3,5);
break; case 20:
dis_san(zancun1/10,zancun1,zancun2/10,zancun2,zancun3/10,zancun3,6);
break; case 21:
if(second_flag==1) {
second_flag=0;
countdown_second--;
if(countdown_second==255) {
countdown_second=59; countdown_minute--;
if(countdown_minute==255) {
countdown_minute=59; countdown_hour--;
if(countdown_hour==255) {
flag1=22;
countdown_minute=0; countdown_hour=0; countdown_second=0; countdown_flag=1; } } } }
dis(countdown_hour/10,countdown_hour,countdown_minute/10,countdown_minute,countdown_second/10,countdown_second);// break; case 22:
if(countdown_flag>0 && countdown_flag<7) {
speak=0;
if(second_flag==1) {
second_flag=0; countdown_flag++; } } else {
speak=1; }
dis(countdown_hour/10,countdown_hour,countdown_minute/10,countdown_minute,countdown_second/10,countdown_second);// break; case 23:
dis(msecond_minute/10,msecond_minute,msecond_second/10,msecond_second,msecond_msecond,12);
break; case 24:
if(msecond_flag==1) {
msecond_flag=0;
msecond_msecond++;
if(msecond_msecond==10) {
msecond_msecond=0; msecond_second++;
if(msecond_second==60) {
msecond_second=0; msecond_minute++;
if(msecond_minute==100) {
msecond_minute=99; flag1=23; } } } }
dis(msecond_minute/10,msecond_minute,msecond_second/10,msecond_second,msecond_msecond,12); break; case 25:
dis(zancun3/10,zancun3,zancun2/10,zancun2,zancun1/10,zancun1); break; default: break; } } }
//************************************************** //S1按键处理函数 void judge_s1() {
s1_bit=1;//置IO为1,准备读入收据 if(s1_bit==0)//判断是否有按键按下 {
delay_50us(1);// 延时,去除机械抖动 if(s1_bit==0)