51单片机——按键控制

1、按键介绍

轻触按键:相当于是一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。

2、按键的抖动

对于机械开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的抖动。

3、按键原理图

首先查看按键原理图,发现按键一个引脚接GND,一个引脚接MCU。MCU接出来的引脚默认都是高电平,一般情况下表示正极。

4、优化寄存器按字节操作改成按位操作

利用头文件<REGX52.H>里面的按位操作变量来实现

5、按键控制LED点亮和熄灭

通过按键K2来控制LED的亮灭,当按键按下时,按键形成通路,一段接GND,一端接MCU的P31引脚,MCU输出为高电平,通过GND下拉为低电平即0,当检测到按键状态为0时,此时LED点亮。

6、按键抖动优化

因为按键弹片是金属薄片,按下和弹起时会随着惯性上下起伏。根据金属薄片的特性,我们选择不在金属薄片抖动的时间去采集按键状态,通过延时函数来避开抖动时间。

每次采集按键状态时,延时20ms。

7、按下按键按照二进制的形式显示

数据运算符

逻辑语句

相关推荐
不能跑的代码不是好代码11 小时前
STM32窗口看门狗(WWDG)知识点及标准库使用指南
stm32·单片机·嵌入式硬件
bingquan333311 小时前
在 Ghidra 中分析STM32裸机固件
stm32·单片机·嵌入式硬件
羽获飞11 小时前
从零开始学嵌入式之STM32——11.STM32---USART串行通讯
stm32·单片机·嵌入式硬件
宵时待雨13 小时前
STM32笔记归纳9:定时器
笔记·stm32·单片机·嵌入式硬件
逐步前行13 小时前
STM32_新建工程(寄存器版)
stm32·单片机·嵌入式硬件
bai54593614 小时前
STM32 CubeIDE 通过PWM占空比控制舵机角度
stm32·单片机·嵌入式硬件
松涛和鸣15 小时前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
简单中的复杂16 小时前
【避坑指南】RK3576 Linux SDK 编译:解决 Buildroot 卡死在 host-gcc-final 的终极方案
linux·嵌入式硬件
上海合宙LuatOS16 小时前
LuatOS核心库API——【audio 】
java·网络·单片机·嵌入式硬件·物联网·音视频·硬件工程
Hhh __灏16 小时前
stm32的SRAM内存不足如何分析和优化?堆栈空间如何优化?
单片机