搜索
bottom↓
回复: 36

做一个8段6位数码管显示电路,请问用什么驱动最合适?既要布线安装方便又要成本合适。

[复制链接]

出0入0汤圆

发表于 2011-5-18 22:50:30 | 显示全部楼层 |阅读模式
做一个8段6位数码管显示电路,就是有6个8的显示电路,请教各位大侠,用什么方式实现比较经济?
单片机端口能提供8个,我想一般是用个164移位寄存器加6个三极管,不过感觉这样的电路安装很麻烦,布线也很不方便,况且我还是要在单面板上布线,对面积也要有要求,元件太多很难画板。
想过用专门的驱动芯片,例如天微的TM1620,加几个电阻就搞定了,占用单片机端口也很少,不过价格比较高,买也不方便。
不知道各位有没有更好的方式?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-5-18 23:03:34 | 显示全部楼层
直接用单片机的P1P2口动态扫描不行吗?只要6个三极管

出0入0汤圆

 楼主| 发表于 2011-5-18 23:07:16 | 显示全部楼层
回复【1楼】AAVVRR
直接用单片机的p1p2口动态扫描不行吗?只要6个三极管
-----------------------------------------------------------------------

那得用多少个io口啊?8+6=14个,这样确实很方便,我最开始这样做的,不过后来io口不够了。

出0入0汤圆

发表于 2011-5-18 23:17:07 | 显示全部楼层
你可以用俩164扩展成两个八位的口,再动态扫描,不就成了嘛

出0入0汤圆

发表于 2011-5-18 23:19:58 | 显示全部楼层
用一个573 加个138  这个成本不是很贵吧?用573 好布线

出0入0汤圆

发表于 2011-5-18 23:20:35 | 显示全部楼层
动态扫描吧,位选可以用138,段选用595这样的串转并

出0入0汤圆

发表于 2011-5-18 23:22:39 | 显示全部楼层
看看这个。
http://item.taobao.com/item.htm?id=6827995325

出0入0汤圆

发表于 2011-5-19 00:29:07 | 显示全部楼层
2个74HC595+1个ULN2003,连电源 GND都算上 , 5根线,用3个MCU I/O

出0入0汤圆

发表于 2011-5-19 08:32:03 | 显示全部楼层
可以用TM1629A,外围只需一个电阻和一个电容,可以驱动16位8段共阴/共阳数码管,成本低。 TM1629A  1.5元/片

出0入8汤圆

发表于 2011-5-19 08:47:59 | 显示全部楼层
TM1628

出0入0汤圆

发表于 2011-5-19 09:06:49 | 显示全部楼层
用74HC595吧  它比164多了一个消隐的功能

当然要单层布线也比较麻烦,不过还是可以的,我以前都是自己刻得单层板,单层板可以用导线跳线来解决布线的麻烦,理论上能达到双层的效果

出0入0汤圆

 楼主| 发表于 2011-5-19 14:03:55 | 显示全部楼层
综合考虑布线方便和可扩展性,还有就是占用端口少,采购方便价格不贵,决定用TM1628,据说价格在1.5以下。

出0入0汤圆

 楼主| 发表于 2011-5-19 14:06:58 | 显示全部楼层
回复【8楼】Hamyou
可以用tm1629a,外围只需一个电阻和一个电容,可以驱动16位8段共阴/共阳数码管,成本低。 tm1629a  1.5元/片
-----------------------------------------------------------------------

请问这个TM1629A 和TM1628相比有什么优点? 好像价格比1628高点, 端口2个芯片都够我用。

出0入0汤圆

 楼主| 发表于 2011-5-19 14:08:25 | 显示全部楼层
回复【10楼】wangshaosh
用74hc595吧  它比164多了一个消隐的功能
当然要单层布线也比较麻烦,不过还是可以的,我以前都是自己刻得单层板,单层板可以用导线跳线来解决布线的麻烦,理论上能达到双层的效果
-----------------------------------------------------------------------

还得加一堆三极管。装配多麻烦啊。那这个好像比164没什么区别了吧。

出0入0汤圆

 楼主| 发表于 2011-5-19 14:09:36 | 显示全部楼层
回复【3楼】lanqilove 三木
你可以用俩164扩展成两个八位的口,再动态扫描,不就成了嘛
-----------------------------------------------------------------------

