找回密码
 立即注册
楼主: lclbf

数码管程序

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:430
  • 最近打卡:2025-08-23 07:50:31

21

主题

222

回帖

1182

积分

金牌会员

积分
1182
发表于 2023-11-29 10:52:34 | 显示全部楼层
reng*** 发表于 2023-11-28 16:53
没有公共端啊?这样的话只能使用pin脚单独控制了,或者使用锁存器来减少单片机端口输出 ...

看见别人用普通的单片机,直接5个IO口驱动,不自动程序是如何实现的。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:495
  • 最近打卡:2025-08-23 18:06:13

47

主题

392

回帖

2053

积分

金牌会员

静坐常思己过,闲谈莫论人非

积分
2053
发表于 2023-11-29 11:08:07 | 显示全部楼层
lcl*** 发表于 2023-11-29 10:52
看见别人用普通的单片机,直接5个IO口驱动,不自动程序是如何实现的。

IO口复用了?那样的话可能是利用数码管动态扫描的原理,程序的话就得设计的很巧妙了,而且刷新时间要求也挺高的
处事要代人所想,读书需切己用功
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:635
  • 最近打卡:2025-08-24 00:46:54

11

主题

1229

回帖

5958

积分

论坛元老

积分
5958
发表于 2023-11-29 21:26:18 | 显示全部楼层
本帖最后由 angmall 于 2023-11-29 21:28 编辑


使用Charlieplexing查理复用技术使用5个io口控制16个LED的51单片机程序

基于Charlieplexing(查理复用算法)实现5个GPIO控制16个LED灯


5个IO口最多可以控制20个LED,现成的程序不太好找。这有个实例,STC8G1K08A就6个IO口,能用的就只剩3个,无奈才写了3个IO口控制4个LED的程序。由于LED数量太少,就没有费神精炼代码,只把4个LED驱动封装成函数调用。权当抛砖引玉。



void LED1()
{
        P3M0=0x03;//P3.0推、3.1推、3.2高0000 0011
        P3M1=0x04;//P3.0推、3.1推、3.2高0000 0100
        P30=0;P31=1;P32=1;
}

void LED2()
{
        P3M0=0x03;//P3.0推、3.1推、3.2高0000 0011
        P3M1=0x04;//P3.0推、3.1推、3.2高0000 0100
        P30=1;P31=0;P32=1;
}

void LED3()
{
        P3M0=0x06;//P3.0高、3.1推、3.2推0000 0110
        P3M1=0x01;//P3.0高、3.1推、3.2推0000 0001
        P30=1;P31=0;P32=1;
}

void LED4()
{
        P3M0=0x06;//P3.0高、3.1推、3.2推0000 0110
        P3M1=0x01;//P3.0高、3.1推、3.2推0000 0001
        P30=1;P31=1;P32=0;
}

http://112.74.51.126/forum.php?mod=attachment&aid=MjgzMTF8OTgyMmI4ZTd8MTc1NjAxODc1OXwwfA%3D%3D
[http://112.74.51.126/forum.php?mod=attachment&aid=MjgzMTF8OTgyMmI4ZTd8MTc1NjAxODc1OXwwfA%3D%3D]查理复用IO驱动数码管.docx[/attach]




回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:430
  • 最近打卡:2025-08-23 07:50:31

21

主题

222

回帖

1182

积分

金牌会员

积分
1182
发表于 2023-11-30 07:54:55 | 显示全部楼层
angm*** 发表于 2023-11-29 21:26
使用Charlieplexing查理复用技术使用5个io口控制16个LED的51单片机程序

基于Charlieplexing(查理复用算法 ...

谢谢你的代码!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:430
  • 最近打卡:2025-08-23 07:50:31

21

主题

222

回帖

1182

积分

金牌会员

积分
1182
发表于 2023-12-1 08:10:32 | 显示全部楼层
angm*** 发表于 2023-11-29 21:26
使用Charlieplexing查理复用技术使用5个io口控制16个LED的51单片机程序

基于Charlieplexing(查理复用算法 ...

按照你的方法,用STC15W61S4点亮数码管188.
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:618
  • 最近打卡:2025-08-24 11:31:48

13

主题

207

回帖

780

积分

高级会员

积分
780
发表于 2023-12-3 10:11:13 | 显示全部楼层
4位数码管最少可以用多少个IO口驱动呢?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:635
  • 最近打卡:2025-08-24 00:46:54

11

主题

1229

回帖

5958

积分

论坛元老

积分
5958
发表于 2023-12-3 16:09:09 | 显示全部楼层
stb*** 发表于 2023-12-3 10:11
4位数码管最少可以用多少个IO口驱动呢?


基于Charlieplexing(查理复用算法)实现 7个IO口可以驱动42LED


111420sb04bpzxd93d00hz.jpg
这个小数码管很有意思,只有7个pin脚
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:430
  • 最近打卡:2025-08-23 07:50:31

21

主题

222

回帖

1182

积分

金牌会员

积分
1182
发表于 2023-12-4 08:00:03 | 显示全部楼层
angm*** 发表于 2023-12-3 16:09
基于Charlieplexing(查理复用算法)实现 7个IO口可以驱动42LED

把你写的程序发出来学习一下。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:618
  • 最近打卡:2025-08-24 11:31:48

13

主题

207

回帖

780

积分

高级会员

积分
780
发表于 2023-12-4 08:41:30 | 显示全部楼层
angm*** 发表于 2023-12-3 16:09
基于Charlieplexing(查理复用算法)实现 7个IO口可以驱动42LED

这个牛啊,这么小的Io口可以驱动这个数码管
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:624
  • 最近打卡:2025-08-24 14:00:39
已绑定手机

34

主题

461

回帖

2786

积分

金牌会员

积分
2786
发表于 2023-12-4 21:38:30 来自手机 | 显示全部楼层
👍
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-8-24 14:59 , Processed in 0.125328 second(s), 99 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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