微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > PCB设计问答 > PCB设计学习讨论 > 51单片机做流水灯,灯不亮。

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

时间:10-02 整理:3721RD 点击:
最近学了流水灯。然后搭建了电路,但是没有流水的效果。LED灯都不亮。伙伴们帮忙看看,问题出在哪了?下面是程序和电路图。
#include<reg51.h>
#include<intrins.h>
#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 <htc.h>
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了?

没有。换成led闪烁的程序,显示结果还是对的。就是流水灯没反应……

没有。换成led闪烁的程序,显示结果还是对的。就是流水灯没反应……

排阻串联接在单片机和led之间,也是没反应。不过我倒是没像你这么接过。明天试试看。谢谢

排阻串联接在单片机和led之间,也是没反应。不过我倒是没像你这么接过。明天试试看。谢谢

程序没问题呀。接到单片机开发板上没问题的。


程序没问题呀。接到单片机开发板上没问题的。31引脚和这个没关系吧?

太复杂了。而且主要是想练习左移右移函数的。

U2另一端接地和接5V电源,我都试过。都没反应。另外,怎么看共阴共阳啊?

U2另一端接地和接5V电源,我都试过。都没反应。另外,怎么看共阴共阳啊?

??(ˊωˋ*)??好吧

支持一下 小编加油

支持一下 小编加油

二极管的负极接到一起的就是共阴,二极管正极接到一起的就是共阳。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top