这个主意倒是不错,不过要用2个芯片,而且编程也不好弄,价格也不划算啊。

出0入93汤圆

发表于 2011-5-19 14:39:31 | 显示全部楼层
最最最最节省成本的办法:直接连接,9个IO,可以驱动9个数码管,中间不要任何电阻、电容、芯片等等。如果不要小数点的话,8个IO,可以驱动8个数码管。

具体接线方式请Google Charlieplex。


此方案需要数码管为超高亮度,任意IO具有输出高、输出低和高阻三种状态。最最最最最重要的是,程序极其复杂,不是高高高手最好不要轻易尝试,否则还不如外扩其他芯片。

出0入93汤圆

发表于 2011-5-19 14:48:33 | 显示全部楼层
好人做到底,Charlieplexing参见这篇文章,原理图如下:
Charlieplexing驱动8个数码管

出0入0汤圆

发表于 2011-5-19 14:56:59 | 显示全部楼层
单片机推挽方式直接驱动,如果想占管脚少的话加以1片138就是。

出0入93汤圆

发表于 2011-5-19 15:25:42 | 显示全部楼层
再提个简单点的方法,动态扫描,直接IO推挽输出,用3个共阳,3个共印,共阳和共阴的公共端分别接到一起。这样只需要8+3=11个IO口就足够了。鉴于数码管实际占空比仍然为1/6,就不要加什么电阻、三极管和芯片了,烧不坏的。
Charlieplexing过于变态了,还是远离点好。

出0入0汤圆

 楼主| 发表于 2011-5-20 10:52:19 | 显示全部楼层
回复【17楼】hzr0071
单片机推挽方式直接驱动,如果想占管脚少的话加以1片138就是。
-----------------------------------------------------------------------

哈哈,您这个方法确实妙,值得推广。

出0入0汤圆

 楼主| 发表于 2011-5-20 10:54:12 | 显示全部楼层
回复【16楼】takashiki 岚月影
好人做到底,charlieplexing参见,原理图如下:

-----------------------------------------------------------------------

加3 8线译码器确实是个不错的思路,不过在淘宝上看74ls138 价格也不便宜,也要1块多钱,不知道批量能去到多少钱,好像现在很少人在产品上用这种芯片了。

出0入0汤圆

 楼主| 发表于 2011-5-20 11:01:44 | 显示全部楼层
回复【15楼】takashiki 岚月影
最最最最节省成本的办法:直接连接,9个io,可以驱动9个数码管,中间不要任何电阻、电容、芯片等等。如果不要小数点的话,8个io,可以驱动8个数码管。
具体接线方式请google charlieplex。
此方案需要数码管为超高亮度,任意io具有输出高、输出低和高阻三种状态。最最最最最重要的是,程序极其复杂,不是高高高手最好不要轻易尝试,否则还不如外扩其他芯片。
-----------------------------------------------------------------------

哈哈,这个方法妙不可言,不过就像3个io驱动20几个按键的方法一样,只能当艺术品去欣赏,自己用就不必了。
估计做出来显示效果不会好,一个6位的完整显示要分8*6=48个点来点亮,效率太低了。程序嘛,我这种普通人努力一下应该还是能调出来的,闲的时候可以试试。

出0入0汤圆

 楼主| 发表于 2011-5-20 11:08:47 | 显示全部楼层
回复【18楼】takashiki 岚月影
再提个简单点的方法,动态扫描,直接io推挽输出,用3个共阳,3个共印,共阳和共阴的公共端分别接到一起。这样只需要8+3=11个io口就足够了。鉴于数码管实际占空比仍然为1/6,就不要加什么电阻、三极管和芯片了,烧不坏的。
charlieplexing过于变态了,还是远离点好。
-----------------------------------------------------------------------

哎,您又给我出了个难题,本来我都打算用TM1628了,不过您这个方法比我直接用单片机8+6个端口驱动省了3个端口,而且外围元件省了很多,成本和功夫都省了很多,很诱惑啊。

不过缺点也很明显,要用2种数码管,容易搞混。
而且直接驱动,单片机有点热,还会影响单片机的ad采样的稳定性。没有外加驱动好。以后要扩展功能单片机就没有端口了,也不好。

