4×4行列式扫描:

每个按键都由两根线共同控制,两者都为低电平时按键才能发挥作用,如上图所示,P10-P13称为列线,P14-P17称为行线,使其中一条行线(或列线)为低电平,分别去检测另外的列线(或行线)即可。

如上图所示的行列式扫描程序如下:

//定义一个扫描函数typedfe unsigned char u8;u8 key_scan()
{u8 key_value=0;K=0x7f;                             //第一行为0即P17=0if (K!=0x7f){delay_10us(1000);switch(K)        //保证第一行为0{  case 0x77:key_value=0; break;     //如果第一列为0.P13=0case 0x7b:key_value=1; break;case 0x7d:key_value=2; break;case 0x7e:key_value=3; break;}}while (K!=0x7f);                    //按键松开K=0xbf;if (K!=0xbf){delay_10us(1000);switch(K){case 0xb7:key_value=4; break;case 0xbb:key_value=5; break;case 0xbd:key_value=6; break;case 0xbe: key_value=7; break;}}while(K!=0Xbf);K=0xdf;if (K!=0xdf){delay_10us(1000);switch(K){case 0xd7:key_value=8; break;case 0xdb:key_value=9; break;case 0xdd:key_value=10; break;case 0xde: key_value=11; break;}}while(K!=0xdf);K=0xef;if (K!=0xef){delay_10us(1000);switch(K){case 0xe7:key_value=12; break;case 0xeb:key_value=13; break;case 0xed:key_value=14; break;case 0xee: key_value=15; break;}}while(K!=0xef) ;return key_value;}//主函数
void main()
{while(1)
{
//要执行的程序
}
}

矩阵按键之行列式扫描相关推荐

  1. 计算机键盘是编码键盘还是非编码键盘,矩阵按键原理图_矩阵按键扫描实例

    键盘分编码键盘和非编码键盘.键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘. 在一般嵌入式应用中,用的最多的是非编码键盘 ...

  2. C51矩阵按键-行列式法+线翻转法

    矩阵按键-线翻转法 #include <REGX51.H> typedef unsigned char u8; typedef unsigned int u16; #define KEY_ ...

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

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

  4. 蓝桥杯单片机stc15f2k61s2矩阵按键中断扫描代码

    使用中断函数进行矩阵按键的扫描,在<手把手教你学51单片机>上面的代码修改了一下.感觉这个代码写的比较好. #include<stc15f2k60s2.h>#define uc ...

  5. (二)DSP28335基础教程——GPIO输入(矩阵按键扫描)

    0 前言 GPIO输入功能是28335非常重要的部分,可通过外部数字逻辑信号的输入,作为逻辑触发控制的判断条件.比如在电机控制中,通过判断输入管脚的电平状态,实现电机调速.在显示屏人机界面下,也可通过 ...

  6. STM32矩阵按键扫描冲突问题

    最近做了一个项目,有个部分用到了矩阵扫描的原理,要检测按键是否按下去执行一个动作.一开始硬件工程师的原理图实现是设计成传统矩阵按键方式,大致原理如下所示: 这种硬件实现方式当去检测单个按下.一整行按下 ...

  7. STM32F103 矩阵键盘4*4 16*16等任意矩阵 按键扫描程序

    基于STM32的按键扫描测试程序(学习记录): 目录: 源码: 4x4按键原理: 按键扫描逻辑: Tips: 粘贴代码时,粘贴在源文件存放的位置中(如:HARDWARE中的.c和.h文件),用C++编 ...

  8. 【STC8A8K64S4A12开发板】—4x4矩阵按键检测

    版权声明:本文为博主原创文章,转载请附上原文出处链接. 文章目录 前言 一.硬件电路设计 1.矩阵按键检测介绍 2.矩阵按键检测原理介绍 二.软件设计 1.矩阵按键扫描实验 – 指示灯闪烁 1.1.工 ...

  9. 51单片机学习记录(五)矩阵按键

    文章目录 1.矩阵按键的控制原理 2.矩阵按键实现 1.行列式法实现矩阵按键 2.线翻转法实现矩阵按键 3.按键实战 1.矩阵按键的控制原理 独立按键与单片机连接时, 每一个按键都需要单片机的一个 I ...

  10. 自学51单片机 - 矩阵按键实验

    自学51单片机 - 矩阵按键实验 1.开发板原理图 2.程序 2.1 行列式扫描法 2.2 线翻转扫描法 3.结果 1.开发板原理图 2.程序 2.1 行列式扫描法 /**************** ...

最新文章

  1. 黑龙江专科大学计算机专业,黑龙江10大最好的专科学校,有你心仪的学校吗?...
  2. 乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern)
  3. mysql可以存储整数数值的是_MySQL的数值类型
  4. POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解...
  5. HDU 2149-Public Sale(巴什博奕)
  6. .net 读蓝牙数据_Linux内核曝严重蓝牙漏洞,影响多个版本
  7. HBase shell执行批量脚本
  8. 厉害了 | 一秒切换Hexo中英文,厉害了!!
  9. 怎么用python算单价和总价_用python计算最高投标限价
  10. linux 监控命令iostat,Linux性能监控分析命令(三)—iostat命令介绍
  11. linux系统资源管理系统,linux基础4系统资源管理
  12. booleanfield()和booleanfield(default=True)在数据库的表中无法插入
  13. 新手 php连接数据库大概。简单过程浅析以及遇到的问题分析
  14. JAVA给枚举成员指定值
  15. 标签打印软件如何制作DataMatrix二维码
  16. java求生序列_Java 经典面试题:聊一聊 JUC 下的 LinkedBlockingQueue_绝地求生黑号,dnf辅助...
  17. 分享受用一生的高效 PyCharm 使用技巧。
  18. java小白,随意给出一个三位数的整数,打印显示它的个位数,十位数,百位数的值。
  19. linux内存管理笔记(三十九)----kswapd内存回收
  20. Android面试题(25)-Bundle机制

热门文章

  1. 微博的html,微博输入html
  2. mysql alter操作
  3. Android 全局替换项目默认字体
  4. ClassNotFoundException: com.lowagie.text.pdf.PdfGState
  5. uniapp打包H5与uniapp打包apk交互,实现扫码功能。
  6. python爬虫淘宝评论图片_淘宝上的图片是怎么被爬取的
  7. 【算法升级】仅有85K个参数的开源人脸检测算法
  8. android:scaleType=centerCrop
  9. LEDE独臂路由器无法上网踩坑
  10. python爬虫项目报告需求分析_网络爬虫需求分析报告