历史上的今天
今天是:2025年02月05日(星期三)
2020年02月05日 | PIC单片机之蜂鸣器和继电器
2020-02-05 来源:eefocus
一、蜂鸣器实验
在很多的单片机系统中除了显示器件外经常还有发声器件,最常见的发声器件是蜂鸣器。蜂鸣器一般用于一些要求不高的声音报警及按键操作提示音等场合。
蜂鸣器的形状一般如图1 所示。
虽然它有自己的固有谐振频率,但是它也可以被加以不同频率的方波,从而编制一些简单的音乐。

图1 蜂鸣器实物图
1.实例功能
本实例就是来实现蜂鸣器发声,通过本小节的实验,可以使读者熟练掌握蜂鸣器的应用。硬件照片如图2 所示。

图2 蜂鸣器和继电器实验演示图
2.器件和原理
有源蜂鸣器和普通扬声器相比,最重要一个特点是只要按照极性要求加上合适的直流电压,就可以发出固有频率的声音,因此使用起来比扬声器简单。由此可知,有源蜂鸣器的控制和LED 的控制对单片机而言是没有区别的。无源蜂鸣器则要交流驱动,改变驱动频率可以奏简单音乐。
3.硬件电路
虽然蜂鸣器的控制和LED 的控制对于单片机是一样的,但在外围硬件电路上却有所不同,因为蜂鸣器内阻较低且是一个感性负载,一般不建议用单片机I/O 口直接对它进行操作,所以最好加个驱动三极管,在要求较高的场合还会加上反向保护二极管。本例实验没有加反相二极管保护,硬件电路可以参考图3。

通过硬件原理图可知,图中三极管用了PNP型9012,所以要使蜂鸣器发声只要给单片机RD7交替置低置高电平就可,由此可以为下文的程序编写提供关键参考。
#include void delay_1(void) { unsigned char n; for(n=0;n<50;n++) { NOP();} } void delay_ms(unsigned int time) { for(;time>0;time--) { delay_1();}} void main(void) { TRISD=0X00; while(1) { PORTD=0x00; delay_ms(1000); PORTD=0x80; delay_ms(1000); } } 二、继电器实验 在现代自动控制设备中,都存在一个电子电路(弱电)与电气电路(强电)的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(如电动机、电磁铁、电灯等),另一方面又要为电子线路与电气电路提供良好的电隔离,以保护电子电路和人身的安全,减少干扰。继电器便能完成这一桥梁作用。 1.实例功能 本实例通过单片机来控制继电器吸合、释放,读者可以熟练掌握继电器的使用方法。在本例中读者也可以用继电器的常开、常闭触点控制电灯的亮灭,实现“以小控大”。图2 中D4 为继电器吸合时的指示灯。 2.器件和原理 继电器是一种电子控制器件,它由控制系统(又称输入回路)和被控制系统(又称输出回路)组成,通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“电动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。 在大多数的情况下,继电器就是一个电磁铁,这个电磁铁的衔铁可以闭合或断开一个或数个接触点。 当电磁铁的绕组中有电流通过时,衔铁被电磁铁吸引,因而就改变了触点的状态。继电器一般可以分为电磁式继电器、热敏干簧继电器、固态继电器等。 本实验板上配置电磁式继电器如图4。 图4 继电器实物图 继电器也是属于感性器件内阻很低,所以不能用单片机的I/O 口直接来控制,要由三极管驱动且加反相保护电路。一般实验中都是单片机通过一个PNP 型三极管,把三极管作为电子开关来驱动继电器,继电器的开和关完全由三极管的基极电平进行控制。当三极管基极为高电平,PNP 型三极管截止,这时继电器不工作;反之为低电平的话,PNP 型三极管导通,继电器得电吸合。 3.硬件电路 继电器实验原理图可以参考图5。 4.程序设计 #include void main(void) { TRISD=0X00; while(1) { PORTD=0x00; delay_ms(1000); PORTD=0x40; delay_ms(1000); } } 

下一篇:PIC单片机电热剪电路原理图
史海拾趣
|
最近正在做一个同时电压和电流的电路 。现在有个问题。 单独测量电压和电流都没有问题,只是不能同时测量,同时测量的话,电压正常,电流就不对了。 电流测量点是在VDD端,我估计可能是共模干扰的问题,但是不知道怎么解决。 请高手指点,不胜感 ...… 查看全部问答> |
|
C++: The Complete Reference, 3rd Edition Product DescriptionBest-selling genius Herb Schildt covers everything from keywords, syntax, and libraries, to advanced features such as overloading, inheritance, virtual functions, name ...… 查看全部问答> |
|
最近用到AD698来检测位移,用示波器发现698输出的直流电压有纹波,大约10mv,几十Hz,即使使用电池供电也照样存在!想用简单的阻容滤除,但电容加大到100uF才滤掉了纹波!但此时出现了一个非常讨厌的现象:   ...… 查看全部问答> |
|
版主,我用的是207R8,想使用串口1,如何配置寄存器,才能使它像普通单片机串口一样收发使用呢,寄存器配置太多,不知道如何使用了 使用库函数也行啊 我使用的是 stvp,外部时钟 22.1184… 查看全部问答> |




