蓝桥杯电子赛_继电器和蜂鸣器

目录

一 前言

二 继电器和蜂鸣器实物

三 分析部分

(1)bsp_init.c

(2)蜂鸣器和继电器原理图

(3)ULN2003

(4)他们俩所连接的锁存器

四 代码

在这里要特别说一点!!!


一 前言

本章会介绍一些蓝桥杯中 考的不是那么频繁的知识点,但是最好还是要学一学。后续会写一些关于pwm、NE555、串口等,国赛需要的超声波和一些比较难的,后续再写相关博客。

二 继电器和蜂鸣器实物

看上面这张图,继电器和蜂鸣器在官方所提供的右侧,画黄色圈的这部分,一定要把短接帽插在右侧,这样他们俩才能正常工作

关于他们俩的原理图,请看到第三部分,我会一步步进行分析,那么我们想要实现让继电器打开同时蜂鸣器叫,那么我们该如何操作呢,请看下面的分析的部分

三 分析部分

(1)bsp_init.c

在曾经我们写过的初始化函数当中,我们关闭了蜂鸣器和继电器,所以我们本次的主角就集中在了曾经最初学过的地方

void Cls_Peripheral(void)
{P0 = 0xFF;				P2 = P2 & 0x1F | 0x80;		//0x80ѡͨY4£¬½«Êý¾Ý͸´«¹ýÈ¥£¬½«LED¹Ø±ÕP2 &= 0x1F;				//½«Ëø´æÆ÷¹Ø±ÕP0 = 0;P2 = P2 & 0x1F | 0xA0;		//0xA0ѡͨY5£¬½«ÍâÉè´¦ÀíµôP2 &= 0x1F;				//½«Ëø´æÆ÷¹Ø±Õ	}

注意力集中在了0xA0这三行代码上,而真正决定着蜂鸣器和继电器是否开始工作,我们就应该把P0赋值成某一个数。

(2)蜂鸣器和继电器原理图

 要给buzz和RELAY低电平,才能让蜂鸣器和继电器工作

(3)ULN2003

 关于锁存器上链接的ULN2003,这上面是对应的原理图,可以发现内部说白了就是八个取反器,那么也就是说,在M74HC573M1R锁存器边上接了一个取反器。

(4)他们俩所连接的锁存器

 首先想要让锁存器工作的,就必须要打开Y5C(这块不懂的,请看第一篇文章),其次,观察RELAY和BUZZ,他们所对应的位是P04和P06,如果我想让RELAY和BUZZ输出低电平0,那么15和13部分就得是高电平1,所对应的P04和P06就是高电平1,其他是零,P07到P00,0101 0000那么我就需要将P0赋值成0x50,才可以将对应的继电器和蜂鸣器打开。

四 代码

现在我们已经将最开始的bsp_init.c中的代码改成了如下代码,同时为了保证其他地方不改变,我们要写成P0或上0x50。

	P0 |= 0x50;P2 = P2 & 0x1F | 0xA0;	P2 &= 0x1F;				

在这里要特别说一点!!!

由于数码管和灯都用到了P0这个位置,所以我们不能直接对P0处进行赋值,最好在mian.c上引入全局变量,unsigned char beep_relay_flag= 0;

我们只需要对全局变量beep_relay_flag赋值即可,不会影响到P0本身~

 代码如下:

switch(Key_Down)
{case 11:beep_relay_flag |= 0x50;P0 = beep_relay_flag;P2 = P2 & 0X1F | 0xA0;P2 &= 0X1F;				break;case 10:beep_relay_flag &= (~0x50);P0 = beep_relay_flag;P2 = P2 & 0X1F | 0xA0;P2 &= 0X1F;				break;
}

这是在模板的main.c中的Key_Proc(void)函数中添加的代码,实现的是按下按键11打开蜂鸣器和继电器,按下按键10关闭蜂鸣器和继电器,同时,记得在上面添加全局变量unsigned char beep_relay_flag哦。

为什么这里要写成beep_relay_flag &= (~0x50);?

保持其他位置不变,不影响其他设备,如果直接赋值为零,会破坏其他设备的状态,影响正常运行

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

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

相关文章

仿腾讯会议——主界面设计创建房间加入房间客户端实现

1、实现腾讯会议主界面 2、添加Qt类WeChatDialog 3、定义创建会议和加入会议的函数 4、实现显示名字、头像的函数 调用函数 5、在中间者类中绑定函数 6、实现创建房间的槽函数 7、实现加入房间的槽函数 8、设置界面标题 9、服务器定义创建和进入房间函数 10、服务器实现创建房间…

网络编程初识

注:此博文为本人学习过程中的笔记 1.socket api 这是操作系统提供的一组api,由传输层向应用层提供。 2.传输层的两个核心协议 传输层的两个核心协议分别是TCP协议和UDP协议,它们的差别非常大,编写代码的风格也不同&#xff0c…

【质量管理】现代TRIZ问题识别中的功能分析——功能模型

功能模型的定义 功能模型是对工程系统进行功能分析的一个阶段,目的是建立工程系统的功能模型。功能模型描述了工程系统和超系统组件的功能,包括有用功能、性能水平和成本等。 在文章【质量管理】现代TRIZ中问题识别中的功能分析——相互接触分析-CSDN博客…

广告事件聚合系统设计

需求背景 广告事件需要进行统计,计费,分析等。所以我们需要由数据接入,数据处理,数据存储,数据查询等多个服务模块去支持我们的广告系统 规模上 10000 0000个点击(10000 00000 / 100k 1wQPS) …

C语言中,sizeof关键字(详细介绍)

目录 ‌1. 基本用法‌(1) ‌基本数据类型‌(2) ‌变量‌(3) ‌数组‌(4) ‌指针‌ ‌2. 特殊用法‌(1) ‌结构体与内存对齐‌(2) ‌动态内存分配‌(3) ‌表达式‌ ‌3. 注意事项‌‌1)sizeof 与 strlen 的区别‌:‌2)变长数组(VLA…

ADK 第三篇 Agents (LlmAgent)

Agents 在智能体开发套件(ADK)中,智能体(Agent)是一个独立的执行单元,旨在自主行动以实现特定目标。智能体能够执行任务、与用户交互、使用外部工具,并与其他智能体协同工作。 在ADK中&#x…

【深度学习】典型的 CNN 网络

目录 一、LeNet-5 (1)LeNet-5 网络概览 (2)网络结构详解 (3)关键组件与数学原理 3.1 局部感受野与卷积运算 3.2 权重共享 3.3 子采样(Pooling) 3.4 激活函数 (4…

4.8/Q1,中山大学用NHANES:膳食烟酸摄入量与非酒精性脂肪肝之间的关联

文章题目:Association between Dietary Niacin Intake and Nonalcoholic Fatty Liver Disease: NHANES 2003-2018 DOI:10.3390/nu15194128 中文标题:膳食烟酸摄入量与非酒精性脂肪肝之间的关联:NHANES 2003-2018 发表杂志&#xf…

高效管理远程服务器Termius for Mac 保姆级教程

以下是 Termius for Mac 保姆级教程,涵盖安装配置、核心功能、实战案例及常见问题解决方案,助你高效管理远程服务器(如Vultr、AWS等)。 一、Termius 基础介绍 1. Termius 是什么? 跨平台SSH客户端:支持Ma…

理解数学概念——支集(支持)(support)

1. 支集(support)的定义 在数学中,一个实函数 f 的支集(support)是函数的不被映射到 0 的元素域(即定义域)的子集。若 f 的(定义)域(domain)是一个拓扑空间(即符合拓扑的集合),则 f 的支集则定义为包含( f 的元素域中)不被映射到0的所有点之最小闭集…

Vue 3 Element Plus 浏览器使用例子

Element Plus 是一个基于 Vue 3 的流行开源 UI 库,提供了一系列的组件,帮助开发者快速构建现代化的用户界面。它的设计简洁、现代,包含了许多可定制的组件,如按钮、表格、表单、对话框等,适合用于开发各种 Web 应用。 …

SSR vs SSG:前端渲染模式终极对决(附 Next.js/Nuxt.js 实战案例)

一、引言:前端渲染模式的进化之路 随着互联网的发展,用户对于网页的加载速度和交互体验要求越来越高。前端渲染技术作为影响网页性能的关键因素,也在不断地发展和演进。从最初的客户端渲染(CSR),到后来的服…

算法笔记.分解质因数

代码实现&#xff1a; #include<iostream> using namespace std; void breakdown(int x) {int t x;for(int i 2;i < x/i;i){if(t%i 0){int counts 0;while(t % i 0){t/i;counts;}cout << i <<" "<< counts<<endl;}}if(t >…

CUDA Error: the provided PTX was compiled with an unsupported toolchain

CUDA程序编译时生成的PTX代码与系统上的CUDA驱动版本不兼容 CUDA 编译器版本&#xff1a; CUDA 12.6 (nvcc 编译器版本) CUDA 驱动版本&#xff1a; CUDA 12.3 (nvidia-smi 驱动版本) 解决方法&#xff1a; 驱动版本下载参考&#xff1a;Your connected workspace for wiki…

计算机组成原理实验(7) 堆指令部件模块实验

实验七 堆指令部件模块实验 一、实验目的 1、掌握指令部件的组成方式。 2、熟悉指令寄存器的打入操作&#xff0c;PC计数器的设置和加1操作&#xff0c;理解跳转指令的实现过程。 二、实验要求 按照实验步骤完成实验项目&#xff0c;掌握数据打入指令寄存器IR1、PC计数器的…

2022 年 6 月大学英语四级考试真题(第 2 套)——阅读版——仔细阅读题

&#x1f3e0;个人主页&#xff1a;fo安方的博客✨ &#x1f482;个人简历&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;目前中南大学MBA在读&#xff0c;也考取过HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等证书。&#x1f433; &…

磁盘文件系统

磁盘文件系统 一、磁盘结构1.1 认识一下基础的硬件设备以及真实的机房环境1.2 磁盘物理结构与存储结构1、磁盘物理结构2、磁盘的存储结构3、CHS地址定位4、磁盘的逻辑结构&#xff08;LBA&#xff09;5 磁盘真实过程5 CHS && LBA地址 二、理解分区、格式化1 引⼊"…

基于LangChain 实现 Advanced RAG-后检索优化(下)-上下文压缩与过滤

摘要 Advanced RAG 的后检索优化&#xff0c;是指在检索环节完成后、最终响应生成前&#xff0c;通过一系列策略与技术对检索结果进行深度处理&#xff0c;旨在显著提升生成内容的相关性与质量。在这些优化手段中&#xff0c;上文压缩与过滤技术是提升检索结果质量的重要手段。…

为什么 Vite 速度比 Webpack 快?

一、webpack会先进行编译&#xff0c;再运行&#xff0c;vite会直接启动&#xff0c;再按需编译文件。 首先看两张图&#xff0c;可以清晰的看到&#xff0c;上面的图是webpack编译过的&#xff0c;而下面的图是vite直接使用工程内文件。 二、区别于Webpack先打包的方式&am…

C# 操作符

C# 操作符 一、操作符概览二、优先级与运算顺序三、各类操作符的实例 一、操作符概览 操作符&#xff08;运算符&#xff09;的本质是函数的简记法 操作符不能脱离与它关联的数据类型 int x 5; int y 4; int z x / y; Console.WriteLine(z);//输出1double a 5.0; double b…