杭州电子科技大学本科毕业论文
{
delay100ms();
if (operation_button==0) keys=2; }
if (inc_button==0) {delay100ms();
if (inc_button==0) keys=3; }
if (dec_button==0) { }
/*********************************************************************/ /*********************主函数*****************************************/ void main(void) {
float temp,j,value; unsigned char tmp; unsigned char temph; mode=0; operation=0; timer2_initialize(); temph=35; do{
Wait30us; value=adc_conv();
delay100ms(); if (dec_button==0) keys=4; }
return (keys);
tmp=value; temp=(float)tmp; j=log(temp/(255-temp));
35
杭州电子科技大学本科毕业论文
temp=j/3380+1/298.15; temp=1/temp-273.15; tmp=(unsigned char)temp;
/*******************温度超过上限报警********************************/
if(tmp>temph) else bell=0; bell=1; keys=gotkey();
/******************按键值*******************************************/ switch(keys) { case 1: mode++; if(mode==5)
mode=0;
break; case 2:
operation++;
if(operation==2) operation=0; default :break;
break; }
/*******************模式控制****************************************/ switch(mode) {
case 0://显示时间 display_time();
break; case 1: //时间校准
if(operation==0)//时校准
{display1(0,now.hour);
if (keys==3) {delay100ms();
36
杭州电子科技大学本科毕业论文
if(keys==3)
{if(++now.hour>=24)
now.hour=0;} }
if (keys==4)
}
if(keys==4)
now.hour=23;
{delay100ms();
{ if(--now.hour<0)
} }
else //分校准
{ display1(now.second,now.minute);
if (keys==3) {delay100ms();
if (keys==3)
{if(++now.minute>=60)
now.minute=0; }
}
if (keys==4) {delay100ms();
if (keys==4)
{if(--now.minute<0)
now.minute=59; }
}
}
break; case 2: //跑表显示
displaytimer(); if(operation_button==0) {delay100ms();
if(operation_button==0)
37
杭州电子科技大学本科毕业论文
{ s++;if(s==2){ s=0;} } }
if(inc_button==0)
{flag=0;timer=0,timer_second=0;}
break;
case 3: //闹铃设定 display_ring();
{ if (keys==3)
if(operation==0) {delay100ms();
if (keys==3)
}
if (keys==4)
ring_hour=0; }
{if(++ring_hour>23)
{delay100ms();
if (keys==4) {if(--ring_hour<0)
}
ring_hour=23; }
} else
{ if (keys==3) {delay100ms();
if (keys==3)
}
if (keys==4)
ring_minute=0; }
{if(++ring_minute>59)
{delay100ms();
if (keys==4)
38
杭州电子科技大学本科毕业论文
{if(--ring_minute<0)
ring_minute=59; }
}
} break;
case 4 : //显示温度 display_temp();
if(operation==0) else //设定上限温度 {display1(0,temph); if (keys==3) {delay100ms();
if (keys==3)
temph=0; }
{if(++temph>99)
}
if (keys==4)
{delay100ms();
if (keys==4) {if(--temph<0)
temph=99; }
}
} break;
default: break;
} } while(1); }
/*******************************************************************/
39