如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
电子设计作品使用说明——多功能13音电子琴一、功能及特点说明:1、一个琴键可弹出两个音符2、可手动导入任意歌曲并控制播放(本设计预录歌曲《月亮代表你的心》)3、声音音调准确,音色优质4、体积小,集成度高5、覆盖所有常用音阶(低So——高Me)二、使用说明:1、本设计有八个琴键,按k1—k7为音调输出2、按一下k8后再按k1—k7则输出高阶音调3、先按着k8再+k2键后会在音频输出自己收录的歌曲,复位键停止三、器件说明:器件数量器件数量扬声器1LM3861按键10STC89C511晶振1插排若干电容20pf*210uf*347uf*14.7nf*1USB接口1电阻10k*41k*1200*2排线若干led*240脚插座1Ptotues仿真图:实物图说明:四、设计原理1、原理说明1.1音阶的产生由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T=216--5﹡105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下表所示:音符频率(HZ)简谱码(T值)中1DO52364580中2RE58764684中3M65964777中4FA69864820中5SO78464898中6LA88064968中7SI988650302、实现及编程2.1程序框图开始按键按下是否成功TO初始化并开中断允放TO中断识别按键功能如果是1-7键则发出音调如果是第八键T1初始化并开中断让T1中断开始播放歌曲如果检测到K1键按下则停止播放歌曲是否检测到k2接着按k1-k7发出逆向的音调YK8是放开N2.3程序内容音调的产生方法按k2让音调转换如何按k8+k2放出音乐和如何让音乐停止2.4汇编源程序BUZZEQUP2BUZZ1EQUP1.7ORG0000HLJMPMAINORG000BHLJMPINT_T0ORG001BHLJMPTIME1ORG8000HMAIN:MOVSP,#90HMOVBUZZ,#0FFHMOVTMOD,#11HSETBET0SETBET1SETBEACLRTR0START:MOVR0,BUZZCJNER0,#0FFH,KEY1CLRTR0SJMPSTARTKEY1:CJNER0,#0FEH,KEY2MOV30H,#0FBHMOV31H,#0E9HLJMPSET_TIMERKEY2:CJNER0,#0FDH,KEY3MOV30H,#0FCHMOV31H,#5CHLJMPSET_TIMERKEY3:CJNER0,#0FBH,KEY4MOV30H,#0FCHMOV31H,#0C1HLJMPSET_TIMERKEY4:CJNER0,#0F7H,KEY5MOV30H,#0FCHMOV31H,#0EFHLJMPSET_TIMERKEY5:CJNER0,#0EFH,KEY6MOV30H,#0FDHMOV31H,#045HLJMPSET_TIMERKEY6:CJNER0,#0DFH,KEY7MOV30H,#0FDHMOV31H,#92HLJMPSET_TIMERKEY7:CJNER0,#0BFH,KEY8MOV30H,#0FDHMOV31H,#0D6HLJMPSET_TIMERKEY8:CJNER0,#7FH,NOKEYLOOP1:MOVR0,BUZZCJNER0,#7DH,LOOPLJMPMAIN1LOOP:CJNER0,#0FFH,LOOP1LJMPOSTARTSET_TIMER:SETBTR0SJMPSTARTNOKEY:CLRTR0SJMPSTARTINT_T0:MOVTH0,30HMOVTL0,31HCPLBUZZ1RETI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OSTART:MOVR0,BUZZCJNER0,#0FFH,OKEY1CLRTR0SJMPOSTARTOKEY1:CJNER0,#0BFH,OKEY2MOV30H,#0FBHMOV31H,#0E9HLJMPOSET_TIMEROKEY2: