请教矩阵按键和数码管显示怎样配合

[复制链接]
2941|11
 楼主| yyh1910 发表于 2014-5-9 10:22 | 显示全部楼层 |阅读模式
现在有5*3矩阵键盘和10位8端段数码管,需要进行按键扫描和数码管动态显示。一个朋友说矩阵键盘每个5ms扫描一个公共端,数码管动态显示每位小于30ms,按钮消抖5~10ms。怎样在矩阵键盘扫描中插入数码管显示,或者有其他合理的写法
maychang 发表于 2014-5-9 11:13 | 显示全部楼层
数码管动态显示每位小于30ms

时间太长,必定闪烁。
mmuuss586 发表于 2014-5-9 12:39 | 显示全部楼层
你可以在刷新显示的时候,中间延时里,加扫描键盘
allround 发表于 2014-5-9 13:06 | 显示全部楼层
定时扫描按键和定时驱动显示.
df_flying 发表于 2014-5-9 14:06 | 显示全部楼层
你每个循环只扫描一位数码管(扫描函数里加一个i++,i%=8;作为当前扫描的位),检测一次按键,按键消斗用5-10ms,键值判断和数码管装载扫描,也用不到10ms吧,没必要先读完键值,再整个单独的扫描一下的。
dirtwillfly 发表于 2014-5-9 21:27 | 显示全部楼层
键盘扫描和数码管刷新是不冲突的。
 楼主| yyh1910 发表于 2014-5-10 09:17 | 显示全部楼层
df_flying 发表于 2014-5-9 14:06
你每个循环只扫描一位数码管(扫描函数里加一个i++,i%=8;作为当前扫描的位),检测一次按键,按键消斗用5- ...

我想在数码管显示延时时加入按键扫描,怎样使按键扫描延时5ms,再继续显示数码管。是进入扫描代码后,定时器开始定时5ms吗
grasswolfs 发表于 2014-5-10 09:26 | 显示全部楼层
原来的延时就是用i--等待,直接改成扫描代码估计一下延时之后再回去就可以了啊,再根据实际效果调试一下
grasswolfs 发表于 2014-5-10 09:27 | 显示全部楼层
话说加几个595妥妥的静态显示多好,个人感觉现在就喜欢静态不喜欢动态了
maychang 发表于 2014-5-10 10:21 | 显示全部楼层
yyh1910 发表于 2014-5-10 09:17
我想在数码管显示延时时加入按键扫描,怎样使按键扫描延时5ms,再继续显示数码管。是进入扫描代码后,定 ...

很简单。
定时扫描显示数码管,例如2.5ms显示一位,那么10位共用25ms,即每秒刷新40次,可以保证不会闪烁。
每次更新显示时检测一次键盘,与上次检测相比较,若有变化则纪录下来,但不作处理。连续若干次(此例中可以3次或4次)不变,则认为键盘稳定,读出键盘,转相应处理例程。
大可不必每次检测键盘都延时5ms,那样太浪费时间了。
ningling_21 发表于 2014-5-10 15:19 | 显示全部楼层
定时2MS,扫描数码管...

按键消抖不要用延时...

两者互不相干
 楼主| yyh1910 发表于 2014-5-17 15:56 | 显示全部楼层
maychang 发表于 2014-5-10 10:21
很简单。
定时扫描显示数码管,例如2.5ms显示一位,那么10位共用25ms,即每秒刷新40次,可以保证不会闪烁 ...

你这方法不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

96

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部