51单片机综合学习系统之继电器、蜂鸣器篇
9.4蜂鸣器实验
在很多的单片机系统中除了显示器件外经常还有发声器件,最常见的发声器件是蜂鸣器。蜂鸣器一般用于一些要求不高的声音报警及按键操作提示音等场合。蜂鸣器的形状一般如图9-11所示。虽然它有自己的固有频率,但是它也可以被加以不同频率的方波,从而编制一些简单的音乐。
图9-11 蜂鸣器实物图
9.4.1 实例功能
本实例就是来实现蜂鸣器发声,通过本小节的实验,可以使读者熟练掌握蜂鸣器的应用。
图9-12 蜂鸣器实验演示图
9.4.2 器件和原理
蜂鸣器和普通扬声器相比,最重要一个特点是只要按照极性要求加上合适的直流电压,就可以发出固有频率的声音,因此使用起来比扬声器简单。由此可知,蜂鸣器的控制和LED的控制对单片机而言是没有区别的。
9.4.3 硬件电路
虽然蜂鸣器的控制和LED的控制对于单片机是一样的,但在外围硬件电路上却有所不同,因为蜂鸣器是一个感性负载,一般不建议用单片机I/O口直接对它进行操作,所以{zh0}加个驱动三极管,在要求较高的场合还会加上反相保护二极管。本例实验只为了达到学习目的并没有加反相二极管保护,硬件电路可以参考下图9-13。
图9-13 硬件原理图
通过硬件原理图可知,图中三极管用了PNP型,所以要使蜂鸣器发声只要给单片机P3.6置低电平就可,由此可以为下文的程序编写提供关键参考。
9.4.4 程序设计
01#include <reg51.h>
02
03sbit BUZZER="P3"^7;
04
05void main(void)
06{
07BUZZER = 0;
08while(1);
09}
9.4.5 代码分析
序号1:包含51单片机寄存器定义地头文件
序号3:位定义蜂鸣器为P3.7
序号5-9:main程序
序号7:使P3.7端口输出电平0,蜂鸣器发声
序号8:循环等待
9.5继电器实验
在现代自动控制设备中,都存在一个电子电路(弱电)与电气电路(强电)的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(如电动机、电磁铁、电灯等),另一方面又要为电子线路的电气电路提供良好的电隔离,以保护电子电路和人身的安全。继电器便能完成这一桥梁作用。
9.5.1 实例功能
本实例通过单片机来控制继电器吸合、释放,读者可以熟练掌握继电器的使用方法。在本例中读者也可以用继电器的常开、常闭触点控制电灯的亮灭,实现“以小控大”。
图9-14 继电器实验演示图
9.5.2 器件和原理
继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。在大多数的情况下,继电器就是一个电磁铁,这个电磁铁的衔铁可以闭合或断开一个或数个接触点。当电磁铁的绕组中有电流通过时,衔铁被电磁铁吸引,因而就改变了触点的状态。继电器一般可以分为电磁式继电器、热敏干簧继电器、固态继电器等。本实验板上配置的继电器如图9-15。
图9-15 继电器实物图
继电器也是属于感性器件,所以不能用单片机的I/O口直接来控制,且要在三极管等控制器件上加反相保护电路。一般实验中都是单片机通过一个PNP型三极管,把三极管作为电子开关来驱动继电器,继电器的开和关xx由三极管的基极电平进行控制。当三极管基极为高电平,PNP型三极管截止,这时继电器不工作;反之为低电平的话,PNP型三极管导通,继电器得电吸合。
9.5.3 硬件电路
继电器实验原理图可以参考下图9-16。
图9-16 硬件原理图
9.5.4 程序设计
01#include <reg51.h>
02
03sbit RELAY = P1^3;
04
05void Delay()
06{
07unsigned char i,j;
08for(i=0;i<255;i++)
09for(j=0;j<255;j++);
10}
11
12void main()
13{
14while(1)
15{
16RELAY = 0;
17Delay();
18RELAY = 1;
19Delay();
20}
21}
8.5.5 代码分析
序号1:包含51单片机寄存器定义的头文件
序号3:位定义继电器为I/O口P1.3
序号5-10:一个延时函数,具体延长的时间和使用的晶体相关
序号7:定义两个无符号变量i,j
序号8-9:通过i,j的自加嵌套循环执行,达到延时目的
序号12-21:main函数
序号14:进入主程序的while循环
序号16:继电器吸合
序号17:调用延时程序
序号18:继电器释放
序号19:调用延时程序