单片机控制蜂鸣器变化音调

发布时间:2024-11-06

单片机控制蜂鸣器变化音调

单片机驱动蜂鸣器

作者:jdzj868 来源:机电之家下载站 录入:jdzj868

蜂鸣器使用在很多的场合,他一般用来发出报警或者提示的声音,是一种常用的电子器件,这里我给大家简单的介绍一下用单片机驱动蜂鸣器的方法,蜂鸣器有二种1.本身带有驱动电路,分5v,9v,12v超电压使用,声音沙哑失真。2.象call机,喇叭一样,用软件驱动。频率控制音调,时间控制音量大小,第一种蜂鸣器一般都有一个固定的频率参数也就是他他发出的声音是不能变化的,就象食堂用的打卡器一样,卡一贴近就发出都的一声。第2种就不同了用单片机驱动第2种蜂鸣器后还可以使他演奏出美妙的音乐,我们只需要用简单的程序就可以控制单蜂鸣器所奏的频率,也就控制了音调。

c51程序实例:

单片机驱动蜂鸣器演奏中华人民共和国国歌的前4节的c51程序:

#include <REG52.h>

sbit BUZ=P2^6; //蜂鸣器接单片机的p2.6电路很简单。

unsigned int

hzs[]={131,147,165,175,196,220,247,262,294,330,349,392,440,494,523,587,659,698,784,880,988,1047,1175,1319,1397,1568,1760,1976};//标准音调频率

char dots[]={8,28,10,12,12,13,28,28,12,28,10,28,8,12,12,12,10,28,28,8,28,5,5,5,5,5,5,8,'#'};//频率控制数组 void delay(unsigned int u) //延时

{

while(u--);

}

void play_hz(unsigned int u)

{

unsigned int i=u;

while(i--){

BUZ=0;

BUZ=1;

delay(18432/u-24);

单片机控制蜂鸣器变化音调

}

}

//http:// 单片机学习站出品

void play_sound(int i) //播放音乐

{

if(i<28)

play_hz(hzs[i-1]);

else

delay(500);

}

void main(void) //主程序开始

{

while(1){

int i=0;

while(dots[i]!='#')

play_sound(dots[i++]);

delay(20000);

}

}

单片机控制蜂鸣器变化音调

音调与频率的关系:

C:261.6256

D:293.6648

E:329.6276

F:349.2282

G:391.9954

A:440

B:493.8833

每个8度频率加倍,如A的高8度是880HZ,再高8度是1760HZ。 反之,A的低8度是220HZ,再低8度是110HZ。

单片机控制蜂鸣器变化音调.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219