找回密码
 立即注册

QQ登录

只需一步,快速开始

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

如何写一个合理的单片机数码管扫描和按键扫描函数,使LED能切换显示亮

[复制链接]
跳转到指定楼层
楼主
使用STC8G1K17单片机驱动三位数码管,数码管中的两个段选IO口P54,P55和LED的IO口复用了,其中P54是数码管和按键和LED灯复用的一个端口,我写的数码管扫描和按键扫描函数感觉有问题,无法使LED灯能够按下按键单击切换显示亮,原理图如下,和本人写的代码,恳请各位大佬能给点建议,谢谢各位大佬 DC-DC开关电源1.0ADC输出电压(1).rar (116.7 KB, 下载次数: 0)


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

使用道具 举报

沙发
ID:1109793 发表于 2024-12-31 20:28 | 只看该作者
不是重新打板子了吗?看起来好乱,四个按键接四个COM上面不是正好?18个IO
回复

使用道具 举报

板凳
ID:1138693 发表于 2025-1-4 09:38 | 只看该作者
xiaobendan001 发表于 2024-12-31 20:28
不是重新打板子了吗?看起来好乱,四个按键接四个COM上面不是正好?18个IO

两个LED灯的管脚和数码管的管脚复用了,我想让两个灯能通过按键切换并且不影响数码管的显示,但是我写的代码会影响显示
回复

使用道具 举报

地板
ID:1109793 发表于 2025-1-4 13:23 | 只看该作者
工chen 发表于 2025-1-4 09:38
两个LED灯的管脚和数码管的管脚复用了,我想让两个灯能通过按键切换并且不影响数码管的显示,但是我写的 ...

看起来两个灯是用另外一个脚控制的啊,前边三位数码管显示是怎么弄的?
回复

使用道具 举报

5#
ID:584814 发表于 2025-1-6 17:36 | 只看该作者
不建议复用,加个LED驱动芯片也就两毛钱的事。
回复

使用道具 举报

6#
ID:996773 发表于 2025-1-7 09:06 | 只看该作者
复用也可以啊,数码管轮流扫描的时候程序上抽出一个循环间隙内,让这三个段选脚输出高电平

同时查询脚状态,如果你按下按钮就是0,不要用防抖之类的延时,再去执行就行。显示效果不会被干扰
回复

使用道具 举报

7#
ID:1073939 发表于 2025-1-8 11:58 | 只看该作者
中断处理不要有长耗时处理,51mcu尽量不要使用浮点数变量。
回复

使用道具 举报

8#
ID:23640 发表于 2025-1-8 18:00 | 只看该作者
hi等你 发表于 2025-1-7 09:06
复用也可以啊,数码管轮流扫描的时候程序上抽出一个循环间隙内,让这三个段选脚输出高电平

同时查询脚状 ...

他这是LED灯和数码管脚复用了,不是按键和数码管复用哦
回复

使用道具 举报

9#
ID:23640 发表于 2025-1-8 18:05 | 只看该作者
楼主可以先扫描数码管接着扫描LED灯,应该是可以实现的,把LED灯也看成是数码管的一个段。
回复

使用道具 举报

10#
ID:1109793 发表于 2025-1-9 13:10 | 只看该作者
yaosongjin 发表于 2025-1-8 18:00
他这是LED灯和数码管脚复用了,不是按键和数码管复用哦

在楼主提供的截图里面,按键也有复用的,P54和P35两个按键有串电阻的那两个
回复

使用道具 举报

11#
ID:1138693 发表于 2025-1-10 10:41 | 只看该作者
yaosongjin 发表于 2025-1-8 18:00
他这是LED灯和数码管脚复用了,不是按键和数码管复用哦

有一个P54的IO口是数码管和LED灯和按键复用了,P54和P55是LED灯和数码管复用了
回复

使用道具 举报

12#
ID:1138693 发表于 2025-1-10 10:42 | 只看该作者
man1234567 发表于 2025-1-6 17:36
不建议复用,加个LED驱动芯片也就两毛钱的事。

我是抄板的,加不了驱动芯片呢
回复

使用道具 举报

13#
ID:1138693 发表于 2025-1-10 10:46 | 只看该作者
xiaobendan001 发表于 2025-1-4 13:23
看起来两个灯是用另外一个脚控制的啊,前边三位数码管显示是怎么弄的?

是的,另一个IO口可以控制那两个LED灯,前三位是按一位一位进行扫描的
回复

使用道具 举报

14#
ID:1138693 发表于 2025-1-10 10:48 | 只看该作者
hi等你 发表于 2025-1-7 09:06
复用也可以啊,数码管轮流扫描的时候程序上抽出一个循环间隙内,让这三个段选脚输出高电平

同时查询脚状 ...

三位段选引脚吗?不是三个位选嘛
回复

使用道具 举报

15#
ID:1138693 发表于 2025-1-10 10:49 | 只看该作者
发表于 2025-1-8 11:58
中断处理不要有长耗时处理,51mcu尽量不要使用浮点数变量。

好的,谢谢
回复

使用道具 举报

16#
ID:1133081 发表于 2025-1-10 20:30 | 只看该作者
工chen 发表于 2025-1-10 10:42
我是抄板的,加不了驱动芯片呢

抄板通常是找一个成熟的样品复制,不知你这个电路抄的是否准确。怎么看都像是个不成熟的设计。按这个图制作会给编程带来很多麻烦。再者数码管限流电阻放在位驱动就是明显错误,当数码笔段少时亮度高,笔段多时亮度低,很难通过软件调平衡。
回复

使用道具 举报

17#
ID:1109793 发表于 2025-1-11 07:43 | 只看该作者
WL0123 发表于 2025-1-10 20:30
抄板通常是找一个成熟的样品复制,不知你这个电路抄的是否准确。怎么看都像是个不成熟的设计。按这个图制 ...

亮度问题可以通过分时解决
话说都抄板了,程序直接读出来复制就行了吧
其他都不用管了。
会不会这种设计就是为了增加抄板者的难度?
回复

使用道具 举报

18#
ID:1133081 发表于 2025-1-11 17:08 | 只看该作者
xiaobendan001 发表于 2025-1-11 07:43
亮度问题可以通过分时解决
话说都抄板了,程序直接读出来复制就行了吧
其他都不用管了。

想读出STC8G1K17里的程序在业余条件下基本办不到。这种设计不会是为了增加抄板者的难度。因为老手设计一款DCDC数控电源不难。倒是像老师出的题,测试学生的基本功。
回复

使用道具 举报

19#
ID:1109793 发表于 2025-1-12 14:41 | 只看该作者
WL0123 发表于 2025-1-11 17:08
想读出STC8G1K17里的程序在业余条件下基本办不到。这种设计不会是为了增加抄板者的难度。因为老手设计一 ...

有道理,还是您厉害
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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