初级会员

- 积分
- 57
- 金钱
- 57
- 注册时间
- 2012-6-7
- 在线时间
- 9 小时
|

楼主 |
发表于 2013-1-21 10:09:32
|
显示全部楼层
再附上一份程序代码,省去大家下载附件的时间:
void mode1(void)
{
int key1=0;
int key2=0;
LED1_ON;
LED2_ON;
while(1)
{
//如果1号输入有效或串口发送数据0x05或向下信号有效
if(YL1&&key1==0)
{
Delay(1000);
LED1_ON;
LED2_OFF;
key1=1;
key2=1;
}
if(GET_DOW)
{
Delay(20);
if(GET_DOW&&key1==0)
{
Delay(1000);
LED1_ON;
LED2_OFF;
key1=1;
key2=1;
}
}
if(((rx_data==0x05)&&key2==0)&&key1==0)
{
Delay(1000);
LED1_ON;
LED2_OFF;
key1=1;
key2=1;
}
//如果1号输入有效或串口发送数据0x05或向下信号有效后,如果3号输入号有效或串口发送数据0x06或向左键有效
if((YL3)&&(key1==1||key1==3))
{
key1=2;
key2=2;
LED1_OFF;
LED2_ON;
}
if(GET_LFT)
{
Delay(20);
if((GET_LFT)&&(key1==1||key1==3))
{
key1=2;
key2=2;
LED1_OFF;
LED2_ON;
}
}
if((((rx_data==0x06)&&(key2==1||key2==3)))&&(key1==1||key1==3))
{
key1=2;
key2=2;
LED1_OFF;
LED2_ON;
}
//如果3号输入号有效或串口发送数据0x06或向左键有效后,如果2号信号有效或串口发送数据0x07或向右键有效
if((YL4)&&key1==2)
{
key1=3;
key2=3;
LED1_ON;
LED2_ON;
}
if(GET_RIT)
{
Delay(20);
if(GET_RIT&&key1==2)
{
key1=3;
key2=3;
LED1_ON;
LED2_ON;
}
}
if(((rx_data==0x07)&&key2==2)&&key1==2)
{
key1=3;
key2=3;
LED1_ON;
LED2_ON;
}
//如果停止信号有效或串口发送数据0x08或向上键有效
if(YL2&&(key1==1||key1==2||key1==3))
{
key1=0;
key2=0;
LED2_OFF;
LED1_OFF;
}
if(GET_UP)
{
Delay(20);
if((GET_UP)&&(key1==1||key1==2||key1==3))
{
key1=0;
key2=0;
LED2_OFF;
LED1_OFF;
}
}
if(((rx_data==0x08)&&(key2==1||key2==2||key2==3))&&(key1==1||key1==2||key1==3))
{
key1=0;
key2=0;
LED2_OFF;
LED1_OFF;
}
if(rx_flag==1)
{
rx_flag=0;
USART2_Putc(rx_data);
USART2_Puts("\r\n 串口2发送数据");
}
}
} |
|