找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2321|回复: 14
收起左侧

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

  [复制链接]
ID:1097287 发表于 2024-9-26 14:22 | 显示全部楼层 |阅读模式
谢谢大家
11111.png
回复

使用道具 举报

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,
同样的步骤处理下面的数码管和其他显示点。
然后,合理规划每组显示的持续时间,保证刷新速度。
回复

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

ID:1097287 发表于 2024-9-26 21:14 | 显示全部楼层

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

使用道具 举报

ID:857072 发表于 2024-9-26 21:37 来自触屏版 | 显示全部楼层
zhuls 发表于 2024-9-26 17:36
10个引脚可驱动90个灯,但软件开销不是一般的小,小体量的单片机用的会很难受,不如用一个tm16xx,控制简单 ...

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

使用道具 举报

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

使用道具 举报

ID:619259 发表于 2024-9-27 10:19 | 显示全部楼层
采用查理复用方式,理论上10个引脚可以驱动90个LED,符合你的要求。
回复

使用道具 举报

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

使用道具 举报

ID:1125252 发表于 2024-10-16 08:09 | 显示全部楼层
Bikho 发表于 2024-9-26 21:14
代码怎么写才会是最简洁的呢请问

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

使用道具 举报

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 单片机教程网

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