小改一下:
void main()
{
unsigned char k;
while(1)
{
for(k=0;k<8;k++)
{
P0=tab[k];
delayms(500);
if(k==7)
for(;k<0xff;--k)
{
P0=tab[k];
delayms(500);
}
}
}
}
k>=0?
K 的类型是unsigned char型。
这个类型的数据永远是大于等于0的!!
即使等于零以后再减一,会变成255,更加大于零。所以你的程序是不是一个循环以后就挂了?
一般P0口做输出,需要加上拉电阻,10K左右。。。
一个循环就能解决问题了,左移或者右移都可以啊。