简介

矩阵键盘一般为4×4或4×3的。矩阵键盘的判断方式分按行扫描按列扫描。

简单说就是给全体一个高电平,然后给一个按键的一端附上低电平,再判断另一端是否为低电平。

原理图

代码部分

#include <REGX52.H>
void delay()//延时函数
{unsigned int i;for(i=0;i<30000;i++);
}
unsigned char MatrixKey()
{unsigned char KeyNumber;//定义一个返回值P1=0xFF;//全体给高电平P1_0=0;//一端给低电平if(P1_4==0)//判断另一端是否为低电平
{delay();while(P1_4==0);delay();KeyNumber=1;//返回第一个按键}if(P1_5==0){delay();while(P1_4==0);delay();KeyNumber=2;}if(P1_6==0){delay();while(P1_4==0);delay();KeyNumber=3;}P1=0xFF;P1_1=0;if(P1_4==0){delay();while(P1_4==0);delay();KeyNumber=4;}if(P1_5==0){delay();while(P1_4==0);delay();KeyNumber=5;}if(P1_6==0){delay();while(P1_4==0);delay();KeyNumber=6;}P1=0xFF;P1_2=0;if(P1_4==0){delay();while(P1_4==0);delay();KeyNumber=7;}if(P1_5==0){delay();while(P1_4==0);delay();KeyNumber=8;}if(P1_6==0){delay();while(P1_4==0);delay();KeyNumber=9;}P1=0xFF;P1_3=0;if(P1_4==0){delay();while(P1_4==0);delay();KeyNumber=10;}if(P1_5==0){delay();while(P1_4==0);delay();KeyNumber=11;}if(P1_6==0){delay();while(P1_4==0);delay();KeyNumber=12;}return KeyNumber;//返回值
}

结论

代码我只给了矩阵键盘这部分。矩阵键盘这方面知识很简单但也很重要,到后面的学习一般都会用得到。

C51单片机学习笔记之矩阵键盘相关推荐

  1. 【C51单片机学习笔记--DS1302时钟芯片蜂鸣器I2C总线AT24C02存储器】

    C51单片机学习笔记–DS1302时钟芯片&&蜂鸣器&&I2C总线&&AT24C02存储器 文章目录 一.DS1302时钟芯片介绍 二.DS1302时钟 ...

  2. C51单片机学习笔记之定时器

    简介 "定时器/计数器"说的是一个东西,因为它既能计时也能计数.是存在于单片机内部的一个独立的硬件部分,依赖晶振产生固定的时间间隔,产生了一定量的固定时间间隔后会引发定时器中断从而 ...

  3. c51单片机学习笔记-LED流水灯实验

    目的:实现 LED 流水灯,只需循环让 D1-D8 指示灯逐个点亮. 方法:点亮 D1 且把 D2-D8 熄灭,延时一段时间后再点亮 D2 且把 D1. D3-D8 熄灭,延时一段时间后再点亮 D3 ...

  4. C51单片机学习笔记(一)——搭建开发环境及烧写工具

    C51单片机学习笔记(一)--搭建开发环境及烧写工具 文章目录 C51单片机学习笔记(一)--搭建开发环境及烧写工具 1.搭建软件开发环境及使用(Keil uVision) 2.将程序下载到单片机(烧 ...

  5. 【C51单片机学习笔记----DS18B20温度传感器LCD1602液晶屏直流电机调速与呼吸灯AD模数转换红外外部中断】

    文章目录 一.DS18B20温度传感器 1.DS18B20温度传感器连接原理图 2.DS18B20温度传感器单总线通信时序 3.DS18B20温度传感器代码模块 二.LCD1602液晶屏 1.LCD1 ...

  6. C51单片机学习笔记之串口通信

    简介 串口通信就是单片机和pc之间的一种通信方式. 通信方式:并行,串行,同步,异步(最常用的) 传输方向:单工,半双工(不同时间),全双工 基本结构 ​ 相关寄存器 SCON串口控制寄存器(主要用方 ...

  7. 【蓝桥杯-单片机学习笔记(六)】矩阵键盘控制数码管显示0~F

    一.要求 在CT107D单片机训练平台上,首先将J5处的跳线帽接到1~2引脚,使按键S4~S19组成4*4的矩阵键盘.在扫描按键的过程中,发现有按键触发信号后,待按键松开后,数码管显示相应的数字.按键 ...

  8. AutoLeaders控制组—51单片机学习笔记

    文章目录 AutoLeaders控制组-51单片机学习笔记 1.1单片机及开发板介绍 单片机介绍 单片机应用领域 STC89C52单片机 内部结构 开发板介绍 2.1点亮一个Led 新建工程 编程 认 ...

  9. 51单片机学习笔记-1简介及点灯

    51单片机学习笔记 文章目录 51单片机学习笔记 1. 51单片机简介 1.1 安装软件 1.2 单片机简介 2. LED灯 2.1点亮一个LED 2.1.1原理分析 2.1.2 创建工程 2.2LE ...

最新文章

  1. 项目中WebService使用Spring容器的配置
  2. 小而美的个人博客——前端——blog
  3. ansible(6)——模块命令command、shell详细用法
  4. 智能手机计步算法c语言实现,【转载】智能手机计步器算法的实现
  5. 解决安卓TextView高度和textSize大小不一致问题
  6. PHP中的方形按钮怎么敲,php 魔术方法使用说明
  7. Spring Cloud Consul
  8. python3可视化窗口操作_Python3.x+PyQtChart实现数据可视化界面(PyQtChart绘图;还有保存图片)和业务逻辑分离案例01_自己写的,有UI界面源代码...
  9. 重磅发布|主机安全联动蜜罐解决方案助力大型攻防演练
  10. IPtables中SNAT、DNAT和MASQUERADE的含义
  11. 基于SSM实现水果蔬菜商城管理系统
  12. Depsolving loop limit reached
  13. 【神经网络务实:Deepin Linux 安装使用yolov5】
  14. win7麦克风没声音怎么设置
  15. ARM体系结构与编程(更)
  16. 求解矩阵A的满秩分解的一般方法
  17. 二叉树的四种遍历方式(前序遍历、中序遍历、后序遍历、测层序遍历)
  18. c 语言实现多线程排序,在c中使用多线程快速排序
  19. 笔记:论文摘要和引言的写法
  20. Codec2类的解析

热门文章

  1. 吴恩达——机器学习(学习率)
  2. linux进程隐藏 argv[0] prctl 修改进程名
  3. 【感悟】战略上藐视敌人,战术上重视敌人
  4. 总结:linux 学习之 shell 脚本编写
  5. 数据库字段与Java属性映射关系
  6. 无法从带有索引像素格式的图像创建 Graphics 对象
  7. HRM人力资源系统-Day07-RabbitMQ java操作
  8. 用例规约的编写--业务规则和实体描述
  9. 项目maven编译报请使用 -source 7 或更高版本以启用 diamond 运算符错解决办法
  10. 最小路径覆盖(最小路径覆盖)