关于单片机IO口输入输出复用问题

请问,用下图能否实现用IO口扫描按键是否被按下,再输出高电平点亮小灯。当按键不被按下时,IO口是否一直都是低电平(通过二极管到地),单片机低电平范围0-2V,望解答,谢谢... 请问,用下图能否实现用IO口扫描按键是否被按下,再输出高电平点亮小灯。当按键不被按下时,IO口是否一直都是低电平(通过二极管到地),单片机低电平范围0-2V,望解答,谢谢。 展开
 我来答
11kxmx
2014-09-03 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:70%
帮助的人:2465万
展开全部

首先电阻应该接电源正极,按键一端接地,但还不行,按键检测时 ,IO口先输出高电平,若有按键按下则检测到低电平,所以在你检测按键之前,LED已经处于亮态了,这和你检测到按键按下再亮是矛盾的

当按键不被按下时,IO口是高是低由程序决定的,复位时IO口黙认是作为输入用的,输出是高电平

但负载能力比较弱

将LED改为低电平驱动是可行的,平时IO时输出高平可作为输入,LED 不亮,按下按键后,单片机检测到低电平,可输出低电平,LED就一直亮了(也可由程序控制亮一段时间灭,以便再次进行检测)

wwwusr
2014-09-03 · TA获得超过2292个赞
知道小有建树答主
回答量:744
采纳率:100%
帮助的人:642万
展开全部
个人理解:
如果你用51 P0口,这样是可以的。
解释:P0口没有内部上接电阻,你P0.0外接一个100K的上拉,1K改成5K,同时在LED上要串470电阻限流
这样,平时P0.0是高电平但上拉很弱(不足以让LED亮起来),按下键是低电平,可作正常IO的按键检测。
检测到动作后,让P0.0为高,这时它等同于直接到VCC,这时LED就正常亮了,即使这时按下键,也只是相当于在IO上又并了一个电阻,LED也正常亮。

。。。。实际情况呢?你来回答吧,哈哈。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无畏无知者

2018-03-19 · TA获得超过4.5万个赞
知道大有可为答主
回答量:2.1万
采纳率:86%
帮助的人:5176万
展开全部
要检测按钮开关状态,首先得把端口设置为输入模式,
(而作为状态输入,你总得提供高低电平两种状态以选择,显然这里不能提供高电平;)
在检测到按钮按下后,再把该端口设置为输出端,并输出高电平以点亮LED,但是你的电路中,不加个限流电阻在LED上,会把端口烧毁的;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一万光年MEGn0
2014-09-03 · TA获得超过3712个赞
知道大有可为答主
回答量:4602
采纳率:67%
帮助的人:1059万
展开全部
这个电路有问题,按键和电阻的位置最好交换一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式