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

数码管程序

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:374
  • 最近打卡:2025-06-17 07:50:49

20

主题

221

回帖

953

积分

高级会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-06-17 07:39:49

46

主题

390

回帖

1732

积分

金牌会员

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

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:568
  • 最近打卡:2025-06-17 11:43:25

11

主题

1196

回帖

5532

积分

论坛元老

积分
5532
发表于 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;
}

https://www.stcaimcu.com/forum.php?mod=attachment&aid=MjgzMTF8ZjU3MTVmOWR8MTc1MDE0OTEzNHwwfA%3D%3D
[https://www.stcaimcu.com/forum.php?mod=attachment&aid=MjgzMTF8ZjU3MTVmOWR8MTc1MDE0OTEzNHwwfA%3D%3D]查理复用IO驱动数码管.docx[/attach]




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:374
  • 最近打卡:2025-06-17 07:50:49

20

主题

221

回帖

953

积分

高级会员

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

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

谢谢你的代码!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:374
  • 最近打卡:2025-06-17 07:50:49

20

主题

221

回帖

953

积分

高级会员

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

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:551
  • 最近打卡:2025-06-17 09:41:40

13

主题

206

回帖

468

积分

中级会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:568
  • 最近打卡:2025-06-17 11:43:25

11

主题

1196

回帖

5532

积分

论坛元老

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


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


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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:374
  • 最近打卡:2025-06-17 07:50:49

20

主题

221

回帖

953

积分

高级会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:551
  • 最近打卡:2025-06-17 09:41:40

13

主题

206

回帖

468

积分

中级会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:569
  • 最近打卡:2025-06-17 05:11:17
已绑定手机

33

主题

462

回帖

2556

积分

金牌会员

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-17 16:32 , Processed in 0.156893 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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