11:按键

按键

  • 1、按键的相关知识
  • 2、独立按键
  • 3、CPU如何处理按健
  • 4、编程测试(用LED1作为指示)
  • 5 、编程测试(用8个LED作为指示)

1、按键的相关知识

分为独立按键和矩阵按键

在这里插入图片描述

在这里插入图片描述

2、独立按键

在这里插入图片描述由图得独立按键右边接地,左边独立连接到插座JP5。
但我们的独立按键和单片机连接时如下图:
在这里插入图片描述

(1)按键电路接法、上拉电阻。上拉是为了让引脚默认是高电平,但是上拉的力量扛不住接地,所以按键没有按下时上拉的力量保证了IO引脚输入为1而按下后IO引脚输入绝对为0
(2)按键这个设备对我们的意义:按键对于我们CPU来说是一个输入设备,输入的是人的操作。CPU通过监测按键连接的IO引脚的电平输入是1还是0就知道外部有没有人按下这个按键。相当于人通过按按键给CPU输入了一个信号,这个信号可以被CPU监测到从而指导CPU去做一定的工作。

3、CPU如何处理按健

(1)轮询式:所谓轮询式就是CPU不断的隔很小时间去查看有没有按键被按下,如果按下就处理按键,如果没按下就过一会再来查看。(按键什么时候被按下CPU是无法预知的)
(2)中断式

4、编程测试(用LED1作为指示)

(1)使用轮询法来处理独立按键K1,单片机在循环中每隔很短的时间就检测K1对应的P1.0引脚的输入电平是1还是0,如果是1则表示按键没有按下,延时等待下一次检验;如果是,表示按键己经按下了,点亮一颗LED1作为指示。