不过眼下就能省不少事情呢,得失很难权衡啊。。。
还在思想斗争中。

出0入93汤圆

发表于 2011-5-20 11:13:31 | 显示全部楼层
回复【20楼】shzdxx  春
-----------------------------------------------------------------------
你回复错了吧,我没有说过用74LS138的吧。不过,74HC138没有那么贵,不会到1元的。



回复【21楼】shzdxx  春
-----------------------------------------------------------------------
对于Charlieplex来说,6个数码管占空比就是1/48,但是据说最多可以驱动到12线,即12*11=132个LED。程序分时扫描不难,难得是如何使得每一段亮的时间充分长,切换的过程中不会损失亮度。
MAXIM有用这个方法扫描的成品卖。
Charlieplex也有改进型,提升了占空比,但是我还没有找到相关的资料。

驱动LED目前我所知道的最强的是GuGaplexing,N条线可以驱动2*N*(N-1)个,比Charlieplex多一倍,这个就更不想折腾了。

出0入93汤圆

发表于 2011-5-20 11:24:24 | 显示全部楼层
回复【22楼】shzdxx  春
-----------------------------------------------------------------------
嘿嘿,鱼与熊掌。我自己做设计,都不可能又是共阴又是共阳的,这个才是最大的缺点。虽然可以克服,但是引入了N多风险。
至于AD,所有动态扫描都有这个问题吧。
单片机热的话,在三个公共端上串上三个电阻,即可解决。为了节省这三个电阻,那CPU就吃点亏,多担当点。
亮度,无法解决,换高亮度数码管吧。

以后要扩展当然有端口,至少那8个段码是可以复用的,驱动些273、274、373、374、573、574、595之类的逻辑芯片绰绰有余。

出0入0汤圆

发表于 2011-5-20 11:35:34 | 显示全部楼层

出0入0汤圆

发表于 2011-5-20 12:09:32 | 显示全部楼层
回复【13楼】shzdxx 春
回复【10楼】wangshaosh  
用74hc595吧  它比164多了一个消隐的功能  
当然要单层布线也比较麻烦,不过还是可以的,我以前都是自己刻得单层板,单层板可以用导线跳线来解决布线的麻烦,理论上能达到双层的效果
-----------------------------------------------------------------------
还得加一堆三极管。装配多麻烦啊。那这个好像比164没什么区别了吧。
-----------------------------------------------------------------------


干嘛加三极管?多串一个595直接专门控制数码管的公共端

出0入0汤圆

 楼主| 发表于 2011-5-20 12:18:21 | 显示全部楼层
回复【26楼】wangshaosh
回复【13楼】shzdxx 春
回复【10楼】wangshaosh   
用74hc595吧  它比164多了一个消隐的功能   
当然要单层布线也比较麻烦,不过还是可以的,我以前都是自己刻得单层板,单层板可以用导线跳线来解决布线的麻烦,理论上能达到双层的效果  
-----------------------------------------------------------------------  
还得加一堆三极管。装配多麻烦啊。那这个好像比164没什么区别了吧。
-----------------------------------------------------------------------
干嘛加三极管?多串一个595直接专门控制数码管的公共端
-----------------------------------------------------------------------

奥,那用2个芯片,成本也很难降低,布线和组装也麻烦了。呵呵。

出0入0汤圆

 楼主| 发表于 2011-5-20 12:21:39 | 显示全部楼层
回复【24楼】takashiki 岚月影
回复【22楼】shzdxx  春
-----------------------------------------------------------------------
嘿嘿,鱼与熊掌。我自己做设计,都不可能又是共阴又是共阳的,这个才是最大的缺点。虽然可以克服,但是引入了n多风险。
至于ad,所有动态扫描都有这个问题吧。
单片机热的话,在三个公共端上串上三个电阻,即可解决。为了节省这三个电阻,那cpu就吃点亏,多担当点。
亮度,无法解决,换高亮度数码管吧。
以后要扩展当然有端口,至少那8个段码是可以复用的,驱动些273、274、373、374、573、574、595之类的逻辑芯片绰绰有余。
-----------------------------------------------------------------------

为了省1.5元的tm1628,我决定牺牲掉一些ad的稳定性了,在软件算法上下点功夫克服吧。至于共阴共阳的问题,先就不管那么多了。
成本,是做产品永恒不变的关注点。

