矩阵键盘原理图:
第一行的行控制线接到p17,第二行的行控制线接到p16,第三行的行控制线接到p15,第4行的行控制线接到p14
第一列的列控制线接到p13,第二列的列控制线接到p12,第三列的列控制线接到p11,第四列的列控制线接到p10
矩阵键盘的原理和独立按键类似,另外我们可以把矩阵键盘的任意一行或一列作为一个独立键盘使用,假如我们把第一行作为独立键盘,那么我们只需要让P17输出高电平,其余7个io口输出低电平即可,假如我们按下了s1,那么p13的电平就会被拉低,变为低电平,所以我们可以通过查找低4位里哪一位为低电平就可以知道哪个按键按下了。
下面来说说矩阵按键扫描原理(即当我们按下一个矩阵键盘的按键时,如何获取按键的位置)
方法有2种,一种是逐行扫描,一种是行列扫描.接下来就主要讲讲行列扫描.
行列扫描的话,就是一开始让p1口高4位输出高电平,低4位输出低电平,若这4行按键里,有按键按下了,那么那一行按键对应的io的电平就会被拉低,我们就可以知道按键的行坐标.获取按键列坐标的方法也是类似的,就是一开始让p1口高4位输出低电平,低4位输出高电平,若这4列按键里,有按键按下了,那么那一列按键对应的io的电平就会被拉低,我们就可以知道按键的列坐标,获得了行坐标x,列坐标y后,4*(x-1)+y就是按键的编号.
接下来贴份应用的代码,目的就是赋予16个按键键值,分别对应的键值是从0~F。按下一个键,第一个数码管就显示对应的键值
#include<reg52.h>
sbit lsa=P2^2;
sbit lsb=P2^3;
sbit lsc=P2^4;
#define duanxuan P0
#define keyboard P1
int zxm[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
int x,y;
void delay(int i)
{while(i--);
}
void keyproc()
{int a=0;P1=0x0f;//检测是哪一列有按键按下;if(P1!=0x0f){delay(1000);if(P1!=0x0f){P1=0x0f;switch(P1){case(0x07):y=1;break;case(0x0b):y=2;break;case(0x0d):y=3;break;case(0x0e):y=4;break;}}P1=0xf0;//检测是哪一行有按键按下switch(P1){case(0x70):x=1;break;case(0xb0):x=2;break;case(0xd0):x=3;break;case(0xe0):x=4;break;}while(a<50&&P1!=0xf0)//当按键按下的时间超过了500ms或者按键松开了就退出while循环{delay(1000);a++;}}
}
int main()
{lsa=0;lsb=0;lsc=0;//位选选中第一个数码管P0=0x00;//第一个数码管先什么都不显示while(1){keyproc();P0=zxm[(x-1)*4+y-1];//送入段选信息}return 0;}
数码管和138译码器原理图:
通过138译码器控制位选,例如p22输出电平为1,p23输出电平为0,p24输出电平为0,由p24,p23,p22构成了一个三位二进制数001,转换成10进制就是1,那么138译码器的输出端里y1就输出低电平到第二个数码管的com端,相当于位选选中了第二个数码管。
每一个数码管的8段led都是共阴极的,只要给对应数码管的com端输入低电平,数码管就能亮,至于哪些段亮哪些不亮就通过p0口控制,

矩阵键盘的原理及应用相关推荐

  1. 4x4矩阵键盘工作原理及扫描程序_4X4矩形键盘

    介绍 什么是矩阵键盘 矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组,由于电路设计时需要更多的外部输入,单独的控制一个按键需要浪费很多的IO资源,所以就有了矩阵键盘,常用的矩阵键盘有4X4和 ...

  2. 矩阵键盘扫描原理详解——单片机

    矩阵键盘扫描原理详解 根据原理图 键盘扫描方法是:行线P10~P13为输出线,列线P14~P17为输入线.一开始单片机将行线(P10~P13)全部输出低电平,此时读入列线数据,若列线全为高电平则没有键 ...

  3. 蓝桥杯CT107D:关于矩阵键盘工作原理及其应用

    目录 简介 原理图及工作原理 程序实现 简介 矩阵键盘是CT107D上左下角由16个按键组成的.排列顺序类似矩阵的按键组. 原理图及工作原理 工作原理: 在矩阵键盘中,在每条水平线和垂直线交叉处不直接 ...

  4. 玩转Luat 基础篇④——矩阵键盘的原理及应用

    文章目录 一.前言 二.工作原理 2.1 行扫描和列扫描 2.2 扫描的方式 三.快速应用 四.参考 一.前言 使用矩阵键盘的好处,在于节省IO口 使用矩阵键盘的坏处,在于需要行列扫描,增加CPU负担 ...

  5. 4x4矩阵键盘工作原理及扫描程序_单片机人机交互矩阵按键

    按键是一种常开型按钮开关,与单片机的常见接法如图所示.按键未按下时两个触点断开,单片机I/O口输入高电平:当按键闭合时,I/O口输入低电平. 一.按键讲解 当I/O口为P0口时,由于没有内部上拉电阻, ...

  6. 4x4矩阵键盘工作原理及扫描程序_AVR单片机扫描4X4矩阵键盘并数码管显示程序

    /* program name :   keyboard ; 功能描述 :  扫描16个按键(4X4),并把键值显示在数码管上(两位); 要点 :  在扫描按键时运用了比较复杂的两个for()循环嵌套 ...

  7. 4x4矩阵键盘工作原理及扫描程序_基于复杂可编程逻辑器件实现键盘接口电路的设计...

    1 引言 无功补偿装置是用于补偿电网无功功率的不足,提高功率因数,保证供电系统安全运行和节约电能的设备,其核心是控制仪.本控制仪集无功补偿.电度量计量.电能质量监测及通信于一体,对电网参数进行实时采样 ...

  8. vba循环通过键盘某个按键按下退出循环_51单片机按键检测--独立按键与矩阵键盘...

    按键可以说是51单片机项目开发的一个重要组件了,它是作为51单片机IO口输入的一种重要方式.我们可以通过按键控制单片机执行相应的程序,得到我们想要得效果.51单片机的按键输入主要有两种,一种是独立按键 ...

  9. 矩阵键盘基于51(UcosII)计算器小项目

    矩阵键盘 最近要给学弟学妹(应该没有)培训矩阵键盘,正好写一写我写矩阵键盘的思路,顺便分享一个之前做的基于ucosii的计算器小项目 原理 原理就不介绍了,CSDN有很多分享的,推荐两篇参考一下: 参 ...

  10. 单片机——C51实验含Proteus仿真(独立键盘,矩阵键盘)

    文章仅为本人学习记录,如有引用部分会另加说明引用出处 矩阵键盘检测原理:(独立键盘的原理在代码注释中很详细) 线反法的原理为:首先使P1口的高四位输出高电平,P1口低四位输出低电平,这时键盘的行线被拉 ...

最新文章

  1. vc2005编译过程中没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题? 的彻底解决
  2. (step6.3.2)hdu 1068(Girls and Boys——二分图的最大独立集)
  3. 软件工程(2019)结对编程第二次作业
  4. MySQL数据库课程实验报告_创建数据库并插入数据
  5. mysql主从复制、读写分离到数据库水平拆分及库表散列
  6. UML类图中会涉及到的一些概念、关系
  7. Java就业培训教程重点部分的笔记
  8. 带视频加密功能的视频播放器
  9. Python课设:中国五大城市PM2.5数据分析
  10. java 纳秒 毫秒,时钟周期-秒、毫秒、微秒、纳秒之间的换算
  11. 无网络状态下显卡驱动软件安装
  12. sfp寄存器_一种基于Linux系统读写光模块寄存器的方法与流程
  13. Kali-DDoS工具集合
  14. [剑指offer]-导航总结篇
  15. go的close函数理解
  16. 如何在ps中添加图片上的塑料布效果
  17. LabVIEW笔记(一)
  18. 我的TOM邮箱收件速度真不慢——邮箱常见问题解答大全!
  19. java产生随机英文名_Java之随机生成用户数据
  20. web服务器没有对应站点,原因:您的请求在Web服务器中没有找到对应的站点的解决方法...

热门文章

  1. css字体样式加粗变大,css怎么设置字体加粗样式
  2. SeaWeedFS安装以及部署,以及master模式和filer模式的介绍
  3. Java中异或的操作
  4. 软件工程技术--第四章 概要设计
  5. Windows系统为指定用户设定本地组策略
  6. 用数组循环实现矩阵乘法php,C++一维数组实现矩阵的转置与乘法
  7. OpenCV 4 中文文档(更新mat部分)
  8. 模拟信号采样与AD转换
  9. excel多元线性拟合_excel透视+多元线性回归
  10. 4个常用Linux开发环境工具,你最常用的是那个?