打印
[51单片机]

按键数码管复用扫描,按键按下有暗影,大虾支招

[复制链接]
2879|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

这是大概的原理图,为了看起来简便,只画了两路。
我选用的单片机支持大电流输出,所以不需要任何驱动IC。

数码管是采用的LED正反并联方式设计的。按键接公共端通过二极管并接在一个输入IO上。
显示扫描原理正反各扫一次,正扫描的时候,公共端轮流为1,其他为Z,段码上需要亮的输出0,不亮的为Z。反扫描的时候公共端轮流为0,其他为Z,段码上需要亮的输出1,不亮的为Z.
由于显示扫描的时候CPU的IO口由于电流大,所以公共端输出0的时候压降会很大,基本有0.5V以上,所以不能在显示周期进行按键扫描。等所有按键扫描完成后再单独加几个周期进行按键扫描,按键扫描的时候段码全部为Z,只有公共端轮流变0,其他为Z。

现在遇到的问题是,当按键一直按着的时候,有些不亮的笔段会暗亮。例如图中,S2一直按着,某个显示周期IO输出为红字标注,此时,D1会正常发光,但由于R3的存在,会有很小的电流流过D5,造成D5暗亮。
如果加大R3,暗亮会消失,但这时按键扫描会混乱。

请大侠支招,有何改进办法?


相关帖子

沙发
宇容创行| | 2017-12-25 19:37 | 只看该作者
硬件设计不合理

使用特权

评论回复
板凳
宇容创行| | 2017-12-25 19:38 | 只看该作者
需要增加一个io

使用特权

评论回复
地板
广东梁百万| | 2017-12-25 21:42 | 只看该作者
看不明你的设计思路,我的常用做法如下图,
显示时要把p3.2口置1;按键查询时p2口全部置1,把p3.3~p3.6置1,把p3.2口置0,跟着逐个查询p2口是否有低电平输入。

IMG_20171225_213331.jpg (71.68 KB )

IMG_20171225_213331.jpg

使用特权

评论回复
评论
qht635644 2018-11-9 17:29 回复TA
你这种操作是实验室阶段,人家这样做使用双向扫描数码管的原因就是为了节省io口。楼主能解决暗亮的问题的话8个io口就能实现三位数码管显示以及四个按键的扫描。然而你这种方法最少都要13个io口。 
5
一周一天班| | 2017-12-27 16:03 | 只看该作者
穷人+小白一枚。

使用特权

评论回复
6
elife| | 2017-12-29 21:17 | 只看该作者
在SEG有输出0时,同步把KEYIN设置为输出0. 前提是KEYIN可以设置为输出。

使用特权

评论回复
7
haibao1213| | 2018-1-3 16:59 | 只看该作者
确实是硬件问题,你一直按着,R3电阻供电过来了,所以会有这样的问题,按键复用,要用IO来控制,需要加一个IO控制。欢迎技术 交流Q67229740.松翰,义隆,飞凌各系列芯片都有,可软件开发,代烧等服务。

使用特权

评论回复
8
zqx1000| | 2018-4-10 21:29 | 只看该作者
kankan

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

35

帖子

2

粉丝