请教个简单的问题,图中的二极管的作用

[复制链接]
4451|21
 楼主| 电路初学者 发表于 2007-5-15 11:18 | 显示全部楼层 |阅读模式
请教个简单的问题,图中的二极管的作用是什么? 防止两个键同时按下时,引脚间高低电平的短接?
 楼主| 电路初学者 发表于 2007-5-15 13:14 | 显示全部楼层

?

是不是太简单,高手不愿回答;新手没考虑过?
ayb_ice 发表于 2007-5-15 13:20 | 显示全部楼层

图有问题...

 楼主| 电路初学者 发表于 2007-5-15 14:06 | 显示全部楼层

图没错

工作过程是不是这样,P1.4-P1.7应先置0,检测有无键按下;有键按下时,再在
P1.4-P1.7输出扫描信号,进一步检测哪个按键.
ayb_ice 发表于 2007-5-15 14:30 | 显示全部楼层

K4被短路了....

 楼主| 电路初学者 发表于 2007-5-15 15:43 | 显示全部楼层

ayb_ice眼亮, 应是下图

请大侠指教
xwj 发表于 2007-5-15 16:03 | 显示全部楼层

动态扫描式键盘,P14~P17轮流输出低电平

二极管用于防止两个强输出口打架的
绿阴深处 发表于 2007-5-15 16:06 | 显示全部楼层

没错,正如你所说

有中断产生后再用P14-7输出扫描信号,检测P12-3判断是哪个按键
ayb_ice 发表于 2007-5-15 16:22 | 显示全部楼层

我不喜欢中断方式扫键...

要外加与门电路,还占用一中断源...
更重要的是中断方式不大灵活,如松开按键才处理方式,消抖不方便(若在中断中延时严重影响其它中断),长按键功能键不好做等等...
也不符合软件取代硬件的思想....
二极管完全是多余的,简单的2X4或3X3就搞定了...
maychang 发表于 2007-5-15 16:22 | 显示全部楼层

有必要用这些二极管吗?

据我看这四个二极管根本没有用。
xwj 发表于 2007-5-15 16:58 | 显示全部楼层

对于51这样的弱上拉确实没用,但对于推挽强输出的芯片就有

想想K1K2同时按下时...
otisyf 发表于 2007-5-15 19:52 | 显示全部楼层

实际上用N+1个I/O口可以实现N*N个按键

conwh 发表于 2007-5-15 20:06 | 显示全部楼层

LS的意思用选通的方法?

maychang 发表于 2007-5-15 20:15 | 显示全部楼层

回 xwj

强推挽输出的单片机如AVR,口线也可以设置成输入。
任一时刻让P14-P17只有一条线输出,其余输入,就没有“打架”的可能了。
当然,程序跑飞时还是有可能。但在此电路中,如果程序跑飞且K1K5同时按下,P12P13也有“打架”的可能。
otisyf 发表于 2007-5-15 20:48 | 显示全部楼层

re

软件上需键一个编码表,任一时刻让5个I/O口只有一条线输出,其余输入
硬件接口,5个普通I/O口,一个中断口,另相应数目二极管及电阻,一个三极管。
xwj 发表于 2007-5-15 20:52 | 显示全部楼层

嗯,这条蛇好像多了几只脚...

当然,是对于单片机的可配置双向IO口来说的。。。

还有那个74ALS08。。。
竟然是ASL...
iC921 发表于 2007-5-15 21:22 | 显示全部楼层

防止两个键同时按下时,引脚间高低电平的短接?

就是不要那几个二极管,它们要短接,谁能为之奈何?
 楼主| 电路初学者 发表于 2007-5-16 19:10 | 显示全部楼层

实际应用中可能不会采用这样的电路,不知原理还有价值

查了几本书,在96年版关于51单片机的一本经典教材上,发现了如下的图,图中
就串联了二极管。在何立民主编的一本书上也有类似的原理图。但书中未对二极管作说明
ayb_ice 发表于 2007-5-17 07:51 | 显示全部楼层

随便说说

C8051F的IO可以配置成标准51的弱上拉,无上拉都可以...
再说用电阻也可以...
ashaoxin 发表于 2007-5-17 11:15 | 显示全部楼层

同意9楼观点

路过!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

8

帖子

0

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