ssmart 发表于 2011-6-17 17:03:52

请问附件电路图是如何一个IO做按键扫描和控制LED灯?

请问附件电路图是如何一个IO做按键扫描和控制LED灯?

如下图,我测量到LED+端是一个5V宽度很窄的脉冲,如何检测到按键是否按下?按下后好像不是0V

而且按下时候LED灯是不亮的,LED灯亮是还是由KEY1-4四个IO来自由控制。

谢谢!


电路图有点问题:最下方我测量的不是接GND,可能是另外一个IO,但是在按键扫描和LED灯亮的所有时间内,它一直是低电平。
http://cache.amobbs.com/bbs_upload782111/files_41/ourdev_649759IYHPP4.jpg
(原文件名:1.jpg)




补充问一下:如果我想利用这个电路,只是想扫描按键,如何扫描到?

hepday 发表于 2011-6-17 17:09:11

这个关注一下,也许用的桌

alengend 发表于 2011-6-17 17:12:34

关注一下,不明白。。。

wowbanui 发表于 2011-6-17 17:16:39

拉低,点亮LED
再拉高,检测,如果为低,则判断按键按下(并联电容一般起消抖作用)

循环,由于时间间隔小,LED不会闪烁,按键也能快速响应

ssmart 发表于 2011-6-17 17:20:42

谢谢3L的回复,问题是,我拉高,按下按键K1,去读KEY1的IO状态,是高还是低?
如果10K电阻=0欧,我会很肯定,不知道10K的时候,能不能读到低状态?


实验了一下,设置为高电平,按键按下,KEY1的IO状态读不到0,我还是将最下方接GND的状态下读的。

gentlerain 发表于 2011-6-17 18:03:11

我认为是这样的一个过程:
1.要使LED点亮,LED+输出高电平,4个IO口拉低可使LED点亮;
2.扫描按键时,LED+输出低电平(必须!),4个IO口同时输出高电平,通过10K电阻对电容充电;
3.充电一段时间后(1ms左右),4个IO口置成不带上拉输入;
4.此时如果按键按下,读到的是低电平;如果按键未被按下,由于电容充了电,读到的将是高电平。

不知道对不对,请各位高手指教。

xiaowu191 发表于 2011-6-17 18:35:07

有点意思,学习学习

ssmart 发表于 2011-6-18 08:45:24

5L的方法好像还是读不到,那个电容我暂停3楼说法是消抖的。。。

ssmart 发表于 2011-6-21 09:03:06

人工置顶一下...我现在把下方的接GND改成-5V来实现控制了,但是感觉不对

yanyinzhong 发表于 2013-10-26 10:47:56

内部上拉如果是100k就ok了

kebaojun305 发表于 2013-10-26 10:55:24

内部上拉 一般都是50~60K左右。
页: [1]
查看完整版本: 请问附件电路图是如何一个IO做按键扫描和控制LED灯?