找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机流水灯的叠放程序 求思路

查看数: 3801 | 评论数: 16 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-3-15 20:31

正文摘要:

今天正在写流水灯程序我想让流水灯 先亮P2.0流到P2.7停下来常亮, 然后再从P2.0流到P2.6常亮, 再从P2.0流到P2.5, 现象相当于一颗一颗叠起来, 直到所有的灯亮完。 第一次发帖不知道我想表达的问题描述清除 ...

回复

ID:893973 发表于 2021-3-19 16:18
你碰到了什么问题呢
ID:89515 发表于 2021-3-19 01:36
mengzhixinheng 发表于 2021-3-17 13:55
uchar tab[]={0,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe};
for(j=8;j>0;j--)
for{k=0;k

uchar j,k,z;
for(j=8;j>0;j--)
{
     for{k=0;k<j;k++}
    {
            P2=(0x01<<k)|z;
             delay(500);
     }
     z=P2;
}
ID:378729 发表于 2021-3-18 19:16
光说不练 发表于 2021-3-16 17:51
8乘8等于64种花样,即64个数据,每次读出延时一下就能实现。

这个好,简洁明了
ID:89515 发表于 2021-3-18 00:28
1045964948 发表于 2021-3-17 22:33
但是流到第八位没办法常亮,我再思考思考,谢谢

改j数组加0xff. 这个已经没难度了吧!!!
ID:876099 发表于 2021-3-17 22:35
感谢各位大神
ID:876099 发表于 2021-3-17 22:35
mengzhixinheng 发表于 2021-3-17 13:55
uchar tab[]={0,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe};
for(j=8;j>0;j--)
for{k=0;k

好了可以了,非常感谢
ID:876099 发表于 2021-3-17 22:33
mengzhixinheng 发表于 2021-3-17 13:55
uchar tab[]={0,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe};
for(j=8;j>0;j--)
for{k=0;k

但是流到第八位没办法常亮,我再思考思考,谢谢
ID:876099 发表于 2021-3-17 22:20
mengzhixinheng 发表于 2021-3-17 13:55
uchar tab[]={0,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe};
for(j=8;j>0;j--)
for{k=0;k

谢谢我去看看
ID:89515 发表于 2021-3-17 13:55
uchar tab[]={0,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe};
for(j=8;j>0;j--)
for{k=0;k<j;k++}
{
       P2=(0x01<<k)|tab(8-j);
        delay(500);
}
注意:逻辑没错,程序没编译,自己修改
ID:163285 发表于 2021-3-16 17:51
8乘8等于64种花样,即64个数据,每次读出延时一下就能实现。
ID:693038 发表于 2021-3-16 11:07
unsigned char a=0x01;
P2 = 0;
for(i=0;i<8;i++){
P2=P2|(a<<i);
delay_1s();
}
ID:876099 发表于 2021-3-15 23:39
yzwzfyz 发表于 2021-3-15 22:33
不要用直接用:P2.0-7
先设8个灯为:L1-L8,将你需的显示的形式一一列出:


这个能说详细一点吗谢谢
ID:876099 发表于 2021-3-15 23:39
啤酒瓶子老大 发表于 2021-3-15 23:31
可以用一个数组。LED[]={0X01,......}
FOR
{然后P2=LED[];}

这个能说详细一点吗谢谢
ID:230742 发表于 2021-3-15 23:31
可以用一个数组。LED[]={0X01,......}
FOR
{然后P2=LED[];}
明白了吗。
ID:123289 发表于 2021-3-15 22:33
不要用直接用:P2.0-7
先设8个灯为:L1-L8,将你需的显示的形式一一列出:

第一步:L3,4 亮1秒
第二步:L1,2,5,6  亮1秒
第三步:……
……
完成上面程序后,再决定L1-8是哪张灯,这样做很机动。
方法举例:定义L1为P0.6……,将8张灯定义一下,就可以了。

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

Powered by 单片机教程网

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