出0入0汤圆

 楼主| 发表于 2011-5-20 12:26:18 | 显示全部楼层
回复【23楼】takashiki 岚月影
回复【20楼】shzdxx  春
-----------------------------------------------------------------------
你回复错了吧,我没有说过用74ls138的吧。不过,74hc138没有那么贵,不会到1元的。
回复【21楼】shzdxx  春
-----------------------------------------------------------------------
对于charlieplex来说,6个数码管占空比就是1/48,但是据说最多可以驱动到12线,即12*11=132个led。程序分时扫描不难,难得是如何使得每一段亮的时间充分长,切换的过程中不会损失亮度。
maxim有用这个方法扫描的成品卖。
charlieplex也有改进型,提升了占空比,但是我还没有找到相关的资料。
驱动led目前......
-----------------------------------------------------------------------

看来您对数码管的驱动蛮有研究啊,呵呵,我之前还真不知道简单的数码管驱动还这深奥。
创新,是电子工程师最重要的精神。
给我一个io口,我能控制全宇宙。哈哈哈。

出0入0汤圆

发表于 2011-5-20 12:42:19 | 显示全部楼层
可行方法,我试过。
就你用你的方法。用个164移位寄存器但不用加三极管。具体是用2个IO口为164送段码,送到共阴数码管,再6个IO口控制位选,用这个方法你还要为8个段码数据线加限流电阻,要不数码管会过亮。2+6正好8合你要求。送段码时注意处理一下延时就不会有拖影了。

出0入8汤圆

发表于 2011-5-20 12:57:24 | 显示全部楼层
直接一片Tm1628全部搞定三线接口直接写显存就行,不占用CPU时间

出0入0汤圆

发表于 2011-5-20 12:58:49 | 显示全部楼层
我用三个595驱动了16位的八段共阳数码管,只是在段的那里串了限流电阻而已,
听说595最大驱动能力为35mA,平均每个发光管1mA的话就是16mA,
如果你要很亮的话就搞2-3mA,不过到时冒烟了就不知道了,
1-2比较合理,3mA很刺眼,除非你买的数码管不是很亮的那种,
扫描方式驱动数码管的亮度就是位数乘以单个发光管的电流.,
那个74HC595好像是几毛钱一个的吧?

出0入0汤圆

 楼主| 发表于 2011-5-20 14:30:54 | 显示全部楼层
回复【24楼】takashiki 岚月影
回复【22楼】shzdxx  春
-----------------------------------------------------------------------
嘿嘿,鱼与熊掌。我自己做设计,都不可能又是共阴又是共阳的,这个才是最大的缺点。虽然可以克服,但是引入了n多风险。
至于ad,所有动态扫描都有这个问题吧。
单片机热的话,在三个公共端上串上三个电阻,即可解决。为了节省这三个电阻,那cpu就吃点亏,多担当点。
亮度,无法解决,换高亮度数码管吧。
以后要扩展当然有端口,至少那8个段码是可以复用的,驱动些273、274、373、374、573、574、595之类的逻辑芯片绰绰有余。
-----------------------------------------------------------------------

想请教一下您,这些端口能和24c02 复用不?

出0入0汤圆

发表于 2011-5-20 15:25:09 | 显示全部楼层
也可以用南京沁恒的CH450

出0入93汤圆

发表于 2011-5-20 17:11:26 | 显示全部楼层
回复【33楼】shzdxx  春
-----------------------------------------------------------------------
想请教一下您,这些端口能和24c02 复用不?


SDA、SCL都可以与段选(或位选,但不能一个段选一个位选。这里以段选为例。)复用。需要小心地选择时序。
扫描数码管时,最好在每一次扫描前先制造一个IIC启动或结束信号,SDA保持高,SCL从低变高,数码管位选全部高阻。这样,24C02不会进行实际的操作,因为根本无法选择器件。
操作24C02时,将数码管位选全部高阻,这样数码管就不会亮了,这时可以随心所欲的操作24C02了。

时序选择不正确的话,24C02极有可能操作错误。

出0入0汤圆

发表于 2014-7-9 13:49:34 | 显示全部楼层
我修过多个4位数码管显示屏了。拆开看,几乎都是51单片机+74HC14+74HC595+ULN2803
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 06:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表