你的位置:大电流电感 > 交流中心

51单片机做流水灯,灯不亮。

2023-09-24 09:04:59      点击:
上一篇:这个PID怎么调节?最近学了流水灯。然后搭建了电路,但是没有流水的效果。LED灯都不亮。伙伴们帮忙看看,问题出在哪了?下面是程序和电路图。

#include
#include
#define led P2
typedef unsigned char uch;
typedef unsigned int uint;

void delay(uch i)                //延时函数
{
        while(i--);
}
void main()
{
        uch i;
        led=0x01;
        delay(50000);
        while(1)
        {
                for(i=0;i<7;i++)                //左循环
                {
                        led=_crol_(led,1);
                        delay(50000);
                }
                for(i=0;i<7;i++)           //右循环
                {
                        led=_cror_(led,1);
                        delay(50000);
                }
        }
}





改进了一下电路,试着在Multisim上跑了一下(采用8052单片机),还算可以,见图:


代码如下:

#include

void delay(unsigned int i)
{
        while(i--);
}
void main()
{
        P2=0x01;
        while(1)
        {
                while(P2!=0x80)
                {
                        P2=P2<<1;
                        delay(10);
                }
                while(P2!=0x01)
                {
                        P2=P2>>1;
                        delay(10);
                }
        }
}


led是否为甚亮,电流超出单片驱动能力


最简单的 把亮灯值做一个数组用for循环一条搞定


先查看一下程序是否正确,把单片机31脚接电源试试


先查看一下程序是否正确,把单片机31脚接电源试试


是不是U2选成共阳型LED了?


王栋春 发表于 2017-6-24 21:27
led是否为甚亮,电流超出单片驱动能力

王栋春 发表于 2017-6-24 21:27
led是否为甚亮,电流超出单片驱动能力

晓晓江南 发表于 2017-6-24 22:28
改进了一下电路,试着在Multisim上跑了一下(采用8052单片机),还算可以,见图:

晓晓江南 发表于 2017-6-24 22:28
改进了一下电路,试着在Multisim上跑了一下(采用8052单片机),还算可以,见图:

太子的空间 发表于 2017-6-25 10:04
先查看一下程序是否正确,把单片机31脚接电源试试

本帖最后由 菜鸟零零 于 2017-6-25 22:02 编辑

太子的空间 发表于 2017-6-25 10:04
先查看一下程序是否正确,把单片机31脚接电源试试

战胜心魔 发表于 2017-6-25 08:25
最简单的 把亮灯值做一个数组用for循环一条搞定

houjue 发表于 2017-6-25 20:24
是不是U2选成共阳型LED了?

houjue 发表于 2017-6-25 20:24
是不是U2选成共阳型LED了?

菜鸟零零 发表于 2017-6-25 22:03
太复杂了。而且主要是想练习左移右移函数的。

支持一下 楼主加油


支持一下 楼主加油


菜鸟零零 发表于 2017-6-25 22:06
U2另一端接地和接5V电源,我都试过。都没反应。另外,怎么看共阴共阳啊?