这是题目
这是我的解答
#include"reg51.h"
#define uchar unsigned char
sbit l0=P2^0; sbit l1=P2^1;
sbit l2=P2^2; sbit l3=P2^3;
sbit l4=P2^4; sbit l5=P2^5;
sbit l6=P2^6; sbit l7=P2^7;
void delay()
{
uchar t,p;
for(p=0;p<=255;p++)
for(t=0;t<=255;t++);
}
void jishu()
{
l0=0; delay(); l0=1;
l2=0; delay(); l2=1;
l4=0; delay(); l4=1;
l6=0; delay(); l6=1;
}
void oushu()
{
l1=0; delay(); l1=1;
l3=0; delay(); l3=1;
l5=0; delay(); l5=1;
l7=0; delay(); l7=1;
}
void jiaoti()
{
l0=0; l2=0; l4=0; l6=0; delay();
l0=1; l2=1; l4=1; l6=1;
l1=0; l3=0; l5=0; l7=0; delay();
l1=1; l3=1; l5=1; l7=1;
}
void main()
{
uchar state;
do
{ P1=0xff; state=P1; state=state&0x03;//读取现在开关状态
switch(state)
{
case 0: P2=~0x00; break; //全闭,全灭
case 1: jishu(); break;//1闭,0开,奇数灯流水
case 2: oushu(); break;//1开,0闭,偶数灯流水
case 3: jiaoti(); break;//全开,奇偶交替亮
}
} while(1);
}
这个解答语法和逻辑没有错误,在模拟的时候得不到理想的效果,尝试修改失败,求各位大神帮忙瞅瞅怎么纠正,感谢