51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

2025-06-19 07:42:33

学习过51单片机的朋友,相信大家对蜂鸣器并不陌生。蜂鸣器分有源蜂鸣器和无源蜂鸣器两种,无源蜂鸣器可以通过代码来设置频率。在学习的过程中,我们大都需要做蜂鸣器发声的实验,这里呢,我将和大家分享,基于Keil和Proteus仿真,如何使用无源蜂鸣器演奏乐曲——《敢问路在何方》。希望能和大家多多交流,如有什么不当之处,还望指正。

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》
51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

工具/原料

Keil和Proteus软件

《敢问路在何方》乐谱

第一步:在Proteus中搭建硬件仿真电路

1、放置单片机芯片(这里我选择的是AT89C52)。在上一讲《【Keil+Proteus仿真】51撮劝丛食单片机实现心形流水灯》中我们已经详细讲过,感兴勰艉须谜趣的话,大家可以在百度搜索它的标题,然后就可以看到。首先在搜索框中以关键字来搜索,然后再搜索结果中找到并选中“AT89C52”,接着单击“OK”按钮,最后回到绘图界面中单击左键即可放置单片机。具体操作如下图所示:

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》
51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》
51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

2、放置蜂鸣器。同样,先在搜索框中输入“sounder”来搜素蜂鸣器,再在搜索结果中选择SOUNDER,最后放置在绘图区内合适的地方,具体情况如下图所示:

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

3、连接线路,将蜂鸣器正确地和单片机连接起来。这里我们使用的是P1口的5管脚,具体情况如下图所示:

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

第二步:在Keil中编写实现程序,采用自顶向下设计

1、【说明】:在整个项目工程中,我们采用自顶向下的设计方法,先写PlayMusic()函数,然后再在PlayMusic()函数中调用Buzzer(Tone_Beat[tone],To荏鱿胫协ne_Beat[beat])函数来使蜂鸣器发出不同频率的声调,再加上延时时间的控制,自然形成节拍,有了音调和节拍,自然就可以演奏乐曲了。这里我们使用定时器中断0来控制节拍,音调则由我们自己编写的延时函数来控制,通过延时来实现发出不同频率的音调。

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

2、建立工程。其中Buzzer_Music.c文件用于存放关于蜂鸣器的各个功能的子函数,,最后主函数直接调用Buzzer_Music.c源文件中的子函数即可。具体操作如下图所示:

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

3、在Buzzer_Music.c文件中编写PlayMusic()函数,以便主函数调用。具体情况如图:

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

4、在Buzzer_Music.c文件中编写Buzzer(int Tone,int Beat)函数,以便PlayMusic()函数调用。具体情况如图:

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

5、在主函数中编写中断函数,每1ms产生一次中断,用来控制节拍。编写完中断函数后,还要在Buzzer_Music.c文件中编写定时器初始化函数Timer0_Init(),在这里我们采用定时器0中断,具体情况如图:

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》
51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

第三步:下载乐谱,根据乐谱编写相关频率和节拍

1、下载电视剧《西游记》主题曲《敢问路在何方》的乐谱。可以在百度文库中下载的到。乐谱如下图:

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

2、根据乐谱在Buzzer_Music.h头文件中编写关于音调和节拍定义的宏,以便后面使用代码编写乐谱,让程序更加直观。具体情况如下图:

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》
51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

3、根据乐谱在Buzzer_Music.c源文件中用代码编写乐谱(本质上是一个存放着音调和节拍的一维数组)。具体情况如下图:

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

第四步:将Keil编译后生成的hex文件下载到单片机中

1、关于如何将Keil编译后生成的hex文件下载到Proteus中的单片机中,在上一讲的《【Keil+Proteus仿真】51单片机实现心形流水灯》中我们已经详细讲述,这里就不需要再赘述了。感兴趣的话,大家可以在百度中搜索“【Keil+Proteus仿真】51单片机实现心形流水灯”,即可在百度经验中看到。具体情况如下图:

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》
51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

2、运行仿真电路,观察效果。具体情况如下图:

51单片机仿真—蜂鸣器演奏乐曲《敢问路在何方》

尾声:

1、基于Keil和Proteus仿真,如何使用无源蜂鸣器演奏乐曲——《敢问路在何方》,这里已经介绍完了。如果大家觉得还不错的话,记得给好评哦!

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