组合按键程序

* 函数名: void key_scan(void) *
* 函数功能: 按键扫描函数,执行各种按键动作 *
* 返回值: VOID *
********************************************************************************/
uchar key_scan()
{
if(key1==0)//只按下key1
{
delay_ms(20);
if(key1==0)
{
s1_on;
s2_off;
s3_off;
s4_off;
beep_on;
delay_ms(100);
beep_off;
num[3]=0x01;//油门显示10档
num[4]=0x00;//油门显示10档
while(!key1);
delay_ms(20);
while(!key1);
}
}
if(key2==0)//只按下key2
{
delay_ms(20);
if(key2==0)
{
s1_off;
s2_on;
s3_off;
s4_off;
beep_on;
delay_ms(100);
beep_off;
num[3]=0x01;//油门显示10档
num[4]=0x00;//油门显示10档
while(!key2);
delay_ms(20);
while(!key2);
}
}
if(key3==0)
{
delay_ms(50);
if((key3==0)&(key4==1)&(key8==1))//只按下key3
{
s1_off;
s2_off;
s3_on;
s4_off;
beep_on;
delay_ms(100);
beep_off;
num[3]=0x01;//油门显示10档
num[4]=0x00;//油门显示10档
while(!key3);
delay_ms(20);
while(!key3);
}
if((key3==0)&(key4==0)&(key8==0))//按下348
{
s22_on;
send_lcd_data(dis_7seg[num[0]],dis_7seg[num[1]],dis_7seg[num[2]],dis_7seg[num[3]],
1,dis_7seg[num[4]],dis_7seg[num[5]],dis_12seg[num[7]],dis_12seg[num[7]]
,dis_12seg[num[7]],alarm_led_1,alarm_led_2, key_led);
beep_on;
delay_ms(100);
beep_off;
delay_ms(100);
beep_on;
delay_ms(100);
beep_off;
delay_ms(100);
beep_on;

delay_ms(100);
beep_off;
delay_ms(100);
beep_on;
delay_ms(100);
beep_off;
while(!key3);
delay_ms(20);
while(!key3);
s22_off;
}
}
if(key4==0)
{
delay_ms(50);
if((key4==0)&(key3==1)&(key8==1))//只按下key4
{
flag_k4=1;
s1_off;
s2_off;
s3_off;
s4_on;
beep_on;
delay_ms(100);
beep_off;
TR2=~TR2;

if(cnt_k4==1)
{
num[4]=24;//用户模式U3
num[5]=3;//用户模式U3
//发送某个数据到电脑板
}
if(cnt_k4==2)
{
num[4]=24;//用户模式U1
num[5]=1;//用户模式U1
//发送某个数据到电脑板
}
if(cnt_k4==3)
{
cnt_k4=0;
num[4]=24;//用户模式U2
num[5]=2;//用户模式U2
//发送某个数据到电脑板
}
while(!key4);
delay_ms(20);
while(!key4);
flag_k4=0;
cnt_k4++;
}
if((key4==0)&(key3==0)&(key8==0))//按下348
{
s22_on;
send_lcd_data(dis_7seg[num[0]],dis_7seg[num[1]],dis_7seg[num[2]],dis_7seg[num[3]],
1,dis_7seg[num[4]],dis_7seg[num[5]],dis_12seg[num[7]],dis_12seg[num[7]]
,dis_12seg[num[7]],alarm_led_1,alarm_led_2, key_led);
beep_on;
delay_ms(100);
beep_off;
delay_ms(100);
beep_on;
delay_ms(100);
beep_off;
delay_ms(100);
beep_on;
delay_ms(100);
beep_off;
delay_ms(100);
beep_on;
delay_ms(100);
beep_off;
while(!key4);
delay_ms(20);

while(!key4);
s22_off;
}

}
if(key5==0)
{
delay_ms(50);
if((key5==0)&(key8==1))//只按下key5
{
s18=!s18;
beep_on;
delay_ms(100);
beep_off;

while(!key5);
delay_ms(20);
while(!key5);
}
if((key8==0)&(key5==0))//按下58
{
s22_on;
send_lcd_data(dis_7seg[num[0]],dis_7seg[num[1]],dis_7seg[num[2]],dis_7seg[num[3]],
1,dis_7seg[num[4]],dis_7seg[num[5]],dis_12seg[num[7]],dis_12seg[num[7]]
,dis_12seg[num[7]],alarm_led_1,alarm_led_2, key_led);
beep_on;
delay_ms(100);
beep_off;
delay_ms(100);
beep_on;
delay_ms(100);
beep_off;
while(!key5);
delay_ms(20);
while(!key5);
s22_off;
}

}
if(key6==0)//只按下key6
{
delay_ms(20);
if(key6==0)
{
s19=!s19;
beep_on;
delay_ms(100);
beep_off;

while(!key6);
delay_ms(20);
while(!key6);
}
}
if(key7==0)//只按下key7
{
delay_ms(20);
if(key7==0)
{
s20=!s20;
s21=!s21;
beep_on;
delay_ms(100);
beep_off;
while(!key7);
delay_ms(20);
while(!key7);
}
}
if(key8==0)
{
delay_ms(50);
if((key8==0)&(key5==1)&(key3==1)&(key4==1))//只按下key8
{
s22_on;
send_lcd_data(dis_7seg[num[0]],dis_7seg[num[1]],dis_7seg[num[2]],dis_7seg[num[3]],
1,dis_7seg[num[4]],dis_7seg[num[5]],dis_12seg[num[7]],dis_12seg[num[7]]
,dis_12seg[num[7]],alarm_led_1,alarm_led_2, key_led);
beep_on;
delay_ms(100);
beep_off;
while(!key8);
delay_ms(20);
while(!key8);
s22_off;
}
if((key8=

=0)&(key5==0)&(key4==1)&(key3==1))//按下key58
{
s22_on;
send_lcd_data(dis_7seg[num[0]],dis_7seg[num[1]],dis_7seg[num[2]],dis_7seg[num[3]],
1,dis_7seg[num[4]],dis_7seg[num[5]],dis_12seg[num[5]],dis_12seg[num[5]]
,dis_12seg[num[5]],alarm_led_1,alarm_led_2, key_led);
beep_on;
delay_ms(100);
beep_off;
delay_ms(100);
beep_on;
delay_ms(100);
beep_off;
while(!key8);
delay_ms(20);
while(!key8);
s22_off;
}
if((key8==0)&(key5==1)&(key4==0)&(key3==0))//按下key348
{
s22_on;
send_lcd_data(dis_7seg[num[0]],dis_7seg[num[1]],dis_7seg[num[2]],dis_7seg[num[3]],
1,dis_7seg[num[4]],dis_7seg[num[5]],dis_12seg[num[7]],dis_12seg[num[7]]
,dis_12seg[num[7]],alarm_led_1,alarm_led_2, key_led);
beep_on;
delay_ms(100);
beep_off;
delay_ms(100);
beep_on;
delay_ms(100);
beep_off;
delay_ms(100);
beep_on;
delay_ms(100);
beep_off;
delay_ms(100);
beep_on;
delay_ms(100);
beep_off;
while(!key8);
delay_ms(20);
while(!key8);
s22_off;
}

}
key_value=~P2;
return key_value;
}

相关文档
最新文档