

代码
#include<reg51.h>
sbit LED1=P1^0;
sbit LED2=P1^1;
sbit S1=P3^0;
sbit S2=P3^1;
sbit S3=P2^3;
void delay(unsigned int i)
{
unsigned int k;for(k=0;k<i;k--);}
void main()
{
bit left,right;while(1){if(S3==0){LED1=left;LED2=right;LED1=S3;LED2=S3;delay(200);LED1=1;LED2=1;delay(200);}else{P1=0xff;left=S1;right=S2;LED1=left;LED2=right;delay(200);LED1=1;LED2=1;delay(200);}}}
把问题描述清楚
void delay(unsigned int i)
{
unsigned int k;
for(k=0;k<i;k--);
}
不是k--
是k++
bit left,right;
一般变量初始化需要赋值,当然不赋也可以
再,代码的格式要好,别人才会取看,乱七八糟的没人愿意看,你只有第一个大括号缩进了,第二第三都没有。
最后,你这个控制逻辑我确实不明白,