[无勇者孤勇者孤勇者]STC89C52单片机蜂鸣器介绍以及《孤勇者》歌曲代码示例

开关如是说

驱动力电阻

真空管驱动力

电子元件驱动力

音乐创作的有关科学知识

拍子与计时重运载值有关联表

将曲谱切换为宏表述的音阶谱

前述标识符模拟:

开关是一类将电讯号切换为人声讯号的电子元件,常见来造成电子设备的按钮音、报案音等提示信息讯号

开关按驱动力形式可分成无源开关和无源开关

无源开关:外部便携式共振源,将THF1断开交流电压即可持续表达意见,振幅一般来说

无源开关:外部峭腹共振源,须要驱动器提供更多共振波形才可表达意见,修正提供更多共振波形的振幅,可收到相同振幅的人声

这儿或许他们电脑系统下面的开关是无源开关,须要他们手动编写标识符为其配置共振波形的振幅,而使其收到相同的音阶。

左图为高电平导通,右图为低电平导通

他们开发板上的ULN2003D驱动力芯片的OUT1~~OUT4是用来驱动力电机的,自然OUT5是用来驱动力开关的(BEEP),最后OUT6,7没有接线(之所以这样都是为了节约引脚口而考虑)

我了解的也不多,所以可能有错的请大家见谅:

一个曲子简单的是由音阶和节拍决定的,音阶是什么1,2,3,4,5,6,7这些数字,也就是大家熟悉的。然后节拍是什么4分拍子,8分拍子。也就是音阶持续的时间长短。

那么如何在开关上模拟出各种各样的音阶呢,首先是要知道相同音阶有相同的振幅,所以他们只要设法精确的将振幅的讯号输入到开关就行

观察规律他们发现:每个拍子满足12平分率

(前面一个拍子的振幅)*2^(1/12)=(后面一个拍子的振幅)

或者说(后面一个拍子的振幅)/{2^(1/12)}=(前面一个拍子的振幅)

?那么振幅的公式为f=1/T,他们可以发现相邻音阶之间就差那么十几赫兹,所以要求的精度还是比较高的,所以他们用定时器来计时,得到精确的振幅波形。

之前学过波的有关科学知识,一个波形要有波峰和波谷才算一个完整的周期,所以他们在拍子振幅有关联的周期内要将开关的电压翻转2次。为了使定时器方便编码(不能说计时一半还没溢出就进行中断,来进行翻转),他们在以一个音阶周期一半为一个单位进行计时并中断来翻转开关,然后就实现了一个周期翻转2次的目的。

将低音L1为实例:T=1/f=1/262=0.0038167938931298,Tx1000000=3,816.793893129771

T/2=1,908.396946564885,取整1908,重运载值=65536-T/2=63628

?有了这个表以后就可以先将拍子宏表述(例如高音用H开头,低音用L开头),然后创建一个数组将拍子与有关联的重运载值有关联即可;

以天空之城简谱的节选为例,简单说明一下谱子里面包含的信息:

下面我来写天空之城的第一行的拍子,我以一个一分拍子为时间基准,那么一节有4拍就是四个四分拍子16

(将空拍子表述为P,高音用H开头,低音用L开头,中央拍子用M开头)

这样一来将曲谱建立一个数组,那么音阶与节拍就交替存在了,这样就方便调用

注意:还有一点就是,那个相同音阶之间要有停顿感,为了实现这一目的所以在前述操作的时候,每个拍子演奏以后,要将定时器延时5~10ms再进行下一个拍子的演奏

他们配置的中断函数主要是用使开关以相同的振幅翻转从而表达意见,所以重运载值普遍还是比较小的,可以认为时时刻刻都在执行中断服务函数。

是根据他们写的谱子的奇数位的元素来调用Music[]中的重运载值,写入到中断服务函数中,从而改变中断的时间,进而改变开关的发音振幅

是用来模拟谱子中节拍的问题,在Delay函数进行的时候,中断函数的重运载值一直是同一个,这样音阶保持不变,于是就实现了同一个音的持续表达意见

相同拍子间短暂停顿,利用延时开关定时器实现。如果没有这个操作的话,人声就是那种连续的,像是一口气唱歌一样。所以短暂中断实有必要。

音乐创作《孤恶龙》片段

主函数:

ps:SPEED的宏表述可以根据自己的喜好来表述哦,700只是一个参考数值

定时器:

.h文件

.c文件?

延时函数Delay()

.h文件

?.c文件?

还有就是,如果出现问题,那么请您及时检查一下自己是不是有如下问题:

1,开关是否为无源的;

2,开关的引脚是否为P2^5;

3,演奏音乐创作对时序要求高,中间不可以穿插运行别的程序,至少我反复尝试是这样的;

如果想要边放音乐创作,边运转一个步进电机啊什么的,建议将音乐创作模块单独拿出来,不如我有写过语音模块JQ8900-16P的使用方法,对于新手非常好,虽然有些大材小用,但是我个人认为还是比较方便的;

链接如下:

啰啰嗦嗦这么多,到这儿就算写完了,若有不当之处,恳请指正!

对了,还有什么想用电脑系统听的音乐创作,可以在评论区留言哦,会尽快更新的,玩的开心!!

发布于 2022-09-22 23:09:26
收藏
分享
海报
0 条评论
59
目录

    推荐阅读

    0 条评论

    请文明发言哦~

    忘记密码?

    图形验证码