|
#include <reg52.h>
sbit LED=P1^0;
sbit KEY=P1^1;
char st=0; //1-按键按下,0-按键释放
void delay(unsigned int x)
{
while(x--);
}
void LED_TASK()
{
static unsigned char i=0;
if(i++<50)
return;
i=0;
if(st)
{
LED=!LED; //灯闪烁
}
else
{
LED=1; //灯灭
}
}
void KEY_SCAN()
{
static char i=0,c=0;
if(KEY==0)
{
if(i==0)
{
if(KEY==0&&c++>50) //
{
i=1;
st=1; //按键按下
}
}
}
else //按键释放,相应变量清零
{
i=0;
c=0;
st=0;
}
}
void main()
{
while(1)
{
KEY_SCAN();
LED_TASK();
delay(10); //延时函数
}
}
|
|