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

    文章

    2484

    浏览量

    46530
  • 电平
    +关注

    关注

    5

    文章

    338

    浏览量

    39564
  • 键盘
    +关注

    关注

    4

    文章

    843

    浏览量

    39004
  • 硬件
    +关注

    关注

    11

    文章

    2922

    浏览量

    64778
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79542
收藏 人收藏

    评论

    相关推荐

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

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

    关于独立键盘程序的问题

    `题目是这样的: 数码管前三位显示一个跑表,从000到999之间以1秒速度运行,当按下一个独立键盘时跑表停止,松开手后跑表继续运行。(用定时器设计表)。用另外三个独立键盘
    发表于 12-18 22:47

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

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

    独立键盘检测

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

    独立键盘实现流水灯功能

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

    矩阵键盘检测独立按键与单片机连接

    4.2 矩阵键盘检测独立按键与单片机连接时,每个按键都需要单片机的一个I/O口,若单片机系统需要较多按键,如果用独立按键,会占用过多的I/O口资源。当用到多个按键时,为了节省I/O口线
    发表于 02-22 06:14

    独立连接式键盘电路

    独立连接式键盘电路 键盘是一组按键或开关的集合,键盘接口向计算机提供被
    发表于 01-14 14:13 4574次阅读
    <b class='flag-5'>独立</b>连接式<b class='flag-5'>键盘</b>电路

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

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

    独立4X4矩阵两用键盘制作方法

    看到买的开发板上面用的键盘有两种,一种是独立键盘,一种是矩阵键盘,我在制作最小系统时发现最两个键盘很麻烦,而且都不常用,虽然可以制作4个
    的头像 发表于 09-14 08:12 6665次阅读

    使用单片机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 1w次阅读

    PIC单片机矩阵键盘检测原理及实现

    PIC单片机矩阵键盘检测原理及实现
    发表于 11-16 12:51 7次下载
    PIC单片机矩阵<b class='flag-5'>键盘</b><b class='flag-5'>检测</b>原理及<b class='flag-5'>实现</b>

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

    独立键盘检测原理以及实际应用一、键盘的概念二、独立键盘检测
    发表于 11-21 10:06 22次下载
    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 13次下载
    学习笔记之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>)