按键与显示混合电路,如何实现判断出按键的单击长按

[复制链接]
400|3
手机看帖
扫描二维码
随时随地手机跟帖
我只想学习啊|  楼主 | 2019-12-20 14:50 | 显示全部楼层 |阅读模式
本帖最后由 我只想学习啊 于 2019-12-20 14:52 编辑

第一个图是两片74HC595级联驱动四位共阳数码管电路,另一个图是与单片机相连的I/O口,数码管显示部份好弄,只要想显示什么就往595送什么数据就行,但按键部份就比较难理解了,那个按键按下是通过判断KEY_IO变高的瞬间,595位选的值,但是又该如何怎么判断按键单击,长按,还有是不是需要每扫过一个数码管就要进入按键扫描函数判断按键按下。有没有遇到过类似的电路编程问题的?可以分享一下吗

排针

排针

stm32f030

stm32f030

595

595

使用特权

评论回复
评论
我只想学习啊 2019-12-20 14:52 回复TA
其中,DR com1-4是用来控制数码管位选的,5-8没有用到 

相关帖子

gx_huang| | 2019-12-20 15:31 | 显示全部楼层
假如8个数码管,动态扫描显示,每个数码管需要2.5ms,8个数码管需要20ms。
时间周期是t=20ms,t0-t7,分别对应数码管0-7,也对应你的4个按键,比如KEY4对应t0,每个t0时段检测按键是否按下,连续n次都按下就是持续按下,这没有什么难度呀。
关键是软件的架构,是2.5ms进中断处理,还是来一个2.5ms的标志查询处理一次,软件结构很重要。

使用特权

评论回复
评论
我只想学习啊 2019-12-20 17:30 回复TA
那我在每次位选完了之后都让他读取一次有没有按键按下,这样可以吗? 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

29

帖子

0

粉丝