基于C51实现按键控制

本文详细介绍了基于STC89C52RC单片机实现独立按键和矩阵按键控制LED灯及数码管显示的实验过程。内容涵盖按键消抖原理、独立按键控制LED灯的电路分析与实现,以及矩阵按键通过行列扫描和线翻转法检测的原理与代码实现。实验展示了如何通过按键操作控制开发板上的LED和数码管,为51系列单片机的初级实践提供了清晰指导。

🐋 前言:本实验基于STC89C52RC单片机,根据电路原理图编程通过独立按键控制led灯、通过矩阵按键控制开发板数码管模块。由于51系列单片机结构大同小异,读者可根据此博客举一反三,实现所需完成的功能。


🐬 目录:


🐇 实验所选单片机及结构展示(以普中C51为例,其他大同小异),本实验所操作的独立按键位于图中序号⑩位置,矩阵按键位于图中序号⑥位置

在这里插入图片描述

一、按键介绍与按键消抖

🐪 按键是一种电子开关,使用时轻轻按开关按钮就可使开关接通,当松开手时,开关断开。实物图如下所示:

在这里插入图片描述

通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号如下图所示:
在这里插入图片描述
由于机械点的弹性作用,按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开,因而在闭合和断开的瞬间均伴随着一连串的抖动。按键抖动会引起按键被误读多次。为了确保CPU对按键的一次闭合仅做一次处理,必须进行消抖
🐪 按键消抖有两种方式,一种是 硬件消抖,另一种是软件消抖;硬件消抖是通过增加额外的电路来实现,一般有两种方式:RS触发器与电容滤波。实际上,在没有MCU的情况下,对按键进行消抖通常是通过硬件消抖电路来实现。而在嵌入式开发中,大多数情况下都是通过程序来实现按键消抖。一般来说一个简单的按键消抖就是先读取按键的状态。如果得到按键按下以后,延时10ms,再次读取按键的状态,如果得到按键按下之后,延时10ms,再次读取按键的状态,如果按键还是按下状态,说明按键已经按下,其中延时10ms就是软件消抖处理。


二、原理与电路图分析

2.1 独立按键

🐏 本实验对于独立按键操作的具体效果为:按下K1键,LED模块中D1指示灯点亮,再按一下,指示灯熄灭。对于按键操作的重点在于如何识别按键是否按下。实验所用开发板按键模块以及单片机引脚电路如下图所示:
在这里插入图片描述
🐏 从独立按键的电路图可以看出,4个独立按键的控制管脚连接到51单片机的P3.0-P3.3脚上。其中K1连接在P3.1上,K2连接到P3.0上,K3连接在P3.2上,K4连接在P3.3上。4个按键另一端连接在GND。下面以单片机P3.1引脚为例,结合上图P3.X端口内部电路图分析当按键K1按下,从P3,1读取到的电平如何变化。
在这里插入图片描述
当K1按键按下时,右侧为通路,而读电路被短路,读到为低电平,当K1按键没有按下,右侧电路被断路,读引脚电路读到引脚为高电平。即当K1按下时,读到P3.1引脚为低电平

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值