如何用最少的单片机端口驱动多个数码管?

如题所述

最好的办法是用串转并的芯片如74HC164或595,只要二根线就可以驱动多个数码管,且是静态的,程序也方便编制,不用象动态显示那样不停地刷新。、

附图是用PIC16单片机驱动6个数码管的PROTEUS仿真的情况,实物也运行了,没问题。理论上可以驱动无穷多个数码管,实际上用十几二十个没问题。

北航《PIC16系列单片机C程序设计与PROTEUS仿真》书中有这个完整的线路图和程序,附光盘中有所有的线路图和程序代码。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-17
一片MAX7219/MAX7221可以驱动8位数码管,2片16位。只用3个I/O 前两天打错型号,但发表后一下没修改过来,现在重新更正,是MAX7219/MAX7221 给大家带来不便,非常抱歉!
具体使用方法请到http://wenku.baidu.com/view/d7248aa1b0717fd5360cdcde.html在线看或下载MAX7219/MAX7221 的datasheet的PDF看,里面挻详细的!时序、控制位代码对和要求延时准确就可以用了
如果确实不懂可以找我帮你写
第2个回答  2012-05-11
如果想硬件电路少一点可以参考下这个:我前面用了个4511,BCD码驱动(编程就很简单明了),但是没有小数点 然后在加一个74154(4-16)译码,这样P0~P3任意一个端口(8位)就可以驱动16个数码管。但是前面我买的154居然输出是乱码的,相当郁闷,由于我只用了6位数码管,我换成了138,也够用。可以参考下
也可以参考下这里:LED数码管驱动电路大全
http://wenku.baidu.com/view/7ba075c9a1c7aa00b52acbe0.html