0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

独立键盘的检测原理及程序实现的方法

科技绿洲 来源:51单片机学习网 作者:51单片机学习网 2023-09-11 10:44 次阅读

由于在单片机在应用系统中,更多的会用到独立键盘,加之两者的检测原理基本相似,所以这一节里我主要讲解独立键盘的检测原理及程序实现的方法。
1、 按键的检测原理
按键与单片机的连接如图5所示,按键的一端与地相连,另一端直接与单片机的I/O口相连。此时我们在程序中先给I/O口赋值高电平,然后不断的检测I/O口电平的变化。当按键没有被按下时,此I/O口的电平一直为高;当按键被按下时,由于按键的另一端直接与地相连,相当于低电平,此时我们从I/O口读出的即为高电平,程序一旦检测到I/O口由高电平变为低电平时,说明按键被按下,此时马上执行相应的动作,这就是按键检测的原理。
图片

图片

图5 按键与单片机连接图

2、 按键的抖动与消除
由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,与单片机I/O口相接的一端的电压会出现相应的变化,如图6所示。
图片

图6 按键按下时电压的变化情况

从图6中我们可以看出,实际的电压波形在按下松手的时候都会出现一定的抖动,经过实验知道,这个一时间大概在5-10ms。所在在做单片机与按键相关的系统时必须考虑消抖的环节。按键消抖的方法有两种,一个是硬件方法 一个是软件的方法,而从节约成本和尽量简化硬件电路的角度出发,一般是采用在程序中加上消抖的方法实现,通常是采用延时的方法。具体的作法是:
检测出键闭合后执行一个延时程序,产生5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。后面会结合到程序进行讲解。
下面我写一个简单的程序,功能为:当一个键按下时,让一个发光二极管发光,我们先看下按键模块在实验板上的原理图,如图7和图8所示。
图片

图7 发光二极管模块原理图

图片

图8 按键模块原理图

例1 按键检测程序
//功能:当按下S8键时,L1灯发光,松手后,L1灯熄灭。相应程序如例1.
#include
#define uint unsigned int
#define uchar unsigned char

sbit D1=P1^0;
sbit S1=P3^4;

void main()
{
P3=0xff;
while(1)
{
if(S1==0) //第一次检测按键是否按下
delay(20); //消除按下时的抖动
if(S1==0) //再次确定是否按下状态
{
D1=0; //如果是按下状态,执行操作
while(!S1); //检测是否是按键弹起
delay(20); //消除松开时的抖动
}
else
D1=1;
}
}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2670

    浏览量

    47334
  • 电平
    +关注

    关注

    5

    文章

    359

    浏览量

    39846
  • 键盘
    +关注

    关注

    4

    文章

    858

    浏览量

    39578
  • 硬件
    +关注

    关注

    11

    文章

    3251

    浏览量

    66108
  • 程序
    +关注

    关注

    116

    文章

    3775

    浏览量

    80839
