和12岁小同志搞创客开发:检测按键状态的两件法宝

news/2024/9/20 20:41:53

目录

1、检测电平变化,判断按键状态

2、使用中断触发,判断按键状态


机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。

​​​项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 


按键是创客开发过程中必不可少的器件之一,用户可以通过按键实现交互控制。例如:按键开关灯、长按按键解除报警、按键实现设备控制等功能。

检测按键状态有两种方式:第一种,检测按键端口的输出电压信号变化,判断按键的状态;第二种,按键状态变化触发中断。

下面让我们学习这两种检测按键状态的方法~

1、检测电平变化,判断按键状态

在如何驱动各类型传感器?这篇文章中讲到:可以将传感器进行分类,主要包括:数字量输出类型传感器、数字量输入类型传感器、模拟量电压类型传感器、模拟量电流类型传感器和协议类型传感器

按键本质上并不是传感器,但是按照驱动方式来看,可当作数字量输出类型传感器,进行驱动。

可以通过按键的设计图明白其中的原理,如下图所示,假设TP点接入单片机IO端口,当按键未被按下时,此处为5V高电平,当按键被按下时,此处就会变为0V低电平,通过这种高、低电平状态变化判断按键的状态变化。

未按下按键电压状态
按下按键电压状态

那么设计按键控制LED亮、灭的程序就非常好理解了,如下所示:

2、使用中断触发,判断按键状态

我们在设计功能时,难免要用到延时,如果延时时间过长,可以发现按键就不那么灵敏了,主要原因在于:延时消耗过多的处理器资源,程序大多时间都运行在延时函数中,无法进行按键状态的判断。

这时候就需要使用中断触发功能了~

当控制器正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断,过程如下所示:

可通过监测按键电平信号变化,触发中断,如下图情况所示,当按键未按下,此时是5V高电平信号。

当按下按键瞬间,高电平会切换到低电平,产生下降沿信号,此时可触发下降沿中断。

 当松开按键瞬间,低电平会切换到高电平,产生上降沿信号,此时可触发上降沿中断。

中断程序的实现也非常简单,无需在主程序中设计程序,选择合适的中断信号触发模式,将需要实现的功能写在中断处理函数中,当检测到相应的触发信号,中断处理函数就可以运行了,如下所示:

 有一点需要注意,中断处理函数适合处理“急件”,处理完毕后,再回到原来被中断的地址,继续原来的工作,所以不应该在中断程序中有大量长时间的延时,以免对主程序产生影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pgtn.cn/news/18569.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

个人信息管理器

转:http://www.cnblogs.com/maxianghui/archive/2006/10/10/524873.html 经过一个多月的努力,终于搞定了这个小软件,请大家给点意见我。采用VC# Access2003 XML开发,扩展了TreeView控件,扩展了RichTextBox控件&#…

和12岁小同志搞创客开发:遥控舵机

目录 1、舵机控制理论 2、舵机控制实践 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。 ​​​项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 之前讲到了设计一款亮度可调节灯,在此基础…

和12岁小同志搞创客开发:如何使用继电器?

目录 1、继电器选型 2、继电器连线 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。 ​​​项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 继电器(英文名称:relay&#xff09…

LabVIEW角点检测(基础篇—10)

目录 1、角点检测概念 2、角点检测流程 3、角点检测实践 图像的特征是图像的原始特性或属性,它包含图像中的关键信息,是机器视觉算法工作的基础。 图像的灰度、边缘、轮廓、纹理、色彩和颗粒属性等都可作为图像的特征,它们均从某一维度对…

计算点云之间的平均距离,方差,标准差

Tips: 看公式&#xff0c;可以推断出计算标准差分为几步&#xff1a; 计算平均值u(x1x2...xn)/n计算方差s((x1-u)^2 (x2-u)^2 ...(xn-u)^2)/n计算标准差σsqrt(s) //求平均值double average(double *x, int len) {double sum 0;for (int i 0; i < len; i) // 求和{sum …

.NET(C#)连接各类数据库-集锦

1.C#连接连接Access程序代码: ------------------------------------------------------------------------------- usingSystem.Data;usingSystem.Data.OleDb;..stringstrConnection"ProviderMicrosoft.Jet.OleDb.4.0;";strConnection"Data SourceC:BegASPNETN…

LabVIEW图像模式匹配(基础篇—11)

目录 1、图像模式匹配概念 2、影响图像模式匹配的因素 3、灰度匹配 4、几何匹配 5、黄金模板比较 图像模式匹配是指通过分析模板图像和目标图像中灰度、边缘、外形结构以及对应关系等特征的相似性和一致性&#xff0c;从目标图像中寻找与模板图像相同或相似区域的过程。图…

MEMS加速度计如何选型?

目录 1、选型要素 1.1、倾斜检测 1.2、高温和动态环境 1.3、稳定 2、可穿戴设备MEMS加速度计应用 加速度计能够测量加速度、倾斜、振动或冲击&#xff0c;因此适用于从可穿戴健身装置到工业平台稳定系统的广泛应用。市场上有成百上千的加速度计器件可供选择&#xff0c;其成…