蓝桥杯02---蜂鸣器和继电器的驱动

文章目录

  • 前言
  • 一、介绍
    • 1.蜂鸣器
    • 2.继电器
  • 二. 控制
    • 1.ULN2003
    • 2.代码
    • 更多相关资源
      • 【全套完结】蓝桥杯单片机--- 从省赛到国赛


前言

本人曾在第十三届蓝桥杯大赛单片机组中获得国一,以下是我在准备比赛过程中的一些记录,希望能给大家带来帮助

本人持续分享更多关于嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步~

一、介绍

1.蜂鸣器

蓝桥杯02---蜂鸣器和继电器的驱动_第1张图片

比赛单片机自带的蜂鸣器为有源蜂鸣器(内置震荡源),也就是说给N_BUZZ一个低电平,蜂鸣器就会发出声音了。

N_BUZZ = 0

我们再说一下无源蜂鸣器,无源蜂鸣器没有震荡源,直接给予一个直流信号蜂鸣器是不会发出声音的,所以我们要手动给与一个方波信号。
怎么实现呢?

while1{
N_BUZZ = 0delay_ms(200);(不同时间,会发出不同的声音哦)
N_BUZZ = 1delay_ms(200);
}

2.继电器

蓝桥杯02---蜂鸣器和继电器的驱动_第2张图片

继电器就是用小电流控制大电流的一种自动化的开关
当N_RELAY输出低电平的时候呢,K1就会被吸合,此时m2的那条支路就接通了。
至于二极管的作用应该是用来保护电路,继电器内部少不了一些储能元件,但继电器断开时继电器肯定会放电的。

二. 控制

当我们了解过继电器和蜂鸣器之后,我们看看如何在这款单片机中实现对它们的控制吧。

蓝桥杯02---蜂鸣器和继电器的驱动_第3张图片
蓝桥杯02---蜂鸣器和继电器的驱动_第4张图片

1.ULN2003

74HC138译码器和M74锁存器我们之前都已经介绍过了吧,这里我们看看新出现的ULN2003有什么用呢?
蓝桥杯02---蜂鸣器和继电器的驱动_第5张图片
从数据手册我们可以看出这个芯片不就是一个反相器嘛。
所以说就不是我们之前所说的给P0口对应的IO口低电平打开了,而是高电平打开。

2.代码

当我们上电之后我们会发现蜂鸣器乱叫,所以在每个程序前我们最好先关掉蜂鸣器

P2 = (P2&0x1f)|0x10; //打开锁存器
P0.6 = 0;
P2 =P2&0x1f;关闭锁存器

最后附上一个总的代买,控制继电器循环开-关-开-管的这种效果,具体效果就是有继电器闭合,断开的声音,继电器旁的小灯闪烁。

# include "reg52.h"
sbit HC138_A = P2^5	;
sbit HC138_B= P2^6   ;
sbit HC138_C= P2^7 ;
sbit buzz = P0^6; 
sbit relay =   P0^4;
void init_H138(unsigned char n){ // 选择38译码器输出,现在我们只用到了两个,就写了两个
	switch(n){
	case 4 : {
		HC138_A =0;
		HC138_B=0;
		HC138_C=1;
		break; }
	case 5 : {
		HC138_A =1;
		HC138_B=0;
		HC138_C=1;
		break; }	
	}	
}
void ouputP0(unsigned char n,unsigned char dat){
	   init_H138(n);
	   P0 = dat;
}
void systeminit(){ //初始化,关闭蜂鸣器和继电器,别没事乱响
	 ouputP0(5,0x00)   ;
}

void delay(unsigned int t ) {
while(t--);
while(t--);
}
void main(){
systeminit();
while(1){
    ouputP0(4,0xff)   ;	// 关闭LED,亮着真烦
	ouputP0(5,0x00);
	delay(60000);
	delay(60000);
	ouputP0(5,0x10); // 0001 0000
	delay(60000);
	delay(60000);

} }

更多相关资源

【全套完结】蓝桥杯单片机— 从省赛到国赛

https://blog.csdn.net/amimax/article/details/128749109?spm=1001.2014.3001.5501

你可能感兴趣的:(蓝桥杯,单片机,蓝桥杯,职场和发展)