鱼C论坛

 找回密码
 立即注册
查看: 1972|回复: 7

[技术交流] 51单片机 独立按键与矩阵键盘

[复制链接]
发表于 2023-1-18 08:06:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
51单片机 独立按键与矩阵键盘


独立按键
独立按键位于普中开发版的右下角,有四个按键,为什么说他是独立按键呢?看原理图
截屏2023-01-18 07.47.42.png
每一个按键都有单门一个IO口(引脚),所以就叫他独立按键

接下来就是写代码判断按键是否被按下了~

从图中可以看到按钮K1的引脚为P31,所以我们只需要判断P31是否为0
  1. if (P3_1 == 0)
复制代码

然后总要表现点啥吧!,就把led点亮把!

  1. #include <8052.h>


  2. void main() {

  3.     P2_0 = 0;
  4.     while(1) {

  5.         if (P3_1 == 0) {
  6.             P2_0 = 0;
  7.         }
  8.         else {
  9.             P2_0 = 1;
  10.         }
  11.         
  12.     }

  13. }
复制代码

看效果: WechatIMG193.jpeg
WechatIMG194.jpeg
按下的时候亮,松开的时候灭

这里有一个很重要的点
按钮他在按下的一瞬间回回弹几次,大概是20ms,所以在这按下去一瞬间后的20ms是不准确的,我们需要把这20ms过滤掉

接下来就是按下点亮,再按下熄灭!

  1. #include <8052.h>

  2. void Sleep(unsigned int xms)
  3. {
  4.     unsigned char i, j;

  5.     while (xms)
  6.     {
  7.         i = 2;
  8.         j = 199;

  9.         do {
  10.             while (--j);
  11.         } while(--i);
  12.         xms--;
  13.     }

  14.     // _nop_();


  15. }


  16. void main() {

  17.     P2_0 = 0;
  18.     while(1) {

  19.         if (P3_1 == 0) {
  20.             Sleep(30);
  21.             while (P3_1==0);
  22.             Sleep(30);

  23.             if (P2_0 == 1) {
  24.                 P2_0 = 0;
  25.             }
  26.             else {
  27.                 P2_0 = 1;
  28.             }
  29.         }

  30.     }

  31. }
复制代码

也就是这个玩意

矩阵键盘
遇事不要慌,先看原理图
截屏2023-01-18 07.59.02.png
由图可知,图中8个引脚控制16个按键,怎么实现监听一个按键呢?
有两种方法:纵向遍历和横向遍历
由于横向遍历可能受到舵机的干扰,在这里暂且不提

比如我们要判断S1是否被按下,与S1相关联的引脚有P17和P13
先给P17一个0,然后检测P13是否为0(因为两个都为0就是接通了)

#include <8052.h>


void main() {
    P1_3 = 0;
     while (1) {
        if (P1_7 == 0) {
           P2_0 = 0;
        }
    }


}


想要遍历所有的就留给你们了&#128523;

最后,如果有错误欢迎大佬们指出!

也可以在我的博客看哦~https://cxwindlight.online/

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
MIke_python小小 + 1 + 1 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-18 08:20:59 | 显示全部楼层
支持,学习!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2023-1-18 08:21:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-18 08:21:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-18 08:45:17 | 显示全部楼层
谢谢分享,学习

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-18 08:58:53 | 显示全部楼层
楼主学习速度好快
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2023-1-18 09:15:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-18 09:15:59 | 显示全部楼层

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 20:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表