单片机程序示例(单片机程序示例图)

单片机程序示例(单片机程序示例图)首先我们看一下按键的原理图 如图 1 当 J5 中的 2 3 接在一起的时候 红线标注就是一个完整的电路图 此时只有 s4 s5 s6 s7 按键可以使用 也就是独立按键 例如 当我们按下 s4 时 电路导通 P33 引脚被拉为低电平 0 此时我们读取 P33 引脚电平的高低就能判断出哪个按键被按下 其他按键也是如此 消抖的方法包括 硬件消抖和软件消抖 硬件消抖主要是通过添加滤波电路消除抖动干扰 软件消抖则是延迟时间

大家好,我是讯享网,很高兴认识大家。



首先我们看一下按键的原理图,如图1,当J5中的2,3接在一起的时候,红线标注就是一个完整的电路图,此时只有s4、s5、s6、s7按键可以使用,也就是独立按键。例如:当我们按下s4时,电路导通,P33引脚被拉为低电平0,此时我们读取P33引脚电平的高低就能判断出哪个按键被按下。其他按键也是如此。

 消抖的方法包括:硬件消抖和软件消抖。硬件消抖主要是通过添加滤波电路消除抖动干扰。软件消抖则是延迟时间,当检测到按键状态发生变化时,延迟5~10ms的时间,让抖动消失后,再次检测按键的状态。我们在这里主要使用软件消抖。当我们按下按键时,整个过程的波形如下图2所示。所以,当我们检测到按键状态发生变化时,加一个10ms的延迟后,再次检测按键状态,如果与上次状态相同则说明按键被按下。

如图3所示,J5中的1,2连接在一起就形成4X4的矩阵按键,这里我们设从下到上依次为Y1、Y2、Y3、Y4(行),从左到右依次为X1、X2、X3、X4(列),例如:想要扫描第一列时,只要使X1为低电平0,Y1、Y2、Y3、Y4为高电平1,此时如果没有按键按下,那么这个状态会一直保持。当S7按下的时候,由于X1为低电平0,S7按下电路导通,使得Y4也为低电平0。(这里我们就可以用代码判断:Y4的电平高低,当Y4为低电平时,说明S7按下)其他按键同理。

这里我们最好使用 #include “stc15f2k60s2.h” 而不是  #include “reg52.h” ,下图我们对比一下,reg52.h中有很多端口没有声明。而stc15f2k60s2.h中则比较全面。大家有兴趣也可以自己去头文件里看一下。


讯享网

如使用独立按键请将矩阵按键代码屏蔽,反之亦然。

独立按键S4的功能:按下时8个数码管全亮,松开时8个数码管全灭。

矩阵按键S4、S8、S12、S16的功能:按下S4 L1 L2亮,按下S8L3 L4亮,按下S12 L5 L6亮,按下S16 L7 L8亮,松开熄灭。

小讯
上一篇 2025-05-01 09:06
下一篇 2025-05-31 21:52

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/194422.html