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

2019-07-15 16:16发布

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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
赤焰火狐
2019-07-16 19:32
本人亲测,符合你的要求。
#include<reg52.h>
#include<intrins.h>

#define uint unsigned int
#define uchar unsigned char

uchar code dat[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};

void Delayms(uint n)
{
        uint i,j;
        for(i=n;i>0;i--)
                for(j=115;j>0;j--);
}

void main()
{
        uchar a,b,c;
        while(1)
        {
                for(a=0;a<7;a++)
                {
                        c=dat[a];
                        for(b=8-a;b>0;b--)
                        {
                                P0=c;
                                Delayms(300);
                                c=_crol_(c,1);
                        }
                }
                a=4;
                while(a--)
                {
                        P0=0x00;
                        Delayms(300);
                        P0=~P0;
                        Delayms(300);
                }
        }
}

一周热门 更多>