如何利用蜂鸣器制作MIDI音乐

热点专题 浏览(762)

目录

蜂鸣器简介

MIDI音乐制作原理

《小星星》制作代码显示

简介:蜂鸣器经常被用在单片机开发中来实现一些简单的提示功能,但是如何用单片机来制作一些更有趣的东西呢?今天我们将使用蜂鸣器来制造一个美妙的MIDI音乐。许多人可能觉得没有必要用手机听我们想听的任何歌曲。然而,对于我们供应链管理开发人员来说,自己编写一个程序蜂鸣器,并根据我们给出的频率按响它,将使我们的开发过程更有趣,也使我们对学习更感兴趣。

蜂鸣器简介

主动蜂鸣器和被动蜂鸣器的区别:

这里我们使用被动蜂鸣器,它通过给单片机相应的频率来发出相应的声音。

硬件设计图:

当PB5输出低电平接通三极管时,蜂鸣器可以工作。然而,由于我们使用的是无源蜂鸣器,它只能通电而不能发声,为了使无源蜂鸣器发声,我们需要PB5端口连续输出不同高度的脉冲信号。当信号频率不同时,声音也会不同。根据这一原理,只要我们让单片机的PB5端口根据乐谱连续输出不同频率的信号,蜂鸣器就会发出声音,形成音乐。

如图所示,单片机输出的信号就是这样一个高低电平信号。频率周期的数量是蜂鸣器声音的持续时间,并且改变每个频率周期中高电平和低电平的比率可以改变被动蜂鸣器发出的声音。

根据C字符对照表,我们可以得到每个音调对应的频率。

2。《小星星》 MIDI音乐制作流程

这是《小星星》的乐谱信息。根据上面的音调频率对照表,我们可以将乐谱信息转换成频率信息。

相关乐谱信息:

关注乐谱图表中每一拍的时间信息

J=100表示每分钟103拍,即60秒=100拍。因此,一拍的时间大约是600毫秒

根据他拍了多少拍,蜂鸣器发声的时间可以计算

在我们的程序中,我们把每一个音乐音调的频率信息和发声时间长度放入music1[]数组中的一个组中,其中奇数是音调频率信息,偶数是发声时间长度, 其中每个音调的发声时间长度可以根据分数来计算,以查看他有多少个节拍,并且根据节拍的长度,可以计算每个音调的时间。 例如,在这首歌中,每个音调是一个节拍,这里的节拍是600毫秒,所以这里我们

每个音调的发声时间是600毫秒,更多关于乐谱的信息可以在网上找到。