您的位置:首页 > 其它

51单片机自学之路(3)——蜂鸣器,继电器实验。

2020-07-07 12:15 302 查看

蜂鸣器实验

蜂鸣器的种类介绍

首先在做这个实验之前,我们要对蜂鸣器有一个大致的认识,知道他的种类,以及实现功能的原理。

目前的蜂鸣器,一半分为两种,分别是压电式蜂鸣器和电磁式蜂鸣器。
这两种蜂鸣器有何区别呢?

压电式蜂鸣器如果想要发声,也就是响。那必须要给他一定频率的脉冲信号。 而电磁式蜂鸣器如果想要响,只需要给他提供电源就可以了。

在接下来的实验当中,我使用的蜂鸣器是有源蜂鸣器,属于电磁式蜂鸣器的一种。这里的“有源”,并不是指电源的意思。而是指蜂鸣器的内部是否含有振荡电路,有源蜂鸣器内部自带了振荡电路,所以只需要提供给他电源,他就可以发生。而无源蜂鸣器,也就是属于压电式的那种,需要提供一定的脉冲频率,他才可以发生的哦!

蜂鸣器实现功能的原理。

对于如何驱动蜂鸣器进行响应,我们能否直接使用单片机上的IO口呢?我查到的结果是不行的,一般都是需要通过三极管放大单片机输出的电流进行驱动。因为单片机的IO口输出的能力比较弱,而蜂鸣器驱动所需要的电流约为30mA,这就需要通过IO口接上三极管来放大电流,之后进行控制。

当上图当中的J7端子输入一个低电平的时候,此时三极管是导通的,因为VCC给发射极(e)提供了一个高电平,高低电平遇到之后,三极管导通,这个时候蜂鸣器就会有电流进入,发出声响。

实验程序

#include<reg51.h>
#include<intrins.h>
sbit gh=P0^5;
void delay500ms(void)   //误差 500ms
{
unsigned char a,b,c;
for(c=23;c>0;c--)
for(b=152;b>0;b--)
for(a=70;a>0;a--);
}

void  main()
{
while(1)
{
gh=~gh;// 输入低电平
delay500ms();
}

}

这个程序,我个人容易出错的原因,大致就是主函数当中,While循环我利用的不是太好。虽然可以不用,但是如果使用一定要注意While循环所放的位置,以后要注意啊!

继电器实验

继电器的作用

继电器通常用于自动控制电路当中,实际上是用较小的电流去控制较大的电流的一种“自动开关”。故在电路当中起着自动调节,安全保护,转换电路的作用。说白了,就是起着开关的作用。

上图当中,继电器的5.6引脚为线圈,1和2引脚是长闭端,但初始状态是导通的。而3和4引脚是常开端,但初始状态是断开的。继电器的输出端由P1端子引出,他的1和2引脚初始的时候是常闭的,2和3引脚初始是常开的。所以一般也由NC和NO表示。
当J15端子产生一个低电平的时候,三极管导通,此时led灯亮起。而反相二极管DD1,是用来消除继电器吸合的时候产生的瞬间反相电动势的。这个时候,继电器的线圈得到电流,常闭端断开,常开端导通。
同理,产生高电平的时候,led不亮,三极管不导通。常闭端导通,常开端断开。
其实继电器就相当于一个开关,大家可以把所要控制的线路一端接到 COM, 另一端接到 NO(初始和 COM 断开)或 NC(初始和 COM 连接),比如控制风扇的 开启和停止,就可以在风扇的电源和输入的电源间通过这个继电器来实现开和关 功能。

实验程序:

#include<reg51.h>
#include<intrins.h>
sbit gh=P0^5;
void  main()
{
gh=0;
while(1);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: