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

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

3天内不再提示

基于单片机的独立按键设计

天才小狸花 来源:Sigle_chip 作者:Sigle_chip 2022-08-17 08:50 次阅读

导语:

单片机在运用到实际的产品中,不仅仅只使用IO输出去控制,更多的时候,我们需要收到一些信号,比如数字信号模拟量信号等。

按键作为一种人机交互的方式,被广泛的应用在各个工业控制领域。

通过单片机的轮询来检测按键的电平变化,实现相应的功能。独立按键通过独占IO,简化程序的设计,但与此对于的是需要占用IO,比较浪费IO,所以可以通过分时片选复用的方式实现8个IO使用16个按键,本节介绍单个IO的输入。

pYYBAGL7qIGAbCo7AACQhIq-5iA209.png

轻触开关

俗称按键,常开型,按下后会自动弹起,恢复到断开状态。机械开关都伴随着抖动,由于金属触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖动。

poYBAGHBTkGAXCPsAABGPFd25HE781.png

常见的解决方法有硬件电路解决,RS触发器,电容等方法。但与之对应的是成本的上升与电路的复杂性上升。

平时更常见的有软件上的算法,如延时等待按键抖动结束,但会导致程序运行的实时性降低。

51单片机上电后,除P0端口外,其余默认为高电平,单片机内部自带上拉电阻把电平拉高。在传统8051中,并不能设置单片机IO的输入输出模式。通过编写按键程序,识别电平从高到低的过程,从而实现交互。

在程序编写中,需要实现检测IO电平是否为低,同时需要实现

  1. 自锁,按键按下一次只运行一次任务,当按键松开后,才能按下下一次实现功能,不然一直执行功能。不要去实现长按功能。
  2. 消抖,按下后不稳定的电平变化会影响程序,通过延时去屏蔽掉这段时间。
  • if(Key0 == 0)
    {
    delay(20);
    if(Key0 == 0)
    {
    //功能代码;
    while(key0 == 0);
    }
    }

按键的抖动时间跟按下力度,本身属性有关,抖动时间不定,通常取经验值20ms。

独立按键较为简单,独立按键和矩阵按键本质上都是通过单片机的轮询来检测IO电平。

审核编辑:汤梓红

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

    关注

    6001

    文章

    43973

    浏览量

    620811
  • 独立按键
    +关注

    关注

    1

    文章

    44

    浏览量

    11464
  • 轻触开关
    +关注

    关注

    0

    文章

    61

    浏览量

    1201
收藏 人收藏

    评论

    相关推荐

    51单片机_独立按键延时消抖器消抖

    51单片机_独立按键延时消抖_独立按键定时器消抖_矩阵键盘定时器消抖1.独立
    发表于 07-16 13:56

    请问怎么实现51单片机独立按键和矩阵按键

    请问怎么实现51单片机独立按键和矩阵按键
    发表于 08-30 06:17

    单片机独立按键到底是什么?

    单片机独立按键到底是什么?
    发表于 10-26 06:32

    什么是51单片机独立按键

    什么是51单片机独立按键
    发表于 11-03 06:04

    如何通过编程单片机独立按键控制LED?

    如何通过编程单片机独立按键控制LED?
    发表于 11-03 06:24

    单片机独立按键使用程序

    单片机独立按键使用程序 (51单片机独立按键单片机
    发表于 11-18 08:32

    单片机独立按键和矩阵键盘的原理是什么?

    单片机独立按键和矩阵键盘的原理是什么?键盘的工作方式是什么?
    发表于 01-18 07:31

    如何制作一个单片机独立按键扫描的模块?

    如何制作一个单片机独立按键扫描的模块?
    发表于 02-17 06:38

    怎样去编写单片机独立按键与矩阵按键的扫描函数呢

    单片机独立按键是什么?单片机的矩阵按键是什么?怎样去编写单片机
    发表于 02-23 06:24

    如何对基于单片机独立按键控制系统进行Proteus仿真呢

    如何利用单片机去设计一种独立按键控制系统呢?如何对基于单片机独立按键控制系统进行Proteus
    发表于 02-23 06:56

    51单片机独立按键按键消抖及矩阵按键的电路与程序免费下载

    本文档的主要内容详细介绍的是51单片机独立按键按键消抖及矩阵按键的电路与程序免费下载。
    发表于 07-26 17:36 27次下载
    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>的电路与程序免费下载

    使用51单片机独立按键的程序免费下载

    本文档的主要内容详细介绍的是使用51单片机独立按键的程序免费下载。
    发表于 07-05 17:41 3次下载
    使用51<b class='flag-5'>单片机</b><b class='flag-5'>独立</b><b class='flag-5'>按键</b>的程序免费下载

    51单片机独立按键程序免费下载

    本文档的主要内容详细介绍的是51单片机独立按键程序免费下载。
    发表于 06-20 17:43 7次下载
    51<b class='flag-5'>单片机</b>的<b class='flag-5'>独立</b><b class='flag-5'>按键</b>程序免费下载

    51单片机独立按键数码管(模块化)

    51单片机独立按键数码管(C语言)基于普中51单片机开发板,运用定时器/计数器0。按键控制数码管,实现60秒计时,数值加减清零。文章目录51
    发表于 11-23 17:06 19次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>独立</b><b class='flag-5'>按键</b>数码管(模块化)

    单片机独立按键控制led灯程序

    单片机独立按键控制LED灯程序 单片机独立按键控制LED灯程序是一种简单而有趣的电子学习项目,它
    的头像 发表于 09-02 17:05 3750次阅读