按键的介绍:
轻触开关是一种电子开关,使用时.轻轻按开关按钮就可使开关接通,当松开手时.开关断开。我们使用的开关如下图:
在一个理想的状态下,我们按下按键就会使得电位状态从低电平编程高电平,高电平编程低电平。
事实上,按键在按下和松开的过程中,会存在一个处于中间值的过程,这个时候会存在一个抖动现象。
为了消除按键的抖动现象,我们需要对这一电路进行一个修改。
对于消抖,我们可以通过两个途径进行消抖
1、硬件消抖:
采用一个rc延时充放电的电路进行消抖。
工作原理:在rc消抖电路中,电阻起到限制电流流动的作用,电容则用来储存电荷。当输入信号发生变化时,电容会通过电阻进行充放电,从而实现对信号的平滑处理。通过合理选择电阻和电容的数值,可以达到最佳的消抖效果。
rc消抖电路的工作方式可以分为两个阶段:充电阶段和放电阶段。
1,充电阶段:当输入信号由低电平变为高电平时,电容开始充电。由于电容的充电时间常数( t=rc),充电过程并不是瞬间完成的,而是需要一定的时间。在这个过程中,电容会逐渐储存电荷,输出信号也会逐渐稳定。当电容充满电荷后,输出信号达到稳定状态。
2.放电阶段:当输入信号由高电平变为低电平时,电容开始放电。放电过程同样需要一定的时间,电容会逐渐释放电荷。在这个过程中,输出信号会逐渐下降,直到达到低电平。放电过程的时间也由rc电路的时间常数决定。
2、软件消抖:
当按键被按下时,通过延时时间来判断按键是否按下(即二次确认按键的状态)来进行消抖
程序编写:
通过一个按键来控制一个灯的启停状态
#include
typedef unsigned char u8;
typedef unsigned int u16;
sbit led=p2^0;
sbit k1=p3^1;
void delay(u16 i) //延时函数
{
while(i--);
}
void key()
{
if(k1==0)
{
delay(1000); //消抖
if(k1==0)
{
led=~led;
}
while(!k1); //判断按键是否松开
}
}
void main()
{
while(1)
{
key();
}
}
现象展示:
1、当我们按下按键时,那么led灯亮
2、当我们再次按下按键时,led灯熄灭
福禄克5700A万用表校准仪介绍
Zecurion屏幕水印和屏幕照片探测器
车载DSP:新应用孕育国产“芯”机遇
一张图让您看懂为啥资本不投资芯片
英特尔的十代酷睿T系列首次曝光
如何消除按键的抖动现象
一文了解2019年的内存市场预期
受惠于5G,今年纯晶圆代工市场规模将创自2014年以来新高
4G芯片和终端瓶颈尚未完全突破
Modbus RTU通讯协议详解与实例演示
电阻温度应变片的温度补偿方法有哪些?
lm224扩流保护电路
AR开发仍具挑战 AR眼镜将为AI学习带来挑战
3D打印技术在航空航天领域应用的优势有哪些?
ARM收归日本软银后首份季度财报:收入暴增44%
AT&T:年底前在美国多达12个城市推出5G
UiPath整合一流的UI与API自动化,并在2021.10平台版本中强化企业扩展功能
远程通讯控制器(T-BOX)
基于串口通讯的PROFIBUS性能分析诊断软件
消息称索尼明年将推出新款Compact小屏机型