51_蓝桥杯_独立按键

news2024/12/30 3:51:04

一 电路

注意:J5跳帽接到2~3引脚,使按键S4-S5四个按键的另外一端接地,从而成为4个独立按键。

二 独立按键工作原理

三 代码

代码1:按下S7点亮L1指示灯,松开按键,指示灯熄灭,按下S6点亮L2指示灯,按下S5点亮L3指示灯,按下S4点亮L4指示灯。

#include "reg52.h"

void Delay(unsignde int t)
{
  while(t--);
}//实现延时功能的函数
 
void InitHC138(unsigned char n)
{
 switch (n)
 { 
   case 4;
      HC138_C = 1;
      HC138_B = 0;
      HC138_A = 0;//输出Y4
   break;
   case 5;
      HC138_C = 1;
      HC138_B = 0;
      HC138_A = 1;//输出Y5
   break;
case 4;
      HC138_C = 1;
      HC138_B = 1;
      HC138_A = 0;//输出Y6
   break;
   case 5;
      HC138_C = 1;
      HC138_B = 1;
      HC138_A = 1;//输出Y7
   break;
 }
}//锁存器选择

void dulianjian()
{
  if(S7 == 0)
  {
   Delay(100);
    if(S7 == 0)
    {
      L1 = 0;
      while(S7 == 0)
      L1 = 1;
     }
    }

   if(S6 == 0)
   {
   Delay(100);
    if(S6 == 0)
    {
      L2 = 0;
      while(S5 == 0)
      L2 = 1;
     }
    }

   if(S5 == 0)
   {
   Delay(100);
    if(S5 == 0)
    {
      L3 = 0;
      while(S5 == 0)
      L3 = 1;
     }
    }

   if(S4 == 0)
   {
   Delay(100);
    if(S4 == 0)
    {
      L4 = 0;
      while(S4 == 0)
      L4 = 1;
     }
    }
}

void main()
{
  InitHC138(4);
  while(1)
  {
    dulianjian();
  }
}

代码2 :  S7点亮L1时,S6不可执行操作,S5点亮L3,S4点亮L4;

S6点亮L2时,S7不可执行操作,S5点亮L5,S4点亮L6;

L1,L2均未被点亮时,S5,S4均不可执行操作。

#include "reg52.h"

void Delay(unsignde int t)
{
  while(t--);
}//实现延时功能的函数
 
void InitHC138(unsigned char n)
{
 switch (n)
 { 
   case 4;
      HC138_C = 1;
      HC138_B = 0;
      HC138_A = 0;//输出Y4
   break;
   case 5;
      HC138_C = 1;
      HC138_B = 0;
      HC138_A = 1;//输出Y5
   break;
case 4;
      HC138_C = 1;
      HC138_B = 1;
      HC138_A = 0;//输出Y6
   break;
   case 5;
      HC138_C = 1;
      HC138_B = 1;
      HC138_A = 1;//输出Y7
   break;
 }
}//锁存器选择

unsigned char stat_k = 0;
void dulianjian()
{
  if(S7 == 0)
  {
   Delay(100);
    if(stat_k == 0)
    {
      L1 = 0;
      stat_k = 1;
    }
      else if(stat_k = 1)
      L1 = 1;
      stat_k = 0;
     }
    }

   
  if(S6 == 0)
  {
   Delay(100);
    if(stat_k == 0)
    {
      L2 = 0;
      stat_k = 2;
    }
      else if(stat_k = 2)
      L2 = 1;
      stat_k = 0;
     }
    }

   if(S5 == 0)
  {
   Delay(100);
    if(stat_k == 1)
    {
      L3 = 0;
      while(S5 == 0);
      L3 = 1;
    }
      else if(stat_k = 2)
      L5 = 0;
      while(S5 == 0);
      L5 = 1;
     }
    }
   if(S4 == 0)
  {
   Delay(100);
    if(stat_k == 1)
    {
      L4 = 0;
      while(S5 == 0);
      L4 = 1;
    }
      else if(stat_k = 2)
      L6 = 0;
      while(S5 == 0);
      L6 = 1;
     }
    }
}

void main()
{
  InitHC138(4);
  while(1)
  {
    dulianjian();
  }
}

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

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

相关文章

Spring Boot项目怎么对System.setProperty(key, value)设置的属性进行读取加解密

一、前言 之前我写过一篇文章使用SM4国密加密算法对Spring Boot项目数据库连接信息以及yaml文件配置属性进行加密配置(读取时自动解密),对Spring Boot项目的属性读取时进行加解密,但是没有说明对System.setProperty(key, value)设…

养生系列文章目录 - 心学和冥想融合实践

养生系列文章目录 文章目录 养生系列文章目录前言一、冥想方式二、早起床上冥想三、喝水冥想四、走路冥想四、坐地铁冥想五、写字冥想六、沟通冥想七、学习冥想八、听音乐冥想九、工作冥想十、跑步冥想十一、睡前冥想总结 前言 王阳明(1472-1529)是中国明…

善于利用GPT确实可以解决许多难题

当我设计一个导出Word文档的功能时,我面临了一个挑战。在技术选型时,我选择了poi-tl这个模板引擎,因为在网上看到了很多关于它的推荐。poi-tl可以根据模板快速导出Word文档。虽然之前没有做过类似的功能,而且项目中也没有用过&…

STM32F10X(Cortex-M3)系统定时器寄存器笔记和系统定时器精准延时函数

Cortex-M3系统定时器寄存器笔记和系统定时器精准延时函数 简介系统定时器寄存器STK_CTRLSTK_LOADSTK_VALSTK_CALIB STM32F10X(Cortex-M3)精准延时函数 简介 在STM32F10X(Cortex-M3)除了通用定时器和看门狗定时器外,还有一个系统定时器(SysTick) 拿STM32F103C8T6来说…

