简单的电路设计,如何做到灯泡延迟发光

2019-07-16 17:49发布

求助有没有简单方案解决当电路总开关闭合时,其下的8个小支路假如8个小灯泡他们按顺序一个个点亮,但点亮过程中点亮了就不熄灭,直到最后一个点亮,目前我遇到的困难就是如何实现一个模拟开关触发了就闭合,是电子触发,不是机械触发(能不能不使用单片机解决,本人还未学习单片机)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
a123b
2019-07-16 22:39
本帖最后由 a123b 于 2015-5-21 14:50 编辑

闪烁LED小灯设计,要求轮流点亮,逐个点亮,间隔点亮,可能我的电路有问题,只能运行在初始轮流点亮状态。

我试过按开关,还是不行,以下为c程序及电路图,请学长学姐帮忙指教
#include<reg51.h>//头文件
#define  char  unsigned  char//宏定义
char key,ke 203fb80e7bec54e731be57ebb8389b504ec26af0.png

ytmp;

//

void scan()

{

key=(~P3)&0x0f;

if(key!=0)

{while(((~P3)&0x0f)!=0);

keytmp=key;

}

}

//

void  delay(int t)

{

int k,j;

for(k=0;k<t;k++)

for (j=0;j<100;j++)

scan();

}

//

fun0()

{

int i,s;

s=0xfe;

for(i=0;i<8;i++)

   {

   P1=s;

   delay(100);

   s=s<<1;

   s=s|0x01;

   }

return 0;}

//

fun1()

{

int i,s;

s=0xfe;

for(i=0;i<8;i++)

{

P1=s;

delay(100);

s=s<<1;

}

return 0;

}

//

fun2()

{

int i,s;

s=0x55;

for(i=0;i<2;i++)

{

P1=s;

delay(100);

s=~s;

}

return 0;}

//

main()

{

keytmp=1;

P3=0xff;

while(1)

{

switch(keytmp)

{

case 1:{fun0();break;}

case 2:{fun1();break;}

case 4:{fun2();break;}

case 8:{scan();P1=0xff;break;}

default:{break;}

}

}

}




你在led外接端没加电源呀?P1口输出低电平就OK了,还有#include<reg51.h>包含P了,程序是不是写的有点啰里啰嗦呀?你在试试 ,这是最基础的!追问:
程序是北航出版的书上的程序,我写不好,就抄下来了。led没加电源也亮啊,加了电源反而出现错误运行不了,晕了

追答:
运行不了是程序的问题,你在仔细检查下,LED不加电源怎么导通?再者,要想使一个二极管导通的条件是反向压降小于正向压降!你看看郭天祥的视屏吧!



203fb80e7bec54e731be57ebb8389b504ec26af0.png

一周热门 更多>