#include<reg51.h>
void main()
{
int i,j;
P0=0x00;
for(i=0;i>=0;i++)
{
switch(j=i%8)
{
case 0:P0=0x01;break;
case 1:P0=0x02;break;
case 2:P0=0x04;break;
case 3:P0=0x08;break;
case 4:P0=0x10;break;
case 5:P0=0x20;break;
case 6:P0=0x30;break;
case 7:P0=0x80;break;
}
}
}
这是我用C编写出来的程序,不知道错在哪里,下载到单片机后单片机的流水灯总是先亮a管,接着除了g管之外全亮了,请高手帮忙解答一下,谢谢
for(i=0;i>=0;i++)
{switch(j=i%8)
{
case 0:P0=0x01;break;
。。。。。。
case 7:P0=0x80;break;}
for(k=50000;k>0;k--)
{}
}
你好,我加了延时之后,发现流水灯工作次序是:先亮a管,接着亮b、c、d、e、f管,接着同时亮ef管,最后亮小数点。请问这是为什么呢?
case 6:P0=0x30;delay_ms(500);break;
改成 0x40就好了!!!!.你写成二进制 就知道什么原因了
for(i=0;i>=0;i++)
{switch(j=i%8)
{
case 0:P0=0x01;break;
。。。。。。
case 7:P0=0x80;break;}
for(k=50000;k>0;k--)
{}
}
你好,我加了延时之后,发现流水灯工作次序是:先亮a管,接着亮b、c、d、e、f管,接着同时亮ef管,最后亮小数点。请问这是为什么呢?
你延时怎么加的,给我你程序
追问下面那个for程序可以吗?
for(k=50000;k>0;k--)
{}
这个。谢谢你,我知道哪里错了。
for这样延时可以,但时间不长,建议使用嵌套for循环.最后你找出来是哪儿错了?
本回答被提问者采纳