遇到一道流水灯问题,大神请进,谢谢了

2019-07-15 16:16发布

  1. 题目是第一次一个灯流动一次,第二次两个灯流动,依次到8个灯,时间间隔为300ms。我写出的程序第3次开始灯的显示就有问题。大神帮忙改下,谢谢了。
复制代码

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
lichengjie2015
2019-07-16 06:03
不好意思,第一次发的程序有误,这是正确的,亲测无误。


#include<reg52.h>
#include<intrins.h>
void delay(int x)
{
        int i,j;
        for(i=110;i>=0;i--)
                for(j=x;j>=0;j--);
}
void main()
{
        
        int a,b;
        while(1)
        {
                a=0xfe;
                for(b=0;b<8;b++)
                {
                P1=a;
                a=_crol_(a,1);
                delay(100);
                }
                delay(100);

                a=0xfc;
                for(b=0;b<7;b++)
                {
                P1=a;
                a=_crol_(a,1);
                delay(100);
                }
                delay(100);

                a=0xf8;
                for(b=0;b<6;b++)
                {
                P1=a;
                a=_crol_(a,1);
                delay(100);
                }
                delay(100);

                a=0xf0;
                for(b=0;b<5;b++)
                {
                P1=a;
                a=_crol_(a,1);
                delay(100);
                }
                delay(100);

                a=0xe0;
                for(b=0;b<4;b++)
                {
                P1=a;
                a=_crol_(a,1);
                delay(100);
                }
                delay(100);

                a=0xc0;
                for(b=0;b<3;b++)
                {
                P1=a;
                a=_crol_(a,1);
                delay(100);
                }
                delay(100);

                a=0x80;
                for(b=0;b<2;b++)
                {
                P1=a;
                a=_crol_(a,1);
                delay(100);
                }
                delay(100);

                P1=0;
                delay(100);
        }
}

一周热门 更多>