矩阵按键之行列式扫描
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)
{
//要执行的程序
}
}
矩阵按键之行列式扫描相关推荐
- 计算机键盘是编码键盘还是非编码键盘,矩阵按键原理图_矩阵按键扫描实例
键盘分编码键盘和非编码键盘.键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘. 在一般嵌入式应用中,用的最多的是非编码键盘 ...
- C51矩阵按键-行列式法+线翻转法
矩阵按键-线翻转法 #include <REGX51.H> typedef unsigned char u8; typedef unsigned int u16; #define KEY_ ...
- 4x4矩阵键盘工作原理及扫描程序_单片机人机交互矩阵按键
按键是一种常开型按钮开关,与单片机的常见接法如图所示.按键未按下时两个触点断开,单片机I/O口输入高电平:当按键闭合时,I/O口输入低电平. 一.按键讲解 当I/O口为P0口时,由于没有内部上拉电阻, ...
- 蓝桥杯单片机stc15f2k61s2矩阵按键中断扫描代码
使用中断函数进行矩阵按键的扫描,在<手把手教你学51单片机>上面的代码修改了一下.感觉这个代码写的比较好. #include<stc15f2k60s2.h>#define uc ...
- (二)DSP28335基础教程——GPIO输入(矩阵按键扫描)
0 前言 GPIO输入功能是28335非常重要的部分,可通过外部数字逻辑信号的输入,作为逻辑触发控制的判断条件.比如在电机控制中,通过判断输入管脚的电平状态,实现电机调速.在显示屏人机界面下,也可通过 ...
- STM32矩阵按键扫描冲突问题
最近做了一个项目,有个部分用到了矩阵扫描的原理,要检测按键是否按下去执行一个动作.一开始硬件工程师的原理图实现是设计成传统矩阵按键方式,大致原理如下所示: 这种硬件实现方式当去检测单个按下.一整行按下 ...
- STM32F103 矩阵键盘4*4 16*16等任意矩阵 按键扫描程序
基于STM32的按键扫描测试程序(学习记录): 目录: 源码: 4x4按键原理: 按键扫描逻辑: Tips: 粘贴代码时,粘贴在源文件存放的位置中(如:HARDWARE中的.c和.h文件),用C++编 ...
- 【STC8A8K64S4A12开发板】—4x4矩阵按键检测
版权声明:本文为博主原创文章,转载请附上原文出处链接. 文章目录 前言 一.硬件电路设计 1.矩阵按键检测介绍 2.矩阵按键检测原理介绍 二.软件设计 1.矩阵按键扫描实验 – 指示灯闪烁 1.1.工 ...
- 51单片机学习记录(五)矩阵按键
文章目录 1.矩阵按键的控制原理 2.矩阵按键实现 1.行列式法实现矩阵按键 2.线翻转法实现矩阵按键 3.按键实战 1.矩阵按键的控制原理 独立按键与单片机连接时, 每一个按键都需要单片机的一个 I ...
- 自学51单片机 - 矩阵按键实验
自学51单片机 - 矩阵按键实验 1.开发板原理图 2.程序 2.1 行列式扫描法 2.2 线翻转扫描法 3.结果 1.开发板原理图 2.程序 2.1 行列式扫描法 /**************** ...
最新文章
- 黑龙江专科大学计算机专业,黑龙江10大最好的专科学校,有你心仪的学校吗?...
- 乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern)
- mysql可以存储整数数值的是_MySQL的数值类型
- POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解...
- HDU 2149-Public Sale(巴什博奕)
- .net 读蓝牙数据_Linux内核曝严重蓝牙漏洞,影响多个版本
- HBase shell执行批量脚本
- 厉害了 | 一秒切换Hexo中英文,厉害了!!
- 怎么用python算单价和总价_用python计算最高投标限价
- linux 监控命令iostat,Linux性能监控分析命令(三)—iostat命令介绍
- linux系统资源管理系统,linux基础4系统资源管理
- booleanfield()和booleanfield(default=True)在数据库的表中无法插入
- 新手 php连接数据库大概。简单过程浅析以及遇到的问题分析
- JAVA给枚举成员指定值
- 标签打印软件如何制作DataMatrix二维码
- java求生序列_Java 经典面试题:聊一聊 JUC 下的 LinkedBlockingQueue_绝地求生黑号,dnf辅助...
- 分享受用一生的高效 PyCharm 使用技巧。
- java小白,随意给出一个三位数的整数,打印显示它的个位数,十位数,百位数的值。
- linux内存管理笔记(三十九)----kswapd内存回收
- Android面试题(25)-Bundle机制
热门文章
- 微博的html,微博输入html
- mysql alter操作
- Android 全局替换项目默认字体
- ClassNotFoundException: com.lowagie.text.pdf.PdfGState
- uniapp打包H5与uniapp打包apk交互,实现扫码功能。
- python爬虫淘宝评论图片_淘宝上的图片是怎么被爬取的
- 【算法升级】仅有85K个参数的开源人脸检测算法
- android:scaleType=centerCrop
- LEDE独臂路由器无法上网踩坑
- python爬虫项目报告需求分析_网络爬虫需求分析报告