怎么用一个按键按一次小灯不停闪烁,再按一次灭、
{
while(1)
{
while(!key2)
delay(20);
while(!key2);{you = 0;delay(400);you = 1;delay(300);}
}
}
这是我写的,开了就关不掉。
嵌套不对 记住 C语言只有一个main,main里面就一个while
int main (void)
{
unsigned char i;
unsigned char flag_key;
while(1)
{
if(key1 == 0)
{
delay(10); //消除抖动
if(key1 == 0)
{
i++;
if(i>2)
{
i = 0;
flag_key = 0;
}
else
{
flag_key = 1;
}
}
else
{
}
}
if(flag==1)
{
LED = 0; //0灯亮
delay(50);
LED = 1; //1灯灭
delay(50);
}
else
{
LED = 1; //1灯灭
}
}
}
这个 if(flag==1)是什么?
这个i是做什么用的?另外,对于LED闪烁,改成:开头定义LED=0,然后闪烁那里写成 LED=!LED;delay(500); 可以不?
对此不了解 学习一下
逻辑对的 ,有一点点小错
非常感谢分享!
你用了死循环
很明显,是笔误,不是flag,应该是flag_key
i是用于计数的,二楼的程序有点小错误,他的逻辑应该是当i为奇数和偶数时flag_key进行状态转换,然后根据flag_key的状态改变LED灯的亮灭,你的思路是可以得,但不是LED =! LED; 语法不对,应该是 LED = ~LED;
这个是标志位 跳转用的
你提醒了我 取反也是可以的
恩 对的
恩 就是这个意思 其实最好用定时器做
嗯,不过估计小编也是刚入门,计数延时更容易理解些
我觉得用LabVIEW也很好实现
晓得了。谢谢
这个当然关不掉了,检测到key2==0以后 就直接进入了while(1) 死循环了
试过了,还是不行,有大神指教下吗?
我觉得用LabVIEW也很好实现
弄好了,谢谢大家!