找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于TM1628A按键长按短按的处理

[复制链接]
跳转到指定楼层
楼主
ID:1149903 发表于 2025-7-15 15:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大大佬们,有知道扫描按键在读取值后怎么处理长按和短按啊,不用延时函数和死循环

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

使用道具 举报

沙发
ID:712097 发表于 2025-7-15 15:41 | 只看该作者
用定时器中断,设置合理的中断时长。
在定时器中断里读按键值,如果读出的键值跟上次一样则加1,
按自定义的长按时长设定累加值上限,超出这个值为长按,反之为短按。
回复

使用道具 举报

板凳
ID:1133081 发表于 2025-7-15 17:18 | 只看该作者
给你一个TM1650的示例,读按键长短按与TM1628A类同。
4位数码管时钟 DS1302 TM1650程序.rar (27.41 KB, 下载次数: 0)

回复

使用道具 举报

地板
ID:1109793 发表于 2025-7-16 07:22 | 只看该作者
不死等,那就计数呗,读100次,不行就200次
回复

使用道具 举报

5#
ID:1109793 发表于 2025-7-16 07:52 | 只看该作者
WL0123 发表于 2025-7-15 17:18
给你一个TM1650的示例,读按键长短按与TM1628A类同。

请教前辈,我有个用1302的板,有问题是偶尔会发生上电后之前设定的时间就没有了,变成默认的时间了。就是被初始化了。还有时候是不跑时间的,并且1302会非常热。如果上电后正常跑时间,尽管是复位了的时间,1302也不热。是1302的质量问题吗?
回复

使用道具 举报

6#
ID:1133081 发表于 2025-7-16 13:39 | 只看该作者
xiaobendan001 发表于 2025-7-16 07:52
请教前辈,我有个用1302的板,有问题是偶尔会发生上电后之前设定的时间就没有了,变成默认的时间了。就是 ...

1.正常情况下1302不会发热。如果发热可能是相应硬件电路有故障或器件不良。
2.程序中不要上电初始化1302,时间有误差用按键调校。
3.备用电池要有电,能维持掉电后时间不丢失。
回复

使用道具 举报

7#
ID:1149903 发表于 2025-7-16 18:07 | 只看该作者
WL0123 发表于 2025-7-15 17:18
给你一个TM1650的示例,读按键长短按与TM1628A类同。

我想实现长按和短按一个效果,没有区别,且不影响程序运行
回复

使用道具 举报

8#
ID:1149903 发表于 2025-7-16 18:09 | 只看该作者
chxelc 发表于 2025-7-15 15:41
用定时器中断,设置合理的中断时长。
在定时器中断里读按键值,如果读出的键值跟上次一样则加1,
按自定 ...

试试
回复

使用道具 举报

9#
ID:1109793 发表于 2025-7-16 18:59 | 只看该作者
WL0123 发表于 2025-7-16 13:39
1.正常情况下1302不会发热。如果发热可能是相应硬件电路有故障或器件不良。
2.程序中不要上电初始化1302 ...

1,如果发热,断电几秒后再上电,大概率就好了,此时时钟也正常走了
2,初始化是网上下载的驱动里面的一个判断,就是读了秒数据,判定最高位为1,则写入默认的时间。
3,电池是有的,但是经常也会在上电时被初始化。
如果不放电池,则上电后出现芯片发热的情况会比较多。有电池的情况比较少。
回复

使用道具 举报

10#
ID:1109793 发表于 2025-7-16 19:03 | 只看该作者
DW2003 发表于 2025-7-16 18:07
我想实现长按和短按一个效果,没有区别,且不影响程序运行

那就只需要在按键断开时操作就行了吧。无论按多久都一样。
或者只处理按下时操作也一样啊。
回复

使用道具 举报

11#
ID:1133081 发表于 2025-7-17 07:33 | 只看该作者
DW2003 发表于 2025-7-16 18:07
我想实现长按和短按一个效果,没有区别,且不影响程序运行

这个示例中读按键程序是查询方式,长按不松手不影响其它程序运行。
回复

使用道具 举报

12#
ID:996773 发表于 2025-7-17 08:56 | 只看该作者
我是用的计数,读取按键值发现按下了,寄存器加1,不要执行,还是去各干各的,转一圈回来再读键值

发现没按下就ljmp去执行短按,如果发现还是按下的再继续加1,加到你喜欢的值和时间再去执行长按键
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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