学习单片机的时候想必大家都接触过按键,按键是一个人机交互的接口设备,在刚开始接触的时候 简单也是 直接的办法就是将按键直接接到一个 I/O 口上,然后检测 I/O 上的电平变化,假设按键另一端接在 GND 上,则一旦检测到低电平就认为是按键触发了(此处假设已经进行了去抖,软件去抖也好,硬件去抖也好),乍一看,no problem!而且还是 very good!其实这对于初学者而言确实是入门的不二选择,但对大佬而言就是错误的设计思想。
问题出在去检测 I/O 口这个过程,CPU 必须每隔一段时间检测,一般用定时器去实现,间隔时间太长了达不到实时的性能,时间太短了有浪费 CPU 资源,因为在很多场合按键处于触发的时间段时相当少的,比如学校的自动圈存机,一般情况下时没人用的,那就意味着 CPU 每间隔时间去查看 I/O 是非常不合理的,只有当按键按下采取查看,这才是 合理的方式。
这样就必须引入外部中断的设计方案,一个按键的设计原理图如下:
如果有两个甚至多个按键,那如何弄了,很简单,使用或门来解决这个问题。电路图如下:
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
人机交互
+关注
关注
12文章
1133浏览量
54760 -
单片机
+关注
关注
6001文章
43978浏览量
620862 -
电平
+关注
关注
5文章
338浏览量
39565
发布评论请先 登录
相关推荐
单片机设置同一个按键两种功能
单片机设置同一个按键两种功能,利用按键来进行界面或者是菜单的切换,公子给出以下思路,仅供参考,如果大家还有其他的更加好的方法,请大家私聊公子,好的东西需要
发表于 07-21 09:04
通过51单片机设计一个简单的闹钟
的,今天把我这次51实验的程序作为博客生涯的第一篇吧,加油。目标:通过51单片机设计一个简单的闹钟,具体为:可以实现基本时钟功能,按键还能切
发表于 01-13 06:28
如何使用单片机接入按键遥感
文章目录1 简介2 主要器件2.1 双轴摇杆模块2.2 电路原理图3 实现效果4 测试代码6 最后1 简介Hi,大家好,这里是丹成学长,今天向大家介绍如何使用单片机接入按键遥感单片机接
发表于 01-19 08:31
蓝桥杯单片机设计与开发组竞赛,按键
按键几乎也是每次蓝桥杯单片机设计与开发组竞赛的必考部分,因为这是CT107D开发平台上仅有的输入设备之一,而且按键也是单片机基础开发中常见的器件。
发表于 04-13 08:00
•49次下载
蓝桥杯之单片机设计与开发(4)——矩阵按键
矩阵按键在我的印象中,从我学单片机开始,就很少写矩阵按键的程序,但是原理差不多都清楚,不过在这里不仅要考虑程序的执行,而且需考虑程序的完整与完善。一针见血,看原理图将开发板上面的J5跳
发表于 11-04 17:21
•8次下载
蓝桥杯之单片机设计与开发(3)——独立按键
独立按键使用独立按键时,请将开发板上面的J5跳线帽接到BTN端,此时为独立按键模式。独立按键原理很简单,根据原理图此时一旦
发表于 11-05 12:05
•7次下载
评论