收藏 人收藏

    评论

    相关推荐

    基于单片机的独立键盘与矩阵键盘检测

    独立键盘,是指每一个键位单独由一个IO口控制的按键。
    的头像 发表于 10-31 15:00 1916次阅读
    基于单片机的<b class='flag-5'>独立</b><b class='flag-5'>键盘</b>与矩阵<b class='flag-5'>键盘</b><b class='flag-5'>检测</b>

    独立键盘检测与矩阵键盘检测

    独立键盘检测与矩阵键盘检测一、独立键盘
    发表于 07-20 06:20

    独立键盘检测

    一、独立键盘检测1、按键的检测原理单片机的I/O口既可以作为输出也可以作为输入使用,检测按键时用的是输入功能。把按键的一端接地,另一端与单片
    发表于 11-17 06:19

    独立键盘实现流水灯功能

    使用模块:独立键盘 流水灯功能:用独立键盘实现抢答器 即当按下四个独立
    发表于 01-11 06:11

    独立键盘c语言

    初学者的AT89C51的独立键盘编写。
    发表于 01-20 15:00 7次下载

    压缩键盘的设计与实现

    本文设计了一种用4个键最多可实现5个键功能的压缩键盘。该键盘使用独立式按键键盘的硬件结构,软件上使用矩阵式
    发表于 03-29 11:03 3次下载

    第四棵--KEY独立键盘和矩阵键盘检测

    独立键盘和矩阵键盘检测,十分详细。适合新手。
    发表于 09-01 11:44 0次下载

    使用单片机C语言实现独立按键检测与矩阵键盘操作的资料和程序

    独立按键的检测和矩阵键盘操作。完成本文所需硬件:基于C51系列单片机的开发板(本文是基于STC12C5A60S2处理器的一款开发板),带中文版windows操作系统的电脑。
    发表于 07-16 17:39 2次下载
    使用单片机C语言<b class='flag-5'>实现</b><b class='flag-5'>独立</b>按键<b class='flag-5'>检测</b>与矩阵<b class='flag-5'>键盘</b>操作的资料和<b class='flag-5'>程序</b>

    使用单片机利用独立键盘弹琴的程序免费下载

    本文档的主要内容详细介绍的是使用单片机利用独立键盘弹琴的程序免费下载。
    发表于 06-26 17:43 0次下载
    使用单片机利用<b class='flag-5'>独立</b><b class='flag-5'>键盘</b>弹琴的<b class='flag-5'>程序</b>免费下载

    独立键盘检测原理及程序实现方法

    由于在单片机在应用系统中,更多的会用到独立键盘,加之两者的检测原理基本相似,所以这一节里我主要讲解独立键盘
    发表于 05-13 09:41 1.1w次阅读

    使用51单片机独立键盘控制输出脉冲信号的程序免费下载

    本文档的主要内容详细介绍的是使用51单片机独立键盘控制输出脉冲信号的程序免费下载。
    发表于 09-22 17:09 19次下载
    使用51单片机<b class='flag-5'>独立</b><b class='flag-5'>键盘</b>控制输出脉冲信号的<b class='flag-5'>程序</b>免费下载

    如何使用独立子空间分析实现不良视频的检测方法

    为了检测网络中含有不良内容的视频,提出一种基于非监督学习特征的不良视频检测方法。该方法使用独立子空间分析网络对未标定视频进行训练,学习视频中
    发表于 01-13 11:20 5次下载
    如何使用<b class='flag-5'>独立</b>子空间分析<b class='flag-5'>实现</b>不良视频的<b class='flag-5'>检测</b><b class='flag-5'>方法</b>

    51单片机按键检测--独立按键与矩阵键盘

    按键,每个按键对应一个IO口,通过循环或者中断去检测,这种方法常用于按键个数较少得时候。如果按键的个数较多,每个按键都分配一个IO口,会占用大量的资源,所以就有了矩阵键盘。矩阵键盘是通
    发表于 11-12 11:06 15次下载
    51单片机按键<b class='flag-5'>检测</b>--<b class='flag-5'>独立</b>按键与矩阵<b class='flag-5'>键盘</b>

    51单片机小白零基础教程——独立键盘检测原理以及实际应用

    独立键盘检测原理以及实际应用一、键盘的概念二、独立键盘检测
    发表于 11-21 10:06 23次下载
    51单片机小白零基础教程——<b class='flag-5'>独立</b><b class='flag-5'>键盘</b><b class='flag-5'>检测</b>原理以及实际应用

    学习笔记之51单片机键盘篇(非编码键盘与编码键盘、非编码键盘的扫描方式、独立键盘、矩阵键盘

    编码键盘与编码键盘5.非编码键盘的扫描方式(1)查询扫描:(2)定时扫描:(3)中断扫描:(二)独立键盘1.
    发表于 11-23 16:51 15次下载
    学习笔记之51单片机<b class='flag-5'>键盘</b>篇(非编码<b class='flag-5'>键盘</b>与编码<b class='flag-5'>键盘</b>、非编码<b class='flag-5'>键盘</b>的扫描方式、<b class='flag-5'>独立</b><b class='flag-5'>键盘</b>、矩阵<b class='flag-5'>键盘</b>)