IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 按键电路设计 -> 正文阅读

[嵌入式]按键电路设计

说起按键,这应该是最常见的人机交互方式了,几乎所有的电子产品都会带有,这篇文章带大家看看按键电路怎么设计

1. 按键抖动

在机械按键的触点闭合和断开时,都会产生抖动,为了保证系统能正确识别按键的开关,就必须对按键的抖动进行处理。
按键的抖动对于人类来说是感觉不到的,但对单片机来说,则是完全可以感应到的,而且还是一个很“漫长”的过程,因为单片机处理的速度在“微秒”级,而按键抖动的时间至少在“毫秒”级。
单片机如果在触点抖动期间检测按键的通断状态,则可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,从而引起误处理。因此,为了确保单片机对一次按键动作只作—次响应,就必须考虑如何消除按键抖动的影响。
在这里插入图片描述

按键抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到。按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。按键抖动会引起一次按键被误读多次。
为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。
在处理按键抖动的程序中,必须同时考虑消除闭合和断开两种情况下的抖动。所以,对于按键消抖的处理,必须按最差的情况来考虑。机械式按键的抖动次数、抖动时间、抖动波形都是随机的。不同类型的按键其最长抖动时间也有差别,抖动时间的长短和按键的机械特性有关,按键输出的信号的跳变时间(上升沿和下降沿)最大是在20ms左右。按键一次闭合最短的时间大概是120ms。按键消抖的关键是提取稳定的低电平(或高电平)状态,滤除按键稳定前后的抖动脉冲。

2. 常见的按键设计方案

2.1 独立按键(低电平触发)

如下图所示为常见的低电平触发的按键设计,当没有按键按下时,由于上拉电阻R8的存在,此时USER_KEY处的电平为高电平,当按键按下时,USER_KEY直接与GND相连接,故此时USER_KEY为低电平。图中的R8为上拉电阻,一般选取1K、4.7K、10K的电阻,具体的电阻大小需要看芯片的灌电流大小。有些MCU内置有上拉电阻,在硬件设计时外部可加可不加,建议硬件上预留该电阻。
在这里插入图片描述
图示的C5为消抖电容, 该电容的存在可以减小机械抖动的影响。原理如下,红色为电压波形图,如果按键按下时,电容被按键短路了, 此时电容迅速放电(短路可以看做电阻很小很小的负载,RC放电的时间常数很小很小), 形成了图示中的T1端曲线,随后进入稳定状态,再按键松开的时刻,电源对C5进行充电由于此时需要经过R8,时间常数比T1端更大,所以曲线更加的缓一点,形成了T3曲线段。这就是消抖电容的原理
在这里插入图片描述

2.2 矩阵按键

矩阵按键的原理想必一定很熟悉了, 编程的规范就是循环扫描,这里不做过多的说明
在这里插入图片描述

2.3 ADC按键设计

ADC按键的设计可以大大的减少IO口的占用, 但是不适合用于大于4个的按键, 因为按键越多,误触就越大,而且对于电阻的选择也比较关键,如下图所示,当SW10按下是,R8和R12构成分压,此时ADC处的电压为3V左右, 当SW11按下时,此时R9与R12构成分压电路, ADC的电压约为2.2V, 依次类推.。在软件层面只需要通过ADC读取相应的电压,就可以判断相应的按键按下了。图中的C5起到了滤除干扰的作用。
![在这里插入图片描述](https://img-blog.csdnimg.cn/f71f9c5b5ebf4cbcb39688eb9c8eca99.png

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:18:17  更:2022-04-29 12:19:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 1:24:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码