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

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条回答
downtoearth
1楼-- · 2020-01-17 14:47
 精彩回答 2  元偷偷看……
mcu_lover
2楼-- · 2020-01-17 18:08
downtoearth 发表于 2014-3-1 08:53
哦原来状态机是可以的,但现在就是不知怎样能可靠检测按下和抬起。就一串方波,不知用不用消抖。望指教! ...

一样要消抖,连续几次检测到按下,就确定按下了。
downtoearth
3楼-- · 2020-01-17 23:53
mcu_lover 发表于 2014-3-1 09:19
一样要消抖,连续几次检测到按下,就确定按下了。

哦,待我想想。
gentlerain
4楼-- · 2020-01-18 03:08
显示和扫键是分开的。
点亮数码管时,根据显示内容不一样,C1~C4拉低。
显示完毕后,把C1~C4依次拉高,然后读取PIN43。如果读到高电平,说明对应的按键被按下。
downtoearth
5楼-- · 2020-01-18 07:09
gentlerain 发表于 2014-3-1 09:37
显示和扫键是分开的。
点亮数码管时,根据显示内容不一样,C1~C4拉低。
显示完毕后,把C1~C4依次拉高,然后 ...

这个明显是接共阳数码管的,为什么显示时,是拉低C1~C4。应该是扫一个数码管读一个相应的按键,
不会是显示和扫键分开,我想是说错了吧!
gentlerain
6楼-- · 2020-01-18 12:38
 精彩回答 2  元偷偷看……

一周热门 更多>