主要想测试一下if语句,刚学if,不知道if的格式是啥,应该对了,但是查表显示,在for循环的第一句P0=table【i】也就是0xfe结束后,delay时,8个端口全部一下子从高电平(不亮)转变为低电平(亮),为什么呢?
#include<reg52.h>
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
delay()
{
unsigned int i;
for(i=0;i<30000;i++);
}
unsigned char j;
void main(void)
{
j=1;
while(j)
{
unsigned char i;
for(i=0;i<8;i++);
{
P1=table[i];
delay();
if (i==6)
j=0;
else;
j=1;
}
}
P0=table[7];
delay();
}
我只是想试一试if语句,想每次在i=6的时候中断,然后跳出while循环,在后面执行P1=table【i】的语句
跟这里没关系,能编译通过,把这里都删了,前面的查表还是突然全部变低电平,不知道为啥
把分号删除了,确实少了一个warning,但是仍然不行。
好了!这个问题解决了。但是当i=6的时候,j应该=0,也就是while循环应当结束了,但是仍然不跳出while循环。也就是在子循环里面不停的循环而不跳出
if (i==6)
j=0;
break;