首页 > 其他分享 >蜂鸣器与继电器的基本控制(蓝桥杯练习02)

蜂鸣器与继电器的基本控制(蓝桥杯练习02)

时间:2025-01-17 20:29:33浏览次数:3  
标签:02 P2 P0 蜂鸣器 蓝桥 0xff HC138 include

蜂鸣器
正极接电源,给N BUZZ低电平,蜂鸣器鸣叫
在这里插入图片描述
继电器
RELAY-SPDT为线圈,里面有铁芯,给线圈通电(VCC一端为高电平,N RELAY给低电平)使其产生磁场将K1吸合。
在这里插入图片描述
ULN2003
中间连接了一个非门,若左边为1,右边输出则为0。
在这里插入图片描述
蜂鸣器与继电器电路
与前文的led一样,或非门连接着译码器和锁存器,当Y5C被选中(Y5被选中,wr默认低电平),P0可以控制继电器和蜂鸣器,P06为1蜂鸣器响,P04为1继电器工作
在这里插入图片描述
练习内容
在这里插入图片描述
初步代码

#include "reg52.h"
#include "delay.h"

sbit HC138_A=P2^5;
sbit HC138_B=P2^6;
sbit HC138_C=P2^7;

void initsystem()//关闭无关设备
{
	HC138_C=1;
	HC138_B=0;
	HC138_A=1;//选中Y5C
	
	P0=0x00;//关闭蜂鸣器、继电器
}

void ledrunning()
{
	unsigned char i;
	HC138_C=1;//打通D与Q(选择模式为led)
	HC138_B=0;//从高位写到低位(Y4)
	HC138_A=0;
	
	for(i=0;i<3;i++)//闪烁三次
	{
			P0=0x00;
			delayxms(500);//延时500ms
			P0=0xff;
			delayxms(500);//延时500ms
	}
	
	for(i=1;i<=8;i++)//依次点亮(左边到右边LED对应低位至高位)
	{
		P0=0xff<<i;
		delayxms(500);//延时500ms
	}
	
	HC138_C=1;
	HC138_B=0;
	HC138_A=1;//选中Y5C
	P0=0x10;//0001 0000)(P04为1),继电器吸合
	delayxms(500);//延时500ms
	P0=0x00;//关闭继电器
	
	HC138_C=1;
	HC138_B=0;
	HC138_A=0;//选中Y4C,控制LED
		for(i=1;i<=8;i++)//依次熄灭
	{
		P0=~(0xff<<i);
		delayxms(500);//延时500ms
	}
	
	HC138_C=1;
	HC138_B=0;
	HC138_A=1;//选中Y5C
	P0=0x40;//0100 0000(P06)打开蜂鸣器
	delayxms(500);//延时500ms
	P0=0x00;//关闭蜂鸣器
}

void main()
{
	initsystem();//初始化
	while(1)
	{
		ledrunning();//走马灯	
	}
}

后续优化
1,可以看到初步代码对功能进行了多次选择,这里可以优化为一个模式选择函数。
2,模块化

main.c

#include "reg52.h"
#include "delay.h"
#include "inithc138.h"

void initsystem()//关闭无关设备
{
  inithc138(5);
	P0=0x00;//关闭蜂鸣器、继电器
}

void ledrunning()
{
	unsigned char i;
	inithc138(4);
	for(i=0;i<3;i++)//闪烁三次
	{
			P0=0x00;
			delayxms(500);//延时500ms
			P0=0xff;
			delayxms(500);//延时500ms
	}
	
	for(i=1;i<=8;i++)//依次点亮(左边到右边LED对应低位至高位)
	{
		P0=0xff<<i;
		delayxms(500);//延时500ms
	}
	
	inithc138(5);
	P0=0x10;//0001 0000)(P04为1),继电器吸合
	delayxms(500);//延时500ms
	P0=0x00;//关闭继电器
	
	inithc138(4);
		for(i=1;i<=8;i++)//依次熄灭
	{
		P0=~(0xff<<i);
		delayxms(500);//延时500ms
	}

	inithc138(5);
	P0=0x40;//0100 0000(P06)打开蜂鸣器
	delayxms(500);//延时500ms
	P0=0x00;//关闭蜂鸣器
}

void main()
{
	initsystem();//初始化
	while(1)
	{
		ledrunning();//走马灯	
	}
}

inithc138.c

#include "reg52.h"

