[无勇者孤勇者孤勇者]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的使用方法,对于新手非常好,虽然有些大材小用,但是我个人认为还是比较方便的;
链接如下:
啰啰嗦嗦这么多,到这儿就算写完了,若有不当之处,恳请指正!
对了,还有什么想用电脑系统听的音乐创作,可以在评论区留言哦,会尽快更新的,玩的开心!!
推荐阅读
-
?宝马新5系配置详解!这17款车型你最想入手哪一个?
-
黑龙江省290农场一天比一天热这钱真不好挣是用汗水换来的哎
{{if!data.isVip&&data.isActText}}{{elseif!data.isVip...
-
黑龙江干流堤防290农场段再次出现溃口
本报记者从吉林省水利厅水利厅司令部了解到,继16日再次出现宁远河后,27日7时,吉林河段堤防290农庄段悲剧重演宁远河。历经三个多...
-
黑龙江农险冰火两重天地方财力不足致补贴不一|农业保险|农险|财力
位于中俄林密吉林沿线的集贤县五原镇东方村今年遭遇洪水侵袭,许多农农作物受灾地区,农民周俊民种的200亩小麦几乎无人问津。幸好他参与...
-
黑龙江农垦290农场大雁繁育基地成为湿地生态养殖亮点
【编者按·中国军用养殖业网】日前,农牧一八〇农庄红树林自然保护区不远处,1500万头毛发亮光、身形丰满的雁在大坑里无拘无束地玩耍,...
-
鲜为人知的“料罗湾海战”——晚明与荷兰的战争
事件起因国内背景明崇祯时期,受小冰河期影响。中国北方长年干旱、中原和东部数次特大地震、北方瘟疫流行。除江浙闽粤一带受灾影响后仍然恢...
-
魏县关于进一步调整疫情封控管控措施的通告
肥乡县禽流感防控工作工作组办公室关于更进一步修正禽流感封控管控举措的通告各阶层农村居民:为统筹推进禽流感防控工作和经济社会发展,...
-
高职高考2022年可报考院校及最低录取分数线
-
高尿酸常常没有症状尿酸高可致痛风肾病和结石
-
高一学生举报老师教师节强制收礼:教师节,你准备送礼吗
立刻就要到此日了,每月那个时期,小学生家长们都心里感到恐惧,特别是新升学的小孩小学生家长,不晓得要千万别给同学赠礼,也不晓得新幼儿...