找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1873|回复: 3
收起左侧

单片机16路流水灯编程问题求大佬指导

[复制链接]
ID:408241 发表于 2018-10-11 19:21 | 显示全部楼层 |阅读模式
大佬求指导  初学者   还不是很明白

两个要求在一个程序里

两个要求在一个程序里
回复

使用道具 举报

ID:386381 发表于 2018-10-11 21:32 来自手机 | 显示全部楼层
可以用最笨最简单的方法写呀,先定义16个Io口,然后写个延时函数,再然后在主函数里,让每个io口=0延时一会儿,后面就反过来等1延时一会儿,从灭到亮从亮到灭循环

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:231500 发表于 2018-10-11 22:44 | 显示全部楼层
最简单的顺序编程啊,或者你可以试着位与位活进行八位操作,

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:164602 发表于 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);
        }
}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表