头像-162126

JESSE7

  • 江西省九江市
  • 单片机 嵌入式
  • 消费电子

个人成就

获得 21 次赞

帮助过59人

project2.rar

按键的使用频率也是非常高,所以这篇帖子我们就来看看按键的使用方法。图一有两个三极管,前面那个三极管是反向之用,后面那个三极管集电极开路。对于图一,如果前面的三极管输入为‘0’,那么第一个三极管便会截至,导致后面的三极管导通,使输出直接接地。当前面的三极管输入为‘1’的时候呢,前面导通,后面截止,这时候输出便是一个高阻态。这就相当于图二的模型,开关闭合,输出接地,开关打开,输出便悬空了。上拉便是如图三所示,输出接一个电阻到vcc。当开关断开时,输出会被拉到接近vcc的电平,这个时候估计会有人会产生这样的疑惑:vcc通过一个电阻到输出,电阻不就分压了,输出不就应该是个低电平吗?我一开始接触上下拉的时候也这样想过。电阻分压的前提是vcc到输出有一定电流,前面我们分析了输出到地的三极管是截至的,这时候输出到地之间接近断路,就算有电流也是极小的,故此时输出便被拉到接近vcc的电平了。我们分析了开漏上拉,那开漏能下拉吗?我们要注意,开漏模式下如果没有进行上拉,那么输出端口是没有驱动能力的,可以导通到地,但是输出不了一个明确的高电平,所以如果在外部下拉的引脚上开启开漏模式,那么输出就会出现问题。下拉更多情况下是用于得到一个低电平,例如这个程序中的按键,如果不进行下拉(外部或内部),那么在按键没有按下的情况下,这个引脚是浮空的,引脚的电平是不确定的,那读取电平的时候多少会出现问题。 二:按键消抖问题我们平时用到的开关一般都是机械弹性开关,按键按下的时候并不会马上稳定的接通,会有几毫秒到几十毫秒的抖动时间。在这个程序中,如果不对这种抖动进行处理,那这个按键就会非常不好使。我们用软件对按键进行消抖一般有两种方案,一是重采样,即程序中所用的方法,延时一段时间之后再进行一次检测;二是持续采样,即多次采样,然后进行处理,最后以处理结果判断按键是否按下。还有就是进行硬件消抖,即接上原理图中的电容,用电容的充放电特性来对抖动过程中产生的毛刺进行平滑处理。并没有说那种方式好,这都需要大家亲自去实验。

  • 浏览量:593
  • 下载量:0
  • 下载:0IC币
  • 上传者:JESSE7
  • 上传时间:2017-07-23