#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar a;
uint i,j;
uchar table[]={0x7e,0xbd,0xdb,0xe7};
uint num;
void delayms(uint);
void main()
{
while(1)
{
for(i=3;i>0;i--)
{
for(num=0;num<=3;num++)
{
P1=table[num];
delayms(200);
}
for(num=3;num>=0;num--)
{
P1=table[num];
delayms(200);
}
}
for(j=3;j>0;j--)
{
P1=0X00;
delayms(200);
P1=0xff;
delayms(200);
}
}
}
void delayms(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=112;y>0;y--);
}
我写的程序是循环3遍,可是为什么流水的只循环一遍就停了??
------解决方案--------------------
for(num=3;num>=0;num--)
------解决方案--------------------
二楼正解,你的程序停在这了(也可能访问table[num]时死了)
for(num=3;num>=0;num--)
{
P1=table[num];
delayms(200);
}
因为
uint num;
永远都不会小于0