我这是哪里出问题了呀

img

img


代码
#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;
一般变量初始化需要赋值,当然不赋也可以

再,代码的格式要好,别人才会取看,乱七八糟的没人愿意看,你只有第一个大括号缩进了,第二第三都没有。
最后,你这个控制逻辑我确实不明白,