51单片机点灯,本来是个很简单的东西...那么问题来了,如下图
这样做肯定不行呀~总共8*8=64个灯,而且还没有加限流电阻,假设一个灯点亮时电流5mA,64个灯就有320mA,当所有灯亮起来时,如果这两组接线接到单片机IO口,320mA全部经单片机IO漏到GND去,单片机肯定支持不来,结果就是单片机挂了。一般单片机IO总漏电流20mA~100mA。
再退一步讲,由于没有限流电阻,当只亮一个灯时,电流全从这个灯过了,电流很大,要么灯烧,要么单片机烧。
故,这个电路需要优化:1.增加限流电阻,2. 使用三极管驱动的方式,将原本流经单片机内部的电流导到外部的三极管。
I/O口的输出电流很小,100·200ua ,输入电流是8·10ma,LED一般是10ma·20ma 当然电流再小一些也是会亮的,但会比较暗,
按照你的接法,Io口是不是要接上拉电阻,单靠输出是点亮不了的,
1.单片机I口设置推挽输出
2.LED加限流,限流电阻可以选大一些,没问题再减小测试
3.选用高亮度LED,蓝色或绿色等,实测蓝绿色高亮LED电流2-5mA时亮度也可以接受。
4.扫描驱动,不要同时显示