单片机高手进来

我想用AT89C2051做个萤火虫LED灯,硬件上没什么问题,就是程序不怎么会编,能用高手帮忙指点一下吗?要求:最好是C语言,端口能用几个就几个,是低电平驱动LED,随机点亮LED,点亮的频率不要太高,一次不要亮太多,如果可以的话就就留一个口驱动喇叭,模拟昆虫的叫声。谢谢给位大神!!忘了说,LED是慢慢亮到慢慢灭。
2026年09月29日 02:20
有3个网友回答
网友(1):

既然你要用到尽可能多的LED,推荐使用译码芯片,这样子的话,8个端口可以控制256个灯。51的话,开定时器,定时一到就启动一个中断函数,在这个中断函数里面随便点亮一个灯,并且让喇叭响一下。这个缺点就是一次只能亮一个灯。如果不用译码芯片,就是一个脚对应一个灯的话,你可以开2个定时器,一个频率快一点的,随机选取某几个灯,做一个类似缓冲区的东西,然后另外一个定时器就是久一点,这个定时就把上次缓冲区选取的灯全部点亮。其他的话,就是如何写随机选灯的环节了,使用随机数函数就可以了,这个在资料http://wenku.baidu.com/view/2c310122482fb4daa58d4b68.html里面有更加详尽的介绍就不多说了。

如果你有固定的灯数要亮,你可以选择“你要的灯数”这个多个译码芯片,每个芯片都可以选择一个灯亮,这么就好一点点

渐变正如楼下所说,调节占空比就可以实现了,选完灯之后就让他占空比从0到100,然后再到0这样子

网友(2):

渐变 ,那肯定要用到PWM. 一个定时器就可以实现了。

网友(3):

蛋疼, 给点票子,给你做好全部