迷惑不解的按键识别与数码管电路

2020-01-16 18:25发布

正在研究如下一个电路:
ledkeys.JPG (121.35 KB, 下载次数: 0) 下载附件 2014-1-11 19:43 上传

单片机是贴片44脚的STC89C54, PIN30-P37即P0.7~P0.0, PIN43即P1.3, PIN18~P21即P2.0~P2.3,
LED是四位数码管,


PIN21-PIN18位码输出,实测均接高电平时,一般理解:
PIN43被电阻R48下拉,当按键按下时应该是晶体管导通,PIN43应为高电平。

由位码扫描与PIN43的电位,就可以得知是哪个按键按下。
但是,实际是这样的:

未按键时PIN43的电压是0.7V,而二极管D1-D4的正极均为0.65V,负极为0.58V,而按下按钮后二极管正极不变,负极为1.4V左右。

按理如果三极管导通的话,EC压降0.7,二极管压降0.7,PIN43的电压应该是3.6V左右。
实际情况只能判断是不导通。

但这为何?而且二极管的正负端电压变化因何而起呢?

请高手帮忙分析一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
mcu_lover
1楼-- · 2020-01-16 21:48
想复杂了。
就是在扫描数码管时候,顺便读一下相应的按键是否按下,没有按下为低电平,按下之后为高电平。其它时间均不扫描按键。
mrok
2楼-- · 2020-01-17 01:28
 精彩回答 2  元偷偷看……
astankvai
3楼-- · 2020-01-17 01:35
mrok 发表于 2014-1-11 22:07
实际是:按键按下后,PIN43并未得到想象中的高电平。

扫描速度快,用示波器看就可以了.
downtoearth
4楼-- · 2020-01-17 07:34
请教一下,这种连接的,按键,单击,长按,连击。的算法。状态机好像不可以。
downtoearth
5楼-- · 2020-01-17 07:51
本帖最后由 downtoearth 于 2014-3-1 07:10 编辑
mcu_lover 发表于 2014-1-11 20:16
想复杂了。
就是在扫描数码管时候,顺便读一下相应的按键是否按下,没有按下为低电平,按下之后为高电平。 ...


请教一下,这种连接的,按键,单击,长按,连击。的算法或者思路。状态机好像不可以。
mcu_lover
6楼-- · 2020-01-17 11:45
downtoearth 发表于 2014-3-1 07:02
请教一下,这种连接的,按键,单击,长按,连击。的算法或者思路。状态机好像不可以。 ...

当然可以。按键键值获取是最底层的部分。只要能可靠检测到按下与抬起。后面的单击长击,连击都可以用状态机解决,与常用的按键一致。

一周热门 更多>