单片机c语言呢编程问题:我要实现用一个按键控制一个LED的亮灭,按一次亮,再按一次灭,再按亮…………

2024-11-05 05:25:34
推荐回答(5个)
回答1:

你没有松手监测呀!就是在按键处理程序后要加一个while(k1!=0);就是只有你松开按键后才认为本次按键执行完毕,不然就会一直重复执行按键按下的程序,那么你的d1一直就会执行亮灭操作!

回答2:

你没要延迟去抖动
void delay(uint z)
{ int x,y;
for(x=z;x>0,x--)
for(y=110;y>0;y--)
}
delay(20) 在你的按键那个地方延迟20就好了
if(s1==0)
delay(20)
if(s1==0)
d1=!d1

回答3:

while(!k1);//等待放开才继续.

回答4:

#include
sbit P32=P3^2;
main ()
{int x,i;
while(1)
{ if (P32==0)
{for (i=0;i<=30000;i++);
if(P32==0)
{x++;
x=x%2;
}
}
if(x==1)
P0=0x00;
else
P0=0xff;
}
}

回答5:

自己的号……