当前位置: 代码迷 >> 单片机 >> 小疑点求教
  详细解决方案

小疑点求教

热度:208   发布时间:2016-04-28 16:32:07.0
小问题求教
#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
  相关解决方案