QX----mini51单片机学习---(7)矩阵键盘

目录

1矩阵键盘的识别

2相关c语言

3实践编程

1矩阵键盘的识别

假设按列扫描按下S6P30:0P34:1然后高流向低,P34:0,刚开始是0xf0:1111 0000

后面是0xe0:1110 0000  ,当是0xe0能确定是第一列被按下,再按行扫描,S6:0x0e

综合:0xee

2相关c语言

3实践编程

#include<reg52.h>
#include<intrins.h>#define uint unsigned int 
#define uchar unsigned charsbit DU = P2^6;
sbit WE = P2^7;uchar num;//数码管的值
uchar KeyValue = 20;//按键值,初始值是-
//code固定table的值,code很大8k,ram区小
//共阴数码管段选值
uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71,0x76,0x38,0x37,0x3e,0x40,0x00};
void delay(unsigned int xms)		//@12.000MHz
{unsigned char i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}void KeyScan()
{//4*4//列扫描P3=0xf0;if(P3!=0xf0){//消抖delay(10);if(P3!=0){switch(P3)//判断哪一列{case 0xe0: KeyValue = 0; break;case 0xd0: KeyValue = 1; break;case 0xb0: KeyValue = 2; break;case 0x70: KeyValue = 3; break;}//行扫描P3=0x0f;switch(P3)//判断哪一行{case 0x0e: KeyValue = KeyValue; break;case 0x0d: KeyValue = KeyValue + 4; break;case 0x0b: KeyValue = KeyValue + 8; break;case 0x07: KeyValue = KeyValue + 12; break;}//松手(当我们松手后,电流无法流到地,通过上拉电阻回到初始状态while(P3 != 0x0f);}//独立按键P3=0xff;if(P3!=0xff){delay(10);if(P3!=0xff){switch(P3)//判断哪一行{case 0xfe: KeyValue = 16; break;case 0xfd: KeyValue = 17; break;case 0xfb: KeyValue = 18; break;case 0xf7: KeyValue = 19; break;}//松手(当我们松手后,电流无法流到地,通过上拉电阻回到初始状态while(P3 != 0xff);}}}}}
void main()
{WE = 1;P0=0xfb;//位选给0WE = 0;//锁存器锁存while(1){KeyScan();DU = 1;P0 = table[KeyValue];//0000 0110 共阴极给1亮DU = 0;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/690456.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

了解 Swagger 中 allOf 的最佳实践

Swagger 提供了一个名为 allOf 的特性&#xff0c;它是通过扩展已有的数据模型来构造更为复杂的数据结构的有效手段。这一特性主要用于数据模型的继承及属性的组合&#xff0c;有效减少了代码重复&#xff0c;同时增强了代码的可维护性与清晰度。访问 Swagger 官方网站可以获得…

合专家模型 (MoE) 详解

本文转载自&#xff1a;混合专家模型 (MoE) 详解 https://huggingface.co/blog/zh/moe 英文版&#xff1a;https://huggingface.co/blog/moe 文章目录 一、简短总结二、什么是混合专家模型&#xff1f;三、混合专家模型简史四、什么是稀疏性?五、混合专家模型中令牌的负载均衡…

简洁大气APP下载单页源码

源码介绍 简洁大气APP下载单页源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面 效果截图 源码下载 简洁大气APP下载单页源码

Hive Transaction事务表(含实现原理)

Hive Transaction事务表 在Hive中&#xff0c;事务表&#xff08;Transactional Tables&#xff09;允许用户执行事务性操作&#xff0c;包括ACID&#xff08;原子性、一致性、隔离性、持久性&#xff09;特性。事务表是在Hive 0.14版本引入的&#xff0c;并且在后续版本中不断…

【本地部署及云化部署】

文章目录 本地部署及云化部署介绍 文章目录 文章目录一、本地部署模式二、云化部署模式总结 一、本地部署模式 需建设专业化机房&#xff0c;系统应用、前端软件全部安装到本地服务器上。需要专业的IT、网络安全、DBA、电气化工程师进行维护。近些年勒索病毒安全事件频发&am…

Q1季度破壁机家电线上市场现状分析:静音降噪仍是主要购买需求

随着生活水平的提高和居民收入提升&#xff0c;破壁机作为日常食品加工的厨卫小家电逐渐受到关注。 而今年Q1季度&#xff0c;线上破壁机市场发展不如预期。根据鲸参谋数据显示&#xff0c;在线上电商平台&#xff08;京东天猫淘宝&#xff09;销量累计超过211万元&#xff0c…

Baidu Comate:释放编码潜能,革新软件开发

Baidu Comate Baidu Comate&#xff0c;智能代码助手&#xff0c;凭借着文心大模型的强大支撑&#xff0c;结合了百度多年的编程实战数据和丰富的开源资源&#xff0c;形成了一款崭新的编码辅助利器。它不仅具备着高智能、多场景、价值创造的特质&#xff0c;更可广泛应用于各…

C# OpenCvSharp Demo - 棋盘格相机标定

C# OpenCvSharp Demo - 棋盘格相机标定 目录 效果 项目 代码 下载 效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.Drawing.Imaging; using System.Text; using Sys…

判断点在多边形内部

0. 介绍 网上资料很多&#xff0c;只简单介绍下&#xff0c;方便自己今后的理解。 1. 射线法 从该点引一条射线出来&#xff0c;如果和多边形有偶数个交点&#xff0c;则点在多边形外部。 因为有入必有出&#xff0c;所以从外部引进来的射线一定是交多边形偶数个点。 如图…

Pyecharts的编程环境准备

一&#xff0c;准备Python编程环境&#xff1a; Python版本&#xff1a;3.10以上&#xff0c;最高版本3.12 https://www.python.org/ 进入官网&#xff0c;点击downloads—>windows进入下载页面&#xff0c;搜索”3.10.6”找到指定版本&#xff0c;下载并安装64位Installer…

完整性验证器:迈向 Starknet 超高可扩展性的一大步

原文&#xff1a;https://www.starknet.io/en/content/the-integrity-verifier-a-leap-toward-starknet-hyperscaling&#xff1b;https://www.starknet.io/en/ecosystem/grant 编译&#xff1a;TinTinLand 核心观点 由 Herodotus 开发的完整性验证器&#xff0c;使开发者能够…

一文了解Simhash原理和用法-计算文章相似度

Simhash原理 1&#xff1a;背景 SimHash算法是Google在2007年发表的论文《Detecting Near-Duplicates for Web Crawling》中提到的一种指纹生成算法&#xff0c;被应用在Google搜索引擎网页去重的工作之中。SimHash值不但提供了原始值是否相等这一信息&#xff0c;还能通过该…