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

  • 格式:pdf
  • 大小:1.59 MB
  • 文档页数:1

下载文档原格式

  / 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

时代农机

TIMES AGRICULTURAL MACHINERY

2019年第2期

第46卷第2期Vol.46No.2

2019年2月Feb.2019

摘要:驱动蜂鸣器是编程中的基本程序,从中能掌握单片机产生不同频率方波的编程方法。

关键词:编程;

蜂鸣器;程序设计作者简介:纪瀚涛(1997-),男,辽宁大连人,大学本科,主要

研究方向:机械电子工程。

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

纪瀚涛,

王伟(沈阳工学院,

辽宁抚顺113122)

1可编程控制器

运用MCS-51单片机,

使用I/O 输出音频脉冲,脉冲经放大滤波后,驱动扬声器发声。若要产生f 的频率,则需于T 时间内(其中T=

1/f ),进行吸、放各一次,

换言之,磁铁产生磁性、磁铁失去磁性的时间各为T /2,成为半周期。

2驱动蜂鸣器程序的编制

如图1所示,由单片机的P3.7口联接一个NPN 型的三极管,并于蜂鸣器BUZ1相连接。当P3.1口输出信号时,蜂鸣器会产生相应频率的奉命信号。

由单片机的P3.7口输出1kHz 的信号,持续0.1s ,停止0.5s ,则蜂鸣器发出0.1s 的“哔”的声音。要产生1kHz 的频率,则半周期为0.5ms ,P3.7所送出的信号中,0.5ms 为高电平,0.5ms 为低电平。若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.5ms

buzzer=0;//输出低电平delay (TL );

//延迟TL×0.5ms

}}

3

结语

运用MCS-51单片机控制驱动信号使蜂鸣器发出不同音调的声音,声音的频率由延时程序控制,

频率越高,音调就越高;频率越低,音调越低。通过单片机仿真软件,该程序通过改变驱动频率,可以让蜂鸣器发出不同频率,不同长短的声音。

参考文献

[1]王晓娜,宋世德,王彦霞.单片机实验教学方法的研究[J ].

实验科学与技术,2012,10(1):69-70.

125