找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1404|回复: 14
打印 上一主题 下一主题
收起左侧

请教一下各位,这种用10个引脚同时驱动77个灯,可单独控制亮灭,有什么比较好的方法吗

  [复制链接]
跳转到指定楼层
楼主
谢谢大家

11111.png (92.45 KB, 下载次数: 7)

11111.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:161164 发表于 2024-9-26 16:19 | 只看该作者
查理复用
回复

使用道具 举报

板凳
ID:293079 发表于 2024-9-26 16:26 | 只看该作者
用专门的LED驱动芯片(如TM1629D,最多可以驱动96个LED)。单片机只需3个IO口就可以分别控制啦。
回复

使用道具 举报

地板
ID:276663 发表于 2024-9-26 16:44 | 只看该作者
巧了,刚好用过类似的两位数码管
这个确实比较麻烦
看图应该是有四个数码管 DIG1 ~ DIG4
显示DIG1的时候所有端口先配置成输入状态以免个别灯亮,
然后比如要显示1,对应的B、C段就要设置3,4输出高电平,然后把1设置为输出低电平。
这样数码管DIG1就亮了B、C段显示1,
同样的步骤处理下面的数码管和其他显示点。
然后,合理规划每组显示的持续时间,保证刷新速度。
回复

使用道具 举报

5#
ID:69038 发表于 2024-9-26 17:36 | 只看该作者
10个引脚可驱动90个灯,但软件开销不是一般的小,小体量的单片机用的会很难受,不如用一个tm16xx,控制简单,IO只要2/3个,自带扫描,亮度可调,如果舍不得那几毛钱,那就没得说了~~
人的视觉残留有一定的时间,所以单个IO时间长了显示可能会闪,时间短了亮度可能不够,麻烦。。。。
回复

使用道具 举报

6#
ID:1097287 发表于 2024-9-26 20:53 | 只看该作者
IdeaMing 发表于 2024-9-26 16:44
巧了,刚好用过类似的两位数码管
这个确实比较麻烦
看图应该是有四个数码管 DIG1 ~ DIG4

代码方面怎么写是最高效和节约单片机内存的呢请问
回复

使用道具 举报

7#
ID:1097287 发表于 2024-9-26 20:53 | 只看该作者
zhuls 发表于 2024-9-26 17:36
10个引脚可驱动90个灯,但软件开销不是一般的小,小体量的单片机用的会很难受,不如用一个tm16xx,控制简单 ...

请问有没有什么写法可以使得代码量在6k以内呢
回复

使用道具 举报

8#
ID:1097287 发表于 2024-9-26 21:14 | 只看该作者

代码怎么写才会是最简洁的呢请问
回复

使用道具 举报

9#
ID:857072 发表于 2024-9-26 21:37 来自手机 | 只看该作者
zhuls 发表于 2024-9-26 17:36
10个引脚可驱动90个灯,但软件开销不是一般的小,小体量的单片机用的会很难受,不如用一个tm16xx,控制简单 ...

就是啊就算复用能够实现。软件开销又大。驱动还要三极管,二极管,电阻。七十几个LED。这小元件也就是七十几个。真不如上一个LED驱动芯片算了。省事又省钱。
回复

使用道具 举报

10#
ID:1034262 发表于 2024-9-26 22:40 | 只看该作者
我经常用,用过好多,省IO,N个IO可以驱动N*(N-1)个LED,9脚可以驱动72个LED,或9个带小数点的8。
驱动很简单,共阴或共阳均可,看排列,那个方便用哪个。
驱动原则是:一个脚为COM,其余脚为SEG,驱动的COM就输出高(共阳)或低(共阴),驱动的SEG就输出低(共阳)或高(共阴),不驱动的SEG为高阻。
回复

使用道具 举报

11#
ID:619259 发表于 2024-9-27 10:19 | 只看该作者
采用查理复用方式,理论上10个引脚可以驱动90个LED,符合你的要求。
回复

使用道具 举报

12#
ID:584814 发表于 2024-10-12 11:14 | 只看该作者
想练习技术,用查理复用方式,理论上10个引脚可驱动10*9=90个LED;
想简单从事,找端口扩展或LED驱动芯片或混用,可节省引脚,可驱动无数LED;
想玩得花些,可以上述方法叠加,并使用可编程的LED,LED数量和显现的花式都不限。
回复

使用道具 举报

13#
ID:1125252 发表于 2024-10-16 08:09 | 只看该作者
Bikho 发表于 2024-9-26 21:14
代码怎么写才会是最简洁的呢请问

switch()
{
    case0:
    break;
    .......
},查理复用,扫描,这个应该用不到6K,我用过三位数码管的,2K都不到
回复

使用道具 举报

14#
ID:161164 发表于 2024-10-16 09:05 | 只看该作者
Bikho 发表于 2024-9-26 21:14
代码怎么写才会是最简洁的呢请问

周期0:
全部引脚输出高阻
引脚1输出高,其他引脚按需求输出低
周期1:
全部引脚输出高阻
引脚2输出高,其他引脚按需求输出低
周期2:
全部引脚输出高阻
引脚3输出高,其他引脚按需求输出低
周期3:
。。。
回到周期0
每个周期维持1ms
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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