标题: 单片机16路流水灯编程问题求大佬指导 [打印本页]

作者: 初学者9527    时间: 2018-10-11 19:21
标题: 单片机16路流水灯编程问题求大佬指导
大佬求指导  初学者   还不是很明白

7}34)X8_93`A[I`F2NK~SJT.png (54.52 KB, 下载次数: 35)

两个要求在一个程序里

两个要求在一个程序里

作者: 文凤轩    时间: 2018-10-11 21:32
可以用最笨最简单的方法写呀,先定义16个Io口,然后写个延时函数,再然后在主函数里,让每个io口=0延时一会儿,后面就反过来等1延时一会儿,从灭到亮从亮到灭循环
作者: 13122031726    时间: 2018-10-11 22:44
最简单的顺序编程啊,或者你可以试着位与位活进行八位操作,
作者: HC6800-ES-V2.0    时间: 2018-10-12 08:46
很简单嘛。看我的——
#include <reg51.h>

#define LED0 P0
#define LED1 P2

void Delay10ms(unsigned char c)
{
    unsigned char a,b;
    for(;c>0;c--)
        for(b=38;b>0;b--)
            for(a=130;a>0;a--);
}

void main ()
{
        unsigned char i;
        while (1)
        {
//两组高四位交替亮灭3次
                for (i=0;i<3;i++)
                {
                        LED0=0x0f;
                        LED1=0xff;
                        Delay10ms(50);
                        LED0=0xff;
                        LED1=0x0f;
                        Delay10ms(50);
                }
                LED0=0xff;
                LED1=0xff;
//从P00开始,逐步全亮
                for (i=0;i<8;i++)
                {
                        LED0=LED0<<1;
                        Delay10ms(50);
                }
                for (i=0;i<8;i++)
                {
                        LED1=LED1<<1;
                        Delay10ms(50);
                }
//全亮开始逐个熄灭
                LED0=LED0+1;
                Delay10ms(50);
                LED0=LED0+2;
                Delay10ms(50);
                LED0=LED0+4;
                Delay10ms(50);
                LED0=LED0+8;
                Delay10ms(50);
                LED0=LED0+16;
                Delay10ms(50);
                LED0=LED0+32;
                Delay10ms(50);
                LED0=LED0+64;
                Delay10ms(50);
                LED0=LED0+128;
                Delay10ms(50);
                LED1=LED1+1;
                Delay10ms(50);
                LED1=LED1+2;
                Delay10ms(50);
                LED1=LED1+4;
                Delay10ms(50);
                LED1=LED1+8;
                Delay10ms(50);
                LED1=LED1+16;
                Delay10ms(50);
                LED1=LED1+32;
                Delay10ms(50);
                LED1=LED1+64;
                Delay10ms(50);
                LED1=LED1+128;
                Delay10ms(50);
        }
}




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1