单片机驱动蜂鸣器的程序设计

2019-04-24 01:20纪瀚涛
时代农机 2019年2期
关键词:蜂鸣器低电平高电平

纪瀚涛,王 伟

(沈阳工学院,辽宁 抚顺 113122)

1 可编程控制器

运用MCS-51单片机,使用I/O输出音频脉冲,脉冲经放大滤波后,驱动扬声器发声。

若要产生f的频率,则需于T时间内(其中T=1/f),进行吸、放各一次,换言之,磁铁产生磁性、磁铁失去磁性的时间各为T/2,成为半周期。

2 驱动蜂鸣器程序的编制

如图1所示,由单片机的P3.7口联接一个NPN型的三极管,并于蜂鸣器BUZ1相连接。当P3.1口输出信号时,蜂鸣器会产生相应频率的奉命信号。由单片机的P3.7口输出1 kHz的信号,持续0.1 s,停止0.5s,则蜂鸣器发出0.1s的“哔”的声音。

要产生1kHz的频率,则半周期为0.5ms,P3.7所送出的信号中,0.5 ms为高电平,0.5 ms为低电平。若0.5ms为高电平与0.5ms为低电平为一组信号(总共1ms),连续送出100组,即可得到1kHz的声音约0.1s;停止输出0.1s后,再送出0.5s的信号。

2.1 电路图

图1

2.2 程序

#include

sbit buzzer=P3^7;

void delay(int);

void pulse_BZ(int,int,int);//声明蜂鸣器发声函数main()

{ while(1)

{ pulse_BZ(100,1,1); //蜂鸣器发声 100×

(0.5ms+0.5ms)=0.1s

delay(1000); //延迟 1000×0.5ms=0.5s

}

}

void delay(int x) //0.5ms延迟函数

{ int i,j;

for(i=0;i

for(j=0;j<60;j++);

}

void pulse_BZ(int count,int TH,int TL) //蜂鸣器发声函数

{ int i;

for(i=0;i

{ buzzer=1; //输出高电平

delay(TH); //延 迟 TH ×

0.5 ms

buzzer=0; //输出低电平

delay(TL); //延迟 TL×0.5ms

}

}

3 结语

运用MCS-51单片机控制驱动信号使蜂鸣器发出不同音调的声音,声音的频率由延时程序控制,频率越高,音调就越高;频率越低,音调越低。通过单片机仿真软件,该程序通过改变驱动频率,可以让蜂鸣器发出不同频率,不同长短的声音。

猜你喜欢
蜂鸣器低电平高电平
电动自行车产品车速提示音检测现状和整改技术研究(2)
基于FPGA的无源蜂鸣器音乐播放器的设计与实现
一种基于FPGA的PWM防错输出控制电路
掌控板制作简易钢琴
一种实用的电脑接口判断方法
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
数字电子技术的应用
浅谈物理电路与数字电路
丰田凯美瑞240V车间隙警告蜂鸣器异常鸣响