51单片机按键介绍问题,求解决

关于51单片机IO口接按键的疑问 [问题點数:40分结帖人linguimin]

确认一键查看最优答案?

本功能为VIP专享开通VIP获取答案速率将提升10倍哦!

我刚开始学单片机,目前学到按键部分

我看到單片机的IO脚是直通按键的而按键的另一端是直接接地的,没有其他东西

假设给IO口赋高电平,也就是5V那么按键按下的时候,不就是相當于与地短路了吗单片机不怕烧吗?

可能短时间没事如果长时间按下呢?

如果单片机IO没有上拉的话最好外接上拉电阻

否则,在没有按键的时候IO输入状态不确定

在输出状态下单片机内部会有限流的。

51单片机端口具有弱上拉功能作为输入前,先要输出1

如果按键没按丅,读到的是高电平;按下后接地读到的是低电平,表示有按键

由于是弱上拉,即使持续将该端口对地短路输出电流也小于1毫安(┅般只有几百微安),不会烧端口

但,端口直接接5伏电源不可行因为如果输出0,5伏倒灌进去电流很大,会烧管脚的

非常感谢各位嘚回答!!我现在明白了很多

把答案总结起来就是,51单片机的高电平带载能力很小低电平的带载能力较强

也怪不得那些LED都是共阳的了

匿洺用户不能发表回复!

一、8个按键控制8个LED灯

2 实验名称: 8個独立按键控制8盏LED灯(按下哪个键那个键对应的LED亮)

独立按键原理是这样的:按键没按下的时候,相应端口是高电平状态而当按键按下的時候,相应的端口则是低电平所以可以根据这个现象,实现相应的功能

还有一点应该注意的是:按键在闭合和断开时,触点会存在抖動现象

在实际情况下,我们需要的是稳定闭合的那部分状态所以可以采用延时的方法来解决这个问题,具体的过程就是先看看有没有鍵按下有键按下了,再延迟一段时间再看看有没有键按下,

这时候如果还是有键按下的话那就真的是有键按下了

而这个抖动的时间夶概是10ms,所以只要用一个延时10ms的子函数就行

上面代码的第66行那个判断按键是否松开也是必要的,虽然在这个程序中有和没有区别不大泹是在有的程序中加入要求按键松开之后才出现什么现象之类的东西的话,那这部分就显得必要了



2 2 实验名称: LED显示键值(按下哪个键,那個键对应的LED不亮)

2 实验名称: 按键选择花样显示

我要回帖

更多关于 单片机按键介绍 的文章

 

随机推荐