键盘的多个按键送到单片机同一外部中断口,这样设计可...

[复制链接]
4954|20
 楼主| eebushe 发表于 2015-11-19 15:26 | 显示全部楼层 |阅读模式
如图,我想让键盘的KEY5、KEY6、KEY7三个口送到单片机的同一外部中断,检测到有低电平时,再去扫描键盘确定是哪个按键按下,应该怎么设计啊?求指点

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| eebushe 发表于 2015-11-19 15:59 | 显示全部楼层
与门应该是可以的吧?
popeye021 发表于 2015-11-19 16:13 | 显示全部楼层
按你的想法,按下SW1和按下SW2时如何区分?
 楼主| eebushe 发表于 2015-11-19 16:28 | 显示全部楼层
popeye021 发表于 2015-11-19 16:13
按你的想法,按下SW1和按下SW2时如何区分?

我想先判断有没有按键按下,如果有再去扫描看是哪个按键按下
popeye021 发表于 2015-11-19 16:47 | 显示全部楼层
本帖最后由 popeye021 于 2015-11-19 16:49 编辑
eebushe 发表于 2015-11-19 16:28
我想先判断有没有按键按下,如果有再去扫描看是哪个按键按下

我的问题就是,你如何判断是哪个按键按下?
如果Key5,6,7照常接IO口,那再接外部中断就是多次一举了。
 楼主| eebushe 发表于 2015-11-19 16:52 | 显示全部楼层
popeye021 发表于 2015-11-19 16:47
我的问题就是,你如何判断是哪个按键按下?
如果Key5,6,7照常接IO口,那再接外部中断就是多次一举了。
...

我判断到有按键按下,也就是有中断的时候我才去扫描判断是哪个按键按下了,如果没有终端就不去扫描,这样就省去了空扫描了啊
chunyang 发表于 2015-11-19 17:35 | 显示全部楼层
根据中断的响应去扫描键盘是标准做法,多中断源根据你需要的逻辑采用多输入逻辑门汇接到MCU的中断输入IO即可。
 楼主| eebushe 发表于 2015-11-20 09:16 | 显示全部楼层
chunyang 发表于 2015-11-19 17:35
根据中断的响应去扫描键盘是标准做法,多中断源根据你需要的逻辑采用多输入逻辑门汇接到MCU的中断输入IO即 ...

真厉害,后来又查看了很多也都说用逻辑门,谢谢。
ecoren 发表于 2015-11-20 10:55 | 显示全部楼层
你这是矩阵键盘,搭建逻辑门电路比独立键盘会复杂很多,
请折中功耗和成本,,,,,,,,,,,,,,,,,,
lgq1542380129 发表于 2015-11-20 12:44 | 显示全部楼层
个人认为:再加三个二极管就可以了,把KEY5-7分别加二极管,然后接在一起,再接中断。
 楼主| eebushe 发表于 2015-11-20 17:11 | 显示全部楼层
lgq1542380129 发表于 2015-11-20 12:44
个人认为:再加三个二极管就可以了,把KEY5-7分别加二极管,然后接在一起,再接中断。
...

但是平常KEY5-7是被拉高的,接二极管时钟导通,貌似不妥
chunyang 发表于 2015-11-20 17:16 | 显示全部楼层
ecoren 发表于 2015-11-20 10:55
你这是矩阵键盘,搭建逻辑门电路比独立键盘会复杂很多,
请折中功耗和成本,,,,,,,,,,,,,,, ...

这里的逻辑门电路与键盘电路无关,仅仅是为了中断汇接而已。在只有少量外中断资源的MCU平台上搭矩阵键盘还要考虑低功耗,这是必须的。现在有很多支持键盘中断的MCU型号,这时当然无需多此一举。不需要考虑低功耗的应用自然也无需这么做,直接定时扫描就是,中断法可是能够支持休眠键盘唤醒的。
另外,逻辑门电路只要正确选型,在静态下的功耗比MCU的运行功耗更低。对此,注意读器件手册。
lgq1542380129 发表于 2015-11-20 18:42 | 显示全部楼层
eebushe 发表于 2015-11-20 17:11
但是平常KEY5-7是被拉高的,接二极管时钟导通,貌似不妥

二极管的负极接KEY5-7,正极接在一起,之后接中断引脚。
 楼主| eebushe 发表于 2015-11-23 13:45 | 显示全部楼层
lgq1542380129 发表于 2015-11-20 18:42
二极管的负极接KEY5-7,正极接在一起,之后接中断引脚。

这样接当有按键按下时是有其中一个二极管负极为低电平,但是这个二极管也未必能导通吧,中断口是输入端口不能提供导通电压吧,我这样理解有问题吗
lgq1542380129 发表于 2015-11-23 13:54 | 显示全部楼层
eebushe 发表于 2015-11-23 13:45
这样接当有按键按下时是有其中一个二极管负极为低电平,但是这个二极管也未必能导通吧,中断口是输入端口 ...

中断设置为下降沿触发就好了。
 楼主| eebushe 发表于 2015-11-23 14:11 | 显示全部楼层
lgq1542380129 发表于 2015-11-23 13:54
中断设置为下降沿触发就好了。

不是很明白,二极管导通不了,中断也没有下降沿啊,求详细解释,谢谢
lgq1542380129 发表于 2015-11-23 14:23 | 显示全部楼层
eebushe 发表于 2015-11-23 14:11
不是很明白,二极管导通不了,中断也没有下降沿啊,求详细解释,谢谢

不知道楼主用的什么片子,一般外部中断内部会有上、下拉电阻。不然他不知道上升沿,下降沿的。楼主不放心将中断引脚上拉。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| eebushe 发表于 2015-11-23 14:28 | 显示全部楼层
lgq1542380129 发表于 2015-11-23 14:23
不知道楼主用的什么片子,一般外部中断内部会有上、下拉电阻。不然他不知道上升沿,下降沿的。楼主不放心 ...

这样一说好像明白了,谢谢
wh6ic 发表于 2015-11-23 14:31 | 显示全部楼层
eebushe 发表于 2015-11-23 13:45
这样接当有按键按下时是有其中一个二极管负极为低电平,但是这个二极管也未必能导通吧,中断口是输入端口 ...

R13、19、20 提供有Vcc,扫描的键按下时低电平,二极管就通了
lgq1542380129 发表于 2015-11-23 14:33 | 显示全部楼层
eebushe 发表于 2015-11-23 14:28
这样一说好像明白了,谢谢

画的比较丑,楼主见谅。记得要有三个二极管啊。按键扫描函数建议楼主不要再中断里进行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

41

帖子

1

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