学弟,别生气,你的提问确实有些特别。程序格式混乱,按键电平没有说明。这样的格式看着让人头疼。而且,你的注释和程序功能不一致。c=0;//如果按键持续按住,跳出FOR循环之后c的值是250,必须将它清零,保证下次开或关所花时间依然为250msfor(c=0;c这是一个正确的循环清零方法。如果250ms后按键按下的状态改变LED状态,实现开关,则有:if(key==0){b=~b;LED=b;while(key==0){}//一直将按键按下,程序就停留在此处,直到放手。这个段代码上面的for循环没有任何关系,那个for循环除了让你的按键感觉卡顿外,没有任何作用。b=~b;LED=b;b完全多余,直接用LED=~LED;就可以了。修改b应该是可以改变的,检查下电路,或者看一下你的程序是否烧写成功了吧。正确设置LED初始状态为熄灭的方法是,在初始化代码中将LED设置为0或LOW。确保在程序开始时LED处于熄灭状态,可以避免在程序启动时产生不必要的闪烁。如果你希望LED在程序启动时保持熄灭状态,可以在初始化部分加入如下代码:LED=0;//或者LED=LOW;这样,LED初始状态就会是熄灭的。检查你的电路连接是否正确,LED引脚是否正确设置为输出模式。确保你的单片机开发环境没有问题,程序正确烧写到芯片中。希望这些建议对你有所帮助。