提上键控代码供与参考……
//无线按键
void key_scan()
{
uchar a;
if(study_key==1)
{
// delayms(10);
beep_key();
// if(study_key==1)
// {
study_led=~study_led;
while(study_key);
// }
study_key=0;
}
if(mode_key==0)
{
// delayms(10);
beep_set();
// if(mode_key==0)
// {
mode++;
while(!mode_key);
switch(mode)
{ //1111 1110 & 1011 1110
case 1: P1=0xbe; break; //强度指示
case 2: P1=0xbd;sbf_strength=strength; break; //时间指示 保存强度设置
case 3: P1=0xbb;sbf_time=time; break; //方式指示 保存时间设置
case 4: P1=0xff;sbf_stye=stye;wash(); break; //保存方式设置 准备洗衣
// case 5: P1=0xff;mode=4;sbf_stye=stye;wash(); break;
}
// }
}
if(mode!=0)
{
if(order_key==0)
{
// delayms(10);
beep_key();
// if(order_key==0)
// {
while(!order_key);
if(mode==1) //强度设置
{
// strength=strength+3;
a++;
switch(a)
{
case 1: P1=0xf6;strength=3; break; //柔 右3s 关1s 左3s 关1s
case 2: P1=0xee;strength=6; break; //低 6 1 6 1
case 3: P1=0xde;strength=9; break; //中 9 1 9 1
case 4: P1=0xbe;strength=40; break; //高 x 0 x 0
case 5: a=1; P1=0xf6;strength=3; break;
}
}
if(mode==2) //时间设置
{
time=time+5;
switch(time)
{
case 5: P1=0xf5; break; //5min
case 10: P1=0xed; break; //10min
case 15: P1=0xdd; break; //15min
case 20: P1=0xbd; break; //20min
case 25: time=5; P1=0xf5; break;
}
}
if(mode==3) //方式设置
{
stye++;
switch(stye)
{
case 1: P1=0xf3; break; //3分钟初洗+15分钟浸泡+洗涤+结束
case 2: P1=0xeb; break; //3分钟初洗+30分钟浸泡+洗涤+结束
case 3: P1=0xdb; break; //15分钟浸泡+洗涤+结束
case 4: P1=0xbb; break; //洗涤+结束
case 5: stye=1; P1=0xf3; break;
}
}
// }
}
}
}
//正式洗衣程序
void wash()
{
IT1=1;
EX1=1; //在洗衣状态下才能 开外中断1 学习键用
switch(sbf_stye)
{
case 1: wait(3,15); break; //3分钟初洗,15分钟浸泡 st_time=3;qp_time=15;
case 2: wait(3,30); break; //3分钟初洗,30分钟浸泡 st_time=3;qp_time=30;
case 3: wait(0,15); break; //0分钟初洗,15分钟浸泡 st_time=0;qp_time=15;
case 4: wait(0,0); break; //0分钟初洗,0分钟浸泡 st_time=0;qp_time=0;
}
}