[mw_shl_code=c,true]void play()
{
u16 i;
u8 t=0;
LCD_Fill(100,20,120,40,BLUE);
while(1)
{
t=KEY_Scan(0);
switch(t)
{
case KEY0_PRES:
LCD_Fill(100,20,120,40,BLUE);
delay_ms(200);
LCD_Fill(100,20,120,40,WHITE);
delay_ms(200);
LCD_Fill(120,20,140,40,BLUE);
break;
case KEY1_PRES:
LCD_Fill(100,20,120,40,BLUE);
delay_ms(200);
LCD_Fill(100,20,120,40,WHITE);
delay_ms(200);
LCD_Fill(80,20,100,40,BLUE);
break;
}
}
[/mw_shl_code]
[mw_shl_code=c,true]}[/mw_shl_code]
[mw_shl_code=c,true]
[/mw_shl_code]
[mw_shl_code=c,true]
[/mw_shl_code]
[mw_shl_code=c,true]u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;
if(mode)key_up=1;
if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))
{
delay_ms(10);
key_up=0;
if(KEY0==0)return KEY0_PRES;
else if(KEY1==0)return KEY1_PRES;
else if(WK_UP==1)return WKUP_PRES;
}else if(KEY0==1&&KEY1==1&&WK_UP==0)key_up=1;
return 0;
}
[/mw_shl_code]
[mw_shl_code=c,true]我想实现的功能是 当按键按到key0和key1时,方块向相反的方向移动,但是每次程序烧进去后,都是按照KEY0_PRES中的内容执行,由于这是模仿按键的程序写的,不知道为什么自己这个就是执行不了,还望高手指教,谢谢!![/mw_shl_code]
|