找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3547|回复: 4
打印 上一主题 下一主题
收起左侧

MCU矩阵键盘当键被按下时,为什么对应的位被拉低,而不是被拉高呢?

[复制链接]
跳转到指定楼层
楼主

1到4位是高位1111,5到8为低0000,当S1被按下时,第1位被拉低,为什么呢?为什么不是第5位被拉高,求比较深入原理性的解答
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155507 发表于 2020-8-1 15:12 | 只看该作者
因为内部上拉的输出电流小,被拉低了
回复

使用道具 举报

板凳
ID:102168 发表于 2020-8-1 16:30 | 只看该作者
这个得结合MCU侧的情况来说。
除非事先设置了某IO口的强上拉输出,否则此IO口输出默认是集电极开路(PNP三极管)或漏极开路(场效应管)输出。这点你找找相关的单片机的各端口介绍就知道了

当MCU控制该IO口的三极管或场效应管开启(导通)时,该IO口被强制下拉到地,输出低电平,并且允许的灌入电流还比较大,驱动能力很强,即强下拉。

当MCU控制该IO的三极管或场效应管关闭(不导通)时,若没有加上拉电阻,则该IO口则相当于悬空的,此IO口就无法输出高电平。
要输出高电平只能通过MCU内部或外部的上拉电阻(一般上千欧的电阻)来实现了,
这样通过上拉电阻形成的高电平输出电流很小(以电源5V,上拉电阻10k为例,则理论最大输出电流只有5/10000=0.5mA),这样的驱动能力是很弱的,所以称为弱上拉。

因为MCU的以上特点,所以大家大都通过低电平来驱动外设。
(当然你想通过强上拉输出驱动外设也是可以的,但是不建议,因为外设一旦短路,则MCU的电源电压可能受此端口影响造成无法工作)

按此帖提到的矩阵键盘的按键表现,说明的对应的高电平是通过上拉电阻形成的。
弱上拉遇到了强下拉,自然是强下拉"厉害"一些,所以输出低电平也就不奇怪了。

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:213173 发表于 2020-8-1 21:23 | 只看该作者
下图是MCU的准双向I/O口等效简化图。当Q1截止,Q2导通,两个I/O口输出各为高电平和低电平。当按键按下时,电流由VCC经R1-PX.0-K1-PX.4到GND,PX.0与PX.4完全导通,所有电压降全部由R1承担,所以两个I/O口都呈低电平,不可能呈高电平。

回复

使用道具 举报

5#
ID:804115 发表于 2020-8-3 00:55 | 只看该作者
wulin 发表于 2020-8-1 21:23
下图是MCU的准双向I/O口等效简化图。当Q1截止,Q2导通,两个I/O口输出各为高电平和低电平。当按键按下时, ...

简单明了,不愧是大神,admin的金币快过来!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表