想自己编个51单片机32位流水灯,简单的让全部灯点亮居然无法实现,硬件没有问题
Y)A@5]{W]XL)J@[%}V{@(VC.png(15.45 KB, 下载次数: 0)
下载附件 保存到相册
2016-10-23 09:48 上传
这个问题还用说吗?
1 若你用的是AT89SXX单片机,这个现象就不会出现了!因为AT89SXX单片机[b]每个I/O口的驱动电流为[b]20mA;
2 若你用的是STC单片机,这个现象就是必然的!因为STC单片机全部I/O口的驱动电流为100mA左右。
这就是差距!差距!差距!
大哥,单片机输出信号带不动吧
想法挺好,很浪漫,但是
1、如果二极管没有串接限流电阻,长时间开机会把单片机端口烧坏的;
2、如果没有驱动,单片机的所有引脚一下子吸入的总电流是有限的,所以三个以上的引脚输出0时,就不亮了;
建议:
1、在每个二极管串接一个1K的电阻;
2、在每个单片机端口增加一个ULN2803,增加驱动;
可我下网上的32位程序也能亮啊
有限流电阻的,在背面,你说的那个驱动就不是很明白,我在网上下的程序就能点亮,就是因为这样才觉得很奇怪
网上下载的程序可以点亮?自己写的点不亮?
网上的可能用的是扫描实现的,每次只点亮一组,四组轮换点亮,间隔时间短看起来就好像一起亮了改成这样试试
while(1)
{
P0=0;
P0=1;
P1=0;
P1=1;
P2=0;
P2=1;
P3=0;
P3=1;
}
坛友一针见血呀 佩服之至
朋友客气、客气。我只是这方面比较熟悉罢了。
我的爱心灯接510欧的电阻,电阻有点小,总电流过高,所以无法驱动,原来如此,谢谢坛友
建议用三极管驱动的啊
一般少量的灯是可以用引脚直接控制点亮的,但大量的灯不要这样做。理论上是可以这么做的,但实际要考虑控制芯片总的吸入电流或输出电流的限制。这个譬如说:一般芯片手册上会说它的每个引脚都可以输出20mA电流,可直接驱动发光二极管,但实际上当所有引脚一起工作时总电流就会很大,芯片无法提供这么大的电流,导致无法正常工作。
加驱动是每个引脚接到ULN2803的输入端,1-8号引脚,每个二极管分别接到11-18号引脚,当然二极管的限流电阻还是要的。