本质上来说,你这个其实问题是单片机的输出IO口扩展问题和电路问题。
IO扩展,一般用74HC595就可以了,用三个IO口可以扩展出 NX8个输出口,如果你的单片机自带有SPI功能,程序也会好写的很多。
300多个LED,电流不小,你最好再加个ULN2003或者ULN2803来进行驱动,当然,你也可以用三极管驱动,只要需要的比较多。
另外,300多个LED,看你电路怎么连接,我假设你是400个LED吧,如果你用矩阵的方式,那么,就是 20*20,就需要 6个74HC585足矣,如果你是一个IO口对应一个LED,你需要50个74HC595.
前者程序稍稍复杂,但是硬件省钱,后者,程序好写,硬件费钱,一个74HC595大概要3角钱吧。
总结:你用74HC595就可以了,成本节约的很多。
用74HC595芯片来驱动很不错。
电路搞好了,30000多灯也没问题。
建议使用74LS164扩展io数目驱动led,如果led功耗较大,可考虑使用三极管之类的驱动电路。
首先,你没说清楚你的这些LED是怎样的LED,300多个,是用于普通的指示,还是用于显示,还是用于照明?
不同的作用,对电路的要求各不相同,因此74HC595、ULN2003什么的,虽然能将它们都点亮,但功能和性能未必能满足你.
建议你提问时可以描述清楚一点.