break; {
while(KEY5==0); }
case shoudong:if(KEY1==0) //状态转换时做些相应的处理
state=zidong; auto_speed(); LED_shoudong=1;LED_zidong=0; mingjiao(); while(KEY1==0); } {
JDQ2=1;JDQ3=1;JDQ1=0;//关断其它
LED_zhong=LED_man=1;LED_kuai=0; mingjiao(); while(KEY2==0); }
else if(KEY3==0)//中2 {
JDQ1=1;JDQ3=1;JDQ2=0;//关断其它 LED_kuai=LED_man=1;LED_zhong=0; mingjiao(); while(KEY3==0); }
else if(KEY4==0)//慢3 {
JDQ1=1;JDQ2=1;JDQ3=0;//关断其它 LED_zhong=LED_kuai=1;LED_man=0; mingjiao(); while(KEY4==0); }
else if(KEY5==0)//停4 {
weak_default(); mingjiao(); while(KEY5==0); }
19
else if(KEY2==0)//快1
break;
case zidong: if(KEY1==0) //状态转换时做些相应的处理 {
state=dingshi; LED_zidong=1;
flag_dingshi_delay=1;dingshi_delay=100;//开始延时 time_stor=100;// mingjiao(); while(KEY1==0); } {
JDQ2=1;JDQ3=1;JDQ1=0;//关断其它
LED_zhong=LED_man=1;LED_kuai=0; state=shoudong;
LED_zidong=1;LED_shoudong=0;
else if(KEY2==0)//快1
mingjiao(); while(KEY2==0); }
else if(KEY3==0)//中2 {
JDQ1=1;JDQ3=1;JDQ2=0;//关断其它 } {
JDQ1=1;JDQ2=1;JDQ3=0;//关断其它 }
LED_zhong=LED_kuai=1;LED_man=0; state=shoudong;
LED_zidong=1;LED_shoudong=0; mingjiao();
while(KEY4==0); LED_kuai=LED_man=1;LED_zhong=0; state=shoudong;
LED_zidong=1;LED_shoudong=0; mingjiao();
while(KEY3==0);
else if(KEY4==0)//慢3
20
else if(KEY5==0)//停4
{ weak_default(); mingjiao(); while(KEY5==0); } break; case weak: if(KEY1==0) { state=zidong;LED_zidong=0;
wendu_stor=100;//两个不可能值 time_stor=100;//两个不可能值
auto_speed();
mingjiao(); while(KEY1==0); } break; } }
time_out: ; }
/*************************************************************************************
定时器1中断服务子程序
功能: 用于定时
0.060s
*************************************************************************************/
void timer1(void) interrupt 3 {
TH1=0x15;TL1=0xa0; //
//红外线到记时
EX0=0;
if(hwx_jishu1<999){ hwx_jishu1++; } else {
hwx_jishu1=0; hwx_delay--;
21
if(hwx_delay==0){ weak_default();} }
EX0=1; //1分钟定时
if(flag_dingshi==1) {
if(dingshi_jishu3>0){dingshi_jishu3--;} else
{ dingshi_jishu3=1000;
if(dingshi_time>1){dingshi_time--;} else{weak_default();} } } //5秒延时
if(flag_dingshi_delay==1) {
if(dingshi_delay>1)dingshi_delay--; else {
state=shoudong;flag_dingshi_delay=0;dingshi_delay=100; LED_shoudong=0;
time_stor=100;wendu_stor=100; // mingjiao(); } }
//显示和温控 switch(state) {
case dingshi://在定时的时候只显示时间
if(time_stor!=dingshi_time){display(dingshi_time,1);time_stor=dingshi_time;} // break;
case shoudong:
case zidong: //是否有定时,有则交替显示温度和时间,没有则只显示温度 if(flag_dingshi!=0)// { static byte jiaoti_jishu2=0;
22
static bit flag_jiaoti=0; if(jiaoti_jishu2<49){jiaoti_jishu2++;} else {flag_jiaoti=~flag_jiaoti;jiaoti_jishu2=0;} if(flag_jiaoti!=0) { if(time_stor!=dingshi_time)
{display(dingshi_time,1);time_stor=dingshi_time;wendu_stor=100;}//显示时间
} else {
if(wendu_stor!=wendu) {display(wendu,0);wendu_stor=wendu;time_stor=100;}//显示温度
}
} else { }
//温度控制速度
if(wendu_stor!=wendu){display(wendu,0);wendu_stor=wendu;}// 显示温度
if(state==zidong) { switch(wendu) { case low_wen: JDQ1=1;JDQ2=1;JDQ3=1;
LED_zhong=LED_man=LED_kuai=1;//ting zhi break; case mid_wen: JDQ1=1;JDQ2=1;JDQ3=0;
LED_zhong=LED_kuai=1;LED_man=0;//man break; case hig_wen: JDQ1=1;JDQ3=1;JDQ2=0;
LED_kuai=LED_man=1;LED_zhong=0;//zhong break;
23