切换到宽版
  • 3825阅读
  • 33回复

一个普通IO口,内带弱上拉功能,能识别2个按键 [复制链接]

上一主题 下一主题
离线wjb444

发帖
44
M币
63
专家
0
粉丝
11
只看该作者 10楼 发表于: 03-10
电路全了,就是这么精简,所以才感兴趣。

型号是pic12c508   接6脚,的确没adc功能
离线zhuls

发帖
1577
M币
3817
专家
3
粉丝
27
只看该作者 11楼 发表于: 03-10
回 wjb444 的帖子
wjb444:样品大批量生产,电阻都是10k (2018-03-10 11:51) 回 wjb444 的帖子

两个电阻都 是10K,不应该,以内上拉47K算,K1按下时,IO还是高电平的。同时不管有没有上拉,K1都测不到。除非你的VDD是更低于1.2V才会让IO的电平在K1按下时为低电平。
离线水表君

发帖
1338
M币
421
专家
42
粉丝
92
只看该作者 12楼 发表于: 03-10
回 zjzhuwenbin 的帖子
zjzhuwenbin:打开弱上拉,上拉10K电阻并联单片机内部上拉电阻,上拉阻值就小了。只能识别无电阻的开关。
开漏状态,两个按钮都能识别。
在两个状态一直切换,就能识别出来。 (2018-03-10 00:59) 回 zjzhuwenbin 的帖子

看不明白,开漏既然都能识别,那怎么判断出是K1还是K2?一直切换,当切换到开漏状态时,接电阻的按键和不接电阻的按键怎么识别??
离线zhuls

发帖
1577
M币
3817
专家
3
粉丝
27
只看该作者 13楼 发表于: 03-10
回 水表君 的帖子
水表君:看不明白,开漏既然都能识别,那怎么判断出是K1还是K2?一直切换,当切换到开漏状态时,接电阻的按键和不接电阻的按键怎么识别?? (2018-03-10 23:02) 回 水表君 的帖子

刚开始我也不明白。好来画一遍图再分析一下,果然可以,从逻辑上来说没什么问题,关键在电阻的取值。。

当内上拉电阻没有开启时,无论K1或K2按下,IO均为低,当开启内上拉后,只有一个键按下能让IO变低电平,另一个由于电阻分压的作用尚不能让IO达到电平翻转的门限,就这样来回倒腾内上拉的开与关2次,同时再判断IO的电平,综合一下就出结果了。
在线66ok66

发帖
1321
M币
1091
专家
9
粉丝
21
只看该作者 14楼 发表于: 03-11
回 zhuls 的帖子
zhuls:刚开始我也不明白。好来画一遍图再分析一下,果然可以,从逻辑上来说没什么问题,关键在电阻的取值。。
当内上拉电阻没有开启时,无论K1或K2按下,IO均为低,当开启内上拉后,只有一个键按下能让IO变低电平,另一个由于电阻分压的作用尚不能让IO达到电平翻转的门限,就这样来回 .. (2018-03-10 23:46) 回 zhuls 的帖子

你这样理解不对的,  高阻状态下,一般默认为高,但是也不稳定的, 这样的按键不安全的,再说按下是低的话 ,无法做到了两键区分,这只是个分支而已~  要做到一个脚两个键不是你这样想的,原图应该还有一个电容没有画 ,只要加入一个电容就很好办 ,无论是辩断充电或放电时间, 就能解决两个键基本上都能用了 ,  只要在充电或者放电时加入启动计数器,  取出两个数 ,由于带阻的充电或放电时间不一样,就会出现计数差 ,就能判别了
本帖最近打赏记录:共1条打赏M币+1
离线zhuls

发帖
1577
M币
3817
专家
3
粉丝
27
只看该作者 15楼 发表于: 03-11
歡迎探討,10楼已确定了,电路就这么简单。。
离线zhuls

发帖
1577
M币
3817
专家
3
粉丝
27
只看该作者 16楼 发表于: 03-11
回 66ok66 的帖子
66ok66:你这样理解不对的,  高阻状态下,一般默认为高,但是也不稳定的, 这样的按键不安全的,再说按下是低的话 ,无法做到了两键区分,这只是个分支而已~  要做到一个脚两个键不是你这样想的,原图应该还有一个电容没有画 ,只要加入一个电容就很好办 ,无论是辩断充电或放 .. (2018-03-11 10:37) 回 66ok66 的帖子

高阻状态下,没有默认这一说法,想当于开路,此时如果测电平,可能为高,夜可能为低,由外部电路来决定的,高阻即高阻抗,相当于开路,没有上下拉的情况下,接入电路,对电路没有任何影响。你可以问一下度娘。

当然如果说非要接一个电容,也是可以的,却离题了。
离线wjb444

发帖
44
M币
63
专家
0
粉丝
11
只看该作者 17楼 发表于: 03-11
原理上分析得通(通过内部上拉电阻),但奇怪的是外部分压电阻只有10K,而内部上拉电阻一般是>=47K.我觉得外部分压电阻100K会更好一些.
离线bxak

发帖
798
M币
435
专家
11
粉丝
89
只看该作者 18楼 发表于: 03-11
回 66ok66 的帖子
66ok66:你这样理解不对的,  高阻状态下,一般默认为高,但是也不稳定的, 这样的按键不安全的,再说按下是低的话 ,无法做到了两键区分,这只是个分支而已~  要做到一个脚两个键不是你这样想的,原图应该还有一个电容没有画 ,只要加入一个电容就很好办 ,无论是辩断充电或放 .. (2018-03-11 10:37) 回 66ok66 的帖子

LZ这电路可行,原理前面的坛友已说明,
但这两个电阻值要根据该型号单片机IO的高低电平电压门限(保留一定余量)来取
在线66ok66

发帖
1321
M币
1091
专家
9
粉丝
21
只看该作者 19楼 发表于: 03-11
那个说法强差人意,1,高阻,无论那个按下都低电平,这就已经是只有一个按键的作用,2一旦高阻,这样的结构是不稳定的,如果你懂模电就知道这样的高阻极易受干扰,3,内部上拉接入,靠电阻分压去区别其中一个电阻,让其中一个建不起作用,实际上这样是多余的,就是说内阻不接就两电阻对地低电平,这已经没法区别两个键分别起作用,内阻不接入,靠分压区别其中一个键没用,你不觉得多余吗?说到底就是仍是其中一个起作用,没办法两个起作用,另一个只不过变了低电平有效,高电平仍是无效,不是说起按键作用,是屏蔽了,这就是说到底两个低电平有效,一个高电平作用下屏蔽一个键,注意是利用分压屏蔽了,而不是说这个键起作用了,