void inithc138(unsigned char channel)
{
	switch(channel)
	{
		case 4:
			P2=(P2&0x1f)|0x80;//清空高3位,设置高三位
		break;
		case 5:
			P2=(P2&0x1f)|0xa0;
		break;
		case 6:
			P2=(P2&0x1f)|0xc0;
		break;
		case 7:
			P2=(P2&0x1f)|0xe0;
		break;
	}
}

标签:02,P2,P0,蜂鸣器,蓝桥,0xff,HC138,include
From: https://blog.csdn.net/2301_80057226/article/details/145209326

相关文章

  • wx028基于springboot+vue+uniapp的网上花店小程序
    开发语言:Java框架:springboot+uniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示鲜花列表公告信息管理公告类型管理鲜花管理公告管理摘要网上花店微信小程序分为管理员还......
  • 蓝桥杯备赛 Day10.2昆虫繁殖
    信息学奥赛一本通(C++版)在线评测系统【题目描述】科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过x个月产卵),问过z个月以后,共有成......
  • 【做题记录】csp2025-搜索,折半搜索专题
    A.「NOIP2009」靶形数独暴搜。本着搜索必剪枝的思想,略微做一点优化:优先搜索\(0\)少的行。然后就搜就行。Code#include<bits/stdc++.h>#definelllonglong#defineilinlineusingnamespacestd;namespaceasbt{namespacecplx{boolbegin;}namespaceIO{ const......
  • 2025高级java面试精华及复习方向总结
    1. Java基础顶顶顶顶的点点滴滴1.1java集合关系结构图 1.2 如何保证ArrayList的线程安全方法一:使用Collections工具类中的synchronizedList方法    List<String>synchronizedList=Collections.synchronizedList(newArrayList<>());使用锁机制     ......
  • 马斯克 CES 2025 演讲:科技狂人勾勒未来宏伟蓝图
    在2025年国际消费电子展(CES)这个全球科技盛宴上,特斯拉CEO埃隆・马斯克无疑是最耀眼的明星之一。通过与知名营销传播集团Stagwell董事长MarkPenn的独家连线采访,马斯克向全世界展示了他对未来科技的宏大愿景和深刻见解,涵盖了人工智能、机器人技术、脑机接口以及太空探......
  • 202412 青少年软件编程等级考试C/C++ 二级真题答案及解析(电子学会)
    第1题逆行网上有个段子说:妻子在家听广播,听到某高速路上有一辆车在逆行,想到丈夫在那条高速上行驶,就打电话对丈夫说:“老公啊,你走的那条高速上有一辆车在逆行,你小心点。”她丈夫说:“何止啊!我看好几百辆车都在逆行!”现在我们查了一下高速公路上拍到的好几百辆车的时速,发现有的......
  • 2025.1.16——1200
    2025.1.16——1200Q1.1200Youaregiven\(3\)integers—\(n\),\(x\),\(y\).Let'scallthescoreofapermutation\(^\dagger\)\(p_1,\ldots,p_n\)thefollowingvalue:\[(p_{1\cdotx}+p_{2\cdotx}+\ldots+p_{\lfloor\frac......
  • 2024~2025学年第一学期罗智市高一质量检测游记
    Day-1沉浸式背政治,感觉其他科目要完蛋了。Day0今天考化学、地理、政治、生物。?不是化学怎么好难,拼尽全力无法战胜,写不完一点,但是出考场之后发现化竞哥们也空了挺多,感觉这次能及格都有年段前\(50\)。地理选择题感觉挺简单,但是大题怎么考了和平精英,没玩过感觉吃大亏。政治......
  • ✨️ 2024年终总结 - 23岁正是折腾的年纪 从开发到产品 | 日本旅行 | 捣鼓项目 | 技术写
    序毕业一年多了,按照大家通常采用的“四舍五入”的算法,我已经是一个有两年经验的工程师了。在写这篇24年总结的时候,先回看了一下23年的总结,不得不感叹时间真的过得好快,明明感觉大学毕业也没多久,但竟然已经是一年多前的事情了。再回看24年,在工作和生活方面也找到了一个不错的......
  • 单片机毕业设计之stm32单片机物联网远程心率血氧MAX30102健康监控系统,老人健康监测+行
    一、设计简介        本项目旨在利用STM32F103C8T6微控制器为核心,构建一个实时人体健康监测系统。该系统集成了多种传感器和模块,能够全面、准确地监测并显示人体的关键健康数据,同时提供异常报警功能,还通过蓝牙通信功能实现了数据的远程传输和记录,方便用户随时了解自己......