#include <REGX51.H>sbit K1 = P1^0;
sbit LED1 = P0^0;void main (void)
{while(1){if(K1 == 0)//K1按下{LED1 = 0X01;//LED1亮}elseLED1 = 0;}
}

5 、编程测试(用8个LED作为指示)

按下K1时LED1亮,按下K2时LED2亮,以此类推。

#include <REGX51.H>void main (void)
{while(1){if (P1 == 0xFE)      //K1按下P0 = 0X01;      //LED1亮else if(P1 == 0xFD)  //K2按下P0 = 0X02;      //LED2亮else if(P1 == 0xFB)  //K3按下P0 = 0X04;        //LED3亮else if(P1 == 0xF7)  //K4按下P0 = 0X08;      //LED4亮else if(P1 == 0xEF)  //K5按下P0 = 0X10;        //LED5亮else if(P1 == 0xDF)  //K6按下P0 = 0X20;      //LED6亮else if(P1 == 0xBF)  //K7按下P0 = 0X40;        //LED7亮else if(P1 == 0x7F)  //K8按下P0 = 0X80;        //LED8亮elseP0 = 0X00;	}
}		

代码改进;

#include <REGX51.H>void main (void)
{unsigned char i;while(1){for (i=0; i<=7; i++){if((P1 & (0x01<<i))	== 0) //位与运算,判断是否按下							{P0 = (0X01 << i);break;}elseP0 = 0X00;			}		}
}

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

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

相关文章

断电保持霍尔传感器

断电保持霍尔传感器的工作原理 断电保持霍尔传感器是一种利用变压器或共振电路的检测元件&#xff0c;通过检测物体与探头之间的物理距离控制电路的开关状态&#xff0c;从而实现对物体位置和状态的监测。该开关可以通过调试和校准以满足不同场合的要求。 断电保持霍尔传感器控…

jsp游戏网上商城系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 游戏网上商城系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

算法练习02——双指针

目录 283. 移动零11. 盛最多水的容器15. 三数之和42. 接雨水*(暴力&#xff0c;双指针优化暴力&#xff0c;单调栈)27. 移除元素344. 反转字符串54. 替换数字&#xff08;第八期模拟笔试&#xff09;151. 反转字符串中的单词206. 反转链表19. 删除链表的倒数第 N 个结点.面试题…

Electron开发的十大神级产品,vscode、atom、skype、figma等

Hi、我是贝格前端工场&#xff0c;今天分享一下基于Electron的十大著名产品&#xff0c;欢迎友友们补充。 Visual Studio Code 这是一款由微软开发的轻量级代码编辑器&#xff0c;它提供了丰富的功能和插件生态系统&#xff0c;支持多种编程语言和开发工具。Visual Studio Cod…

SpringBoot整理-安全(Spring Security)

在 Spring Boot 应用中实现安全性通常涉及到集成 Spring Security 框架。Spring Security 是一个功能强大且高度可定制的认证和访问控制框架,非常适合用于保护 Spring Boot 应用。 核心特性 认证: 认证是确认某个实体的身份,Spring Security 支持多种认证机制,如表单登录、L…

C++ | 部分和函数partial_sum的使用技巧

如果你需要处理一个数组的前缀和&#xff0c;或者数组中某一段元素的前缀和&#xff0c;你会怎么做呢&#xff1f; partial_sum函数是STL中的函数&#xff0c;用于计算范围的部分和&#xff0c;并从结果开始分配范围中的每个元素&#xff0c;range[first,last)中相应元素的部分…

爬虫工作量由小到大的思维转变---<第四十章 Scrapy Redis 的Queue问题>

前言: 对于scrapy-redis有一个特殊的地方,就是队列的进出关系,因为我们的url请求会从各个任务统一归纳到redis里面,因此,如何解决下载请求这个问题,也是scrapy-redis的一个关键点!!! 正文: 先讲解代码,讲它自带的3个队列方式; 然后,再讲讲如何自定义队列... 原文翻译: 1.Bas…

<网络安全>《14 日志审计系统》

1 概念 日志审计系统是用于全面收集企业IT系统中常见的安全设备、网络设备、数据库、服务器、应用系统、主机等设备所产生的日志&#xff08;包括运行、告警、操作、消息、状态等&#xff09;并进行存储、监控、审计、分析、报警、响应和报告的系统。 日志审计系统是一种用于…

投资更好的管理会计系统,探索全面预算管理的奥秘

目前&#xff0c;我国财政体制正值如火如荼的调整阶段&#xff0c;各级政府和部门响应国家号召&#xff0c;旨在加强管理会计系统建设&#xff0c;制定具有先导性和科学性的现代化全面预算管理制度&#xff0c;从而将我国财力推向一个新高度。其中&#xff0c;基于服务或产品的…

工程师 - headless模式

headless 英文释义&#xff1a; 在没有用户界面的情况下运行&#xff1b;具体地说&#xff0c;在没有显示器、键盘和鼠标的情况下运行。 Running without a user interface; specifically, running without a monitor, keyboard, and mouse. 说明 所谓的“无头系统”&#x…

【PostgreSQL灵活使用psql执行SQL的一些方式】

一、psql执行SQL并使用选项灵活输出结果 可以不进入数据库&#xff0c;在命令行&#xff0c;使用psql 的-c选项跟上需要执行的SQL。来获取SQL的执行结果 postgresubuntu-linux-22-04-desktop:~$ psql -c "select 1,2" ?column? | ?column? -------------------…

Swift Vapor 教程(CURD 操作)

接上篇使用 Swift Vapor 对数据库进行简单的操作。 下面会使用一个稍微简单的方式进行 CURD 操作 import Fluent import Vaporstruct SongController: RouteCollection {func boot(routes: Vapor.RoutesBuilder) throws {let songs routes.grouped("songs")// GET…

tengine ngx_http_upstream_dynamic_module 动态域名解析功能的代码详细解析

tengine ngx_http_upstream_dynamic_module 动态域名解析功能的代码详细解析 1. 为什么需要域名动态解析2. 配置指令3. 加载模块3. 源码分析3.1 指令解析3.2 upstream负载均衡算法的初始化3.3 upstream负载均衡上下文的初始化3.4 获取upstream的服务器地址3.5 域名解析回调处理…

【Boost】:parser代码的基本结构(二)

parser代码的基本结构 一.总体概述二. EumeFile的实现三.ParserHtml的实现四.SaveHtml实现五.完整源代码 打开parser.cc,用vscode或者vim都行。 一.总体概述 首先递归式的把文件名和路径读入一个数组内&#xff0c;接着把数组内的每一个数据按照一定的格式进行划分&#xff0c;…

创建型模式-单例模式:定义、实现及应用

目录 一、模式定义二、针对问题1.解决的问题2.解决方案3.举个例子4.设计模式适合场景5.实现方式6.优缺点7.与其他模式的关系 三、代码实现 一、模式定义 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型模式&#xff0c;用于限制某个类只能创建一个对象。它提…

大数据信用报告查询费用一般要多少钱?

一些不少朋友在申贷的时候被拒贷之后&#xff0c;得到的原因就是因为大数据不良被拒&#xff0c;这时候很多人都反过来查询自己的大数据信用报告&#xff0c;而查询的价格也是不少朋友都比较关注的&#xff0c;那大数据信用报告查询费用一般要多少钱呢?下面本文就为你介绍一下…

码农也得“开口说话”

咱们程序员兄弟们有时候被大家贴上了“闷葫芦”的标签&#xff0c;好像我们只适合跟电脑谈恋爱&#xff0c;不爱搭理人似的。不过今儿咱要说的是&#xff0c;码农界的大神可不只是会敲代码那么简单&#xff0c;会聊天、懂合作那也是必不可少的生存法则&#xff01; 一、内向也…

vue3中如何实现图片的压缩

首先&#xff0c;为什么需要进行图片压缩&#xff1a; 减少页面加载时间&#xff1a;因为图片是页面中常见的资源之一&#xff0c;较大的图片会增加页面的加载时间&#xff0c;影响用户体验&#xff0c;压缩图片可以减小图片的文件大小&#xff0c;提升页面加载速度。节省网络…

App ICP备案获取iOS和Android的公钥和证书指纹

依照《工业和信息化部关于开展移动互联网应用程序备案工作的通知》&#xff0c;向iOS和安卓平台提交App时需要先提交ICP备案信息。 iOS平台&#xff1a; 1、下载appuploader工具&#xff1a;Appuploader home -- A tool improve ios develop efficiency such as submit ipa to…

vue yarn certificate has expired

背景&#xff1a;我在用ant design pro框架进行初始化时&#xff0c;安装脚手架时&#xff0c;安装yarn时显示报错 原因分析&#xff1a;查了很久的资料&#xff0c;这种情况应该是开了服务器代理访问导致ssl安全证书失效了 解决办法&#xff1a; 在终端输入&#xff1a;yarn…