当前位置: 首页 > news >正文

矩阵键盘独立接口设计(Keil+Proteus)

前言

实验:通过4*4的矩阵键盘,按下某个按钮之后会在数码管上面显示对应的键号。(0~F)

基础操作参考这篇博客:

LED数码管的静态显示与动态显示(Keil+Proteus)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_64066303/article/details/134101256

Keil

实验采用的是共阳极的接法。所以这个二进制的数据里面的元素都是共阳极的。

通过逐行的扫描,假设当前扫描第一行,对应的P1^0~P1^3中有0则说明是该行有键被按下,结合if判断可以确定是哪一列。

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned intsbit L1=P1^0;//定义列
sbit L2=P1^1;
sbit L3=P1^2;
sbit L4=P1^3;
//共阳极字符0~F的段码
uchar dis[16]={0xC0,0XF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
uint time;
//延时,放键盘抖动
void delay(uint time);void main(void){uchar temp;uchar i;while(1){P1=0xEF;//行扫描初值1110 1111(扫描P1^4)for(i=0;i<4;i++){//逐行为低,按行扫描,一共4行if(L1==0)P0=dis[i*4+0];//判断第一列有无键被按下if(L2==0)P0=dis[i*4+1];//判断第二列有无键被按下if(L3==0)P0=dis[i*4+2];//判断第三列有无键被按下if(L4==0)P0=dis[i*4+3];//判断第四列有无键被按下delay(500);//延时temp=P1;//读入P1口的状态temp=temp|0x0F;//将P1^3~P1^0为1temp=temp<<1;//左移,准备扫描下一行temp=temp|0x0F;P1=temp;//为扫描下一行做准备}}
}				
//软件消除抖动,延时
void delay(uint time){uint i;for(i=0;i<time;i++);
}

Proteus

相信大家已经轻车熟路了,就直接放原理图了。

所需要的器件

元件名称Proteus关键字
51单片机AT89C51
复位按钮BUTTON
电阻RES
共阳极八位数码管7SEG-MPX1-CA
电源POWER

 

矩阵键盘

总结

继续加油!!!

相关文章:

矩阵键盘独立接口设计(Keil+Proteus)

前言 实验&#xff1a;通过4*4的矩阵键盘&#xff0c;按下某个按钮之后会在数码管上面显示对应的键号。&#xff08;0~F&#xff09; 基础操作参考这篇博客&#xff1a; LED数码管的静态显示与动态显示&#xff08;KeilProteus&#xff09;-CSDN博客https://blog.csdn.net/w…...

国产猫罐头可以作为长期主食吗?口碑好的顶级猫罐头推荐

我一直在分析和尝试国产猫罐头&#xff0c;我家猫已经吃了几十款了。今天&#xff0c;我想和大家分享一些关于国产猫罐头的经验和心得。 近年来&#xff0c;国产宠粮市场呈现出爆发趋势&#xff0c;各个猫粮商在配方、营养数据和包装上展开了激烈的角逐&#xff0c;无一不让我…...

大数据毕业设计选题推荐-营业厅营业效能监控平台-Hadoop-Spark-Hive

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

CSS的Grid布局与Flex布局

Grid布局 Grid布局是一种CSS布局模式&#xff0c;它使用一个二维的网格系统来定位元素。它允许您将容器分为行和列&#xff0c;然后将元素放置在特定的行和列中。Grid布局非常适合创建复杂的网页布局和对齐元素。 以下是grid布局的基本语法&#xff1a; .container { displ…...

常见React Hooks 钩子函数用法

一、useState useState()用于为函数组件引入状态&#xff08;state&#xff09;。纯函数不能有状态&#xff0c;所以把状态放在钩子里面。 import React, { useState } from react import ./Button.cssexport function UseStateWithoutFunc() {const [name, setName] useStat…...

AlGaN/GaN HEMT 中缓冲区相关电流崩溃的缓冲区电位模拟表征

标题&#xff1a;Characterization of Buffer-Related Current Collapse by Buffer Potential Simulation in AlGaN/GaN HEMTs 来源&#xff1a;IEEE TRANSACTIONS ON ELECTRON DEVICES (18年) 摘要 - 在本文中&#xff0c;通过使用脉冲 I-V 测量和二维漂移扩散模拟研究了 Al…...

深入理解ClickHouse跳数索引

一、跳数索引​ 影响ClickHouse查询性能的因素很多。在大多数场景中&#xff0c;关键因素是ClickHouse在计算查询WHERE子句条件时是否可以使用主键。因此&#xff0c;选择适用于最常见查询模式的主键对于表的设计至关重要。 然而&#xff0c;无论如何仔细地调优主键&#xff…...

ElasticSearch中实际操作细节点

ElasticSearch中的细节点 文章目录 ElasticSearch中的细节点1、提示&#xff1a;1.1 ElasticSearch相关文档&#xff1a;1.2 Kibana的常用快捷键1.3 kibana的注释方式 2、term与terms的用法以及区别3、ElasticSearch中"index":"false","doc_values&qu…...

VCG 获取指定面片与顶点的索引

文章目录 一、介绍二、实现代码三、实现效果参考资料一、介绍 VCG Lib存在许多中方式对Mesh数据进行编码,其中最为常用的为顶点+三角形(比如三角形网格以及四面体网格)。VCG关于Mesh的定义如下所示: vcg::tri::TriMesh 包含顶点的容器类型(通常是std::vector),具体的顶点…...

开发知识点-Django

Django 1 了解简介2 Django项目结构3 url 地址 和视图函数4 路由配置5 请求及响应6 GET请求和POST请求查询字符串 7 Django设计模式及模板层8 模板层-变量和标签9 模板层-过滤器和继承继承 重写 10 url反向解析11 静态文件12 Django 应用及分布式路由创建之后 注册 一下 13 模型…...

Linux系统笔记参考

Linux系统笔记 一、基本命令 1、简单的几个命令 ls&#xff1a;显示指定目录下的文件目录清单&#xff08;list&#xff09; cd&#xff1a;切换目录&#xff0c;改变当前的工作目录&#xff08;change directory&#xff09; cd ~ 或 cd 切换到用户主目录&#xff08;用户家…...

AI:62-基于深度学习的人体CT影像肺癌的识别与分类

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…...

数字孪生智慧工厂3D无代码编辑工具提供强大、简单功能

相比传统的2D/2.5D&#xff0c;3d可视化场景脱颖而出&#xff0c;成为更多行业的首选&#xff0c;然而传统的3D可视化场景制作需要花费大量的人力财力及周期来创建复杂的3D模型和场景&#xff0c;对很多企业及个人来说是个挑战&#xff0c;3D可视化场景编辑器通过简单的拖拉拽&…...

python 为什么这么受欢迎?python的优势到底在哪里?

常言道:“流水的语言&#xff0c;铁打的Python”&#xff0c;目前它可以说是已经"睥睨天下&#xff0c;傲视群雄"了。它天生丽质&#xff0c;易于读写&#xff0c;非常实用&#xff0c;从而赢得了广泛的群众基础&#xff0c;被誉为"宇宙最好的编程语言"&am…...

Flutter转换png图片为jpg图片

1.需求 在xxx产品需求中&#xff0c;需要将png图片转为jpg图片。 2.引用库 image: ^4.1.3 Dart图像库提供了以各种图像文件格式加载、保存和操作图像的功能。 该库可以与dart:io和dart:html一起用于命令行、Flutter和web应用程序。 注&#xff1a;4.0是该库先前版本的主要修订…...

c++ grpc 第一个用例

一、linux 包管理工具安装 sudo apt-get update sudo apt-get install -y build-essential autoconf libtool pkg-config cmake sudo apt-get install -y libgflags-dev libgtest-dev sudo apt-get install -y clang libc-dev# 安装 gRPC C 相关依赖 sudo apt-get install -y …...

pandas笔记:读写excel

1 读excel read_excel函数能够读取的格式包含&#xff1a;xls, xlsx, xlsm, xlsb, odf, ods 和 odt 文件扩展名。 支持读取单一sheet或几个sheet。 1.0 使用的数据 1.1 主要使用方法 pandas.read_excel(io, sheet_name0, header0, namesNone, index_colNone, usecolsNon…...

【ES分词】

分词 #测试分词器 POST /_analyze {"text": "小米手机和华为手机都是国产mobilephone", "analyzer": "english" }不管analyzer是改成&#xff1a;standard还是chinese都无法实现中文分词。 处理中文分词一般采用IK分词器 安装链接&…...

Git设置显示中文

git config --global i18n.comitencoding utf-8 git config --global i18n.logoutputencoding utf-8 export LESSCHARSETutf-8...

数实结合的复杂电磁环境构建解决方案

数实结合的复杂电磁环境构建解决方案 数实结合的复杂电磁环境构建 目前无线收发设备面临的电磁环境愈发恶劣。为了检验设备在复杂电磁环境下的实际工作性能&#xff0c;需进行各种应用条件下的测试和试验。外场测试难以提供各种应用环境&#xff0c;存在测试周期长、成本高、难…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...