SQL注入:网鼎杯2018-unfinish

目录 使用dirmap扫描 使用dirsearch扫描 使用acunetix扫描 爆破后端过滤的字符 绕过限制获取数据 这次的进行SQL注入的靶机是:BUUCTF在线评测 进入到主页面后发现是可以进行登录的,那么我们作为一个安全人员,那肯定不会按照常规的方式来…

企业必备!助你有效防止员工私删客户微信?

在企业管理中,保护客户资源和数据安全至关重要,特别是在微信这样的沟通工具中。为了有效防止员工私删客户微信以及滥用工作微信,企业可以借助一些专业的工具——微信管理系统来进行监控和管理。 首先,企业可以在微信管理系统上给…

CSS基础属性

【三】基础属性 【1】高度和宽度 (1)参数 width(宽度):用于设置元素的宽度。可以使用具体的数值(如像素值)或百分比来指定宽度。 height(高度):用于设置元…

【JGit】分支管理实践

本文紧接【JGit】简述及学习资料整理。 以下梳理了使用 JGit 进行 Git 操作的实践 JGit实践 主函数 public static void main(String[] args) throws Exception {String localDir "D:\\tmp\\git-test\\";String gitUrl "http://192.168.181.1:3000/root/g…

如何合理规划PCB叠层

目录 引言 6层板叠层设计方案 8层板叠层设计方案 10层板叠层设计方案 12层板叠层设计方案 总结 引言 PCB叠层是决定电子产品EMC性能的关键因素,合理的叠层布局,可以使得PCB上的差模和共模辐射最小化,反之,则可能放大这些辐射的干扰。 通常会从以下的因素中,对PCB的叠…

图扑数字孪生“光储充”一体化智慧充电站

近年来,蔚来、理想、特斯拉等电动汽车凭借独特的优势已成为全球消费者的“新宠儿”。随着新能源车保有量迅速增长,充电需求不断上升,充电桩对区域电网的冲击也日益显著。 “光储充”一体化模式,即“光伏储能汽车充电”&#xff0…

关于Windows 10中剪贴板的知识,看这篇文章就差不多了

本文介绍了如何在Windows10中使用剪贴板。除了有关复制、粘贴和清除剪贴板的信息外,还包括有关将项目固定到剪贴板的信息。 如何将内容复制到Windows 10剪贴板 Windows 10操作系统中的剪贴板比以前的剪贴板体验更先进。使用新的剪贴板,你可以查看复制到…

fastApi笔记04-查询参数和字符串校验

额外校验 使用Query可以对查询参数添加校验 from typing import Unionfrom fastapi import FastAPI, Queryapp FastAPI()app.get("/items/") async def read_items(q: Union[str, None] Query(defaultNone, max_length50)):results {"items": [{"…

【力扣hot100】刷题笔记Day8

前言 到了大章节【链表】了,争取两三天给它搞定!! 160. 相交链表 - 力扣(LeetCode)】 双指针 参考题解,相比于求长度右对齐再一起出发的方法简洁多了 class Solution:def getIntersectionNode(self, head…

zabbix5.0利用percona监控MySQL

具体来说包括: Percona Monitoring Plugins 这是一组用于收集MySQL实例各种性能指标和状态的插件脚本,包括: mysqld_stats.pl - 收集服务器状态计数器mysqld_statement_replay.pl - 进行负载模拟测试pt-status - 收集InnoDB资源使用情况等 Percona Templates 基于这些插件收集…

gitlab 项目上线,项目上线后回滚

gitlab 项目上线,项目上线后回滚 1.需要自己有个gitlab项目环境,没有找我,docker-compose 一键环境启动 2.发起合并请求3.选择合并的分支4.点击创建合并,然后确认合并合并完成,进行回滚操作,在合并详情页…

wo-gradient-card是一款采用uniapp实现的透明辉光动画卡片

采用uniapp-vue3实现,透明辉光动画卡片,卡片内容包含标签、标题、副标题、图片 支持H5、微信小程序(其他小程序未测试过,可自行尝试) 可用于参考学习 可到插件市场下载尝试: https://ext.dcloud.net.cn/plu…

仿12306校招项目-前后端运行

目录 1.git 克隆 2.设置JDK版本 3.sql脚本导入数据 4.启动中间件 5.运行后端 6.运行前端 1.git 克隆 打开 IntelliJ IDEA,菜单栏顶部找到 Git -> Clone 选项。找到 Clone 这个按钮输入 gitgitee.com:nageoffer/12306.git或者https://gitee.com/nageoffer/…

什么是企业数字化转型的关键要素?

企业数字化转型的关键要素通常包括以下几个方面: 战略规划:企业需要制定清晰的数字化转型战略,明确转型的目标、路径和时间表,确保数字化转型与企业整体战略相一致,为企业提供明确的指导。 数据驱动:数据是…

Android 7.0以上charles无法抓取部分https包问题

首先保证配置一切正确 手机通过访问chls.pro/ssl下载.pem证书,如无法安装,在文件管理器中将后缀名改为.crt 在设置中安装该证书 Charles-Proxy - SSL Proxying Setting - Include 添加需要抓包的URL:443即可 以上基本配置结束后,看下代码 代…

极狐GitLab 如何重置管理员密码

在之前安装极狐GitLab 的文章中提到,极狐GitLab 安装成功后,初始登录密码会放在 /etc/gitlab/initial_root_password 文件下,用户可以使用初始用户名 root 及文件内的初始密码即可登录极狐GitLab 实例。 但是有些情况下,可能会发…