keil-按键控制4种LED MODE STM32F107神舟四号-闪烁 流水灯 加减
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
按键控制4种LED MODE
//-------------------------------------------------
//功能: 按键控制LED闪烁(库)
//版本号:v0.1.1
//日期:20121222
//-------------------------------------------------
#include "stm32f10x.h"
#include "led.h"
#include "key.h"
#include "delay.h"
////////////////////////////////////////////////////////////////////////////////////
//-------------------------------------------------
//主程序
//-------------------------------------------------
int main(void)
{
int i=0;
int led1,led2,led3,led4;
TYPEDEF_KEY key = KEY_NULL;
led1=0;
led2=0;
led3=0;
led4=0;
LedConfig();
KeyConfig();
while(1)
{
key=GetKey();
if(key == KEY_1)
{i++;
}
switch(i%4)
{
case 0:
LedTurnOn(LED_ALL); Delay(5000000); LedTurnOff(LED_ALL); Delay(5000000); LedTurnOn(LED_ALL); Delay(5000000); LedTurnOff(LED_ALL);
break;
};
case 1:
{
LedTurnOn(LED_1);
Delay(2000000);
LedTurnOff(LED_1);
LedTurnOn(LED_2);
Delay(2000000);
LedTurnOff(LED_2);
LedTurnOn(LED_3);
Delay(2000000);
LedTurnOff(LED_3);
LedTurnOn(LED_4);
Delay(2000000);
LedTurnOff(LED_4);
break;
};
case 2:
{
LedTurnOn(LED_4);
Delay(2000000);
LedTurnOff(LED_4);
LedTurnOn(LED_3);
Delay(2000000);
LedTurnOff(LED_3);
LedTurnOn(LED_2);
Delay(2000000);
LedTurnOff(LED_2);
LedTurnOn(LED_1);
Delay(2000000);
LedTurnOff(LED_1);
break;
};
case 3:
key=GetKey();
if(key==KEY_2)
{
if(led1==0)
{
led1++;
LedTurnOn(LED_1);
}
else
{
led1=0;
LedTurnOff(LED_1);
if(led2==0)
{
led2++;
LedTurnOn(LED_2);
}
else
{
led2=0;
LedTurnOff(LED_2);
if(led3==0)
{
led3++;
LedTurnOn(LED_3);
}
else
{
led3=0;
LedTurnOff(LED_3);
if(led4==0)
{
led4++;
LedTurnOn(LED_4);
}
else
{
led4=0;
LedTurnOff(LED_4);
}
}
}
}
if(key==KEY_3)
{
if(led1==1)
{
led1--;
LedTurnOff(LED_1);
}
else
{
led1=1;
LedTurnOn(LED_1);
if(led2==1)
{
led2--;
LedTurnOff(LED_2);
}
else
{
led2=1;
LedTurnOn(LED_2);
if(led3==1)
{
led3--;
LedTurnOff(LED_3);
}
else
{
led3=1;
LedTurnOn(LED_3);
if(led4==1)
{
led4--;
LedTurnOff(LED_4);
}
else
{
led4=1;
LedTurnOn(LED_4);
}
}
}