首页 简易电子琴的设计与仿真

简易电子琴的设计与仿真

举报
开通vip

简易电子琴的设计与仿真简易电子琴的设计与仿真 课程设计报告 简易电子琴的设计与仿真 1、设计原理: 1.1 音阶的产生 由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。 本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T= 216--5,105/相应...

简易电子琴的设计与仿真
简易电子琴的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 与仿真 课程设计报告 简易电子琴的设计与仿真 1、设计原理: 1.1 音阶的产生 由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。 本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T= 216--5,105/相应的频率 ,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 所示: 音符 频率(HZ) 简谱码(T值) 中 1 DO 523 64580 中 2 RE 587 64684 中 3 M 659 64777 中 4 FA 698 64820 中 5 SO 784 64898 中 6 LA 880 64968 中 7 SI 988 65030 1.2 实验环境 Keil uVision3 proteus 7 1.3 功能设计描述 按 k1—k7音调输出 按一下k8。在按k1—k7音频逆向输出 先按着k8再+k1键后会在音频输出歌曲,k1键停止 1.4 主要知识点 Keil uVision3的使用及调试 proteus 7的使用及调试 定时器、中断、键盘接口 数字电路、模拟电路的相关知识 2、实现及编程 2.1程序框图 ) 开始 TO初始化并开中断允放TO中断 按键按下是否成功 识别按键功能 如果是第八键 如果是1-7键 则发出音调 Y 是否检测到k2 接着按k1-k7发出逆向的音调 N K8是放开 T1初始化并开中断让T1中断 开始播放歌曲 如果检测到K1键按下 则停止播放歌曲 2.2电路原理图 2.3程序内容 7个音调的产生 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 按k2让音调逆向输出 如何按k8+k2放出音乐 和如何让音乐停止 2.4 汇编源程序 BUZZ EQU P2 ORG 001BH BUZZ1 EQU P1.7 LJMP TIME1 ORG 0000H ORG 8000H LJMP MAIN MAIN: ORG 000BH MOV SP,#90H LJMP INT_T0 MOV BUZZ,#0FFH MOV TMOD,#11H MOV 30H,#0FCH SETB ET0 MOV 31H,#0C1H SETB ET1 LJMP SET_TIMER SETB EA KEY4: CLR TR0 CJNE R0,#0F7H,KEY5 START: MOV 30H,#0FCH MOV R0, BUZZ MOV 31H,#0EFH CJNE R0,#0FFH,KEY1 LJMP SET_TIMER CLR TR0 KEY5: SJMP START CJNE R0,#0EFH,KEY6 KEY1: MOV 30H,#0FDH CJNE R0,#0FEH,KEY2 MOV 31H,#045H MOV 30H,#0FBH LJMP SET_TIMER MOV 31H,#0E9H KEY6: LJMP SET_TIMER CJNE R0,#0DFH,KEY7 KEY2: MOV 30H,#0FDH CJNE R0,#0FDH,KEY3 MOV 31H,#92H MOV 30H,#0FCH LJMP SET_TIMER MOV 31H,#5CH KEY7: LJMP SET_TIMER CJNE R0,#0BFH,KEY8 KEY3: MOV 30H,#0FDH CJNE R0,#0FBH,KEY4 MOV 31H,#0D6H LJMP SET_TIMER KEY8: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; CJNE R0,#7FH,NOKEY OSTART: LOOP1:MOV R0, BUZZ MOV R0, BUZZ CJNE R0,#7DH,LOOP CJNE R0,#0FFH,OKEY1 LJMP MAIN1 CLR TR0 LOOP: CJNE SJMP OSTART R0,#0FFH,LOOP1 OKEY1: CJNE R0,#0BFH,OKEY2 LJMP OSTART MOV 30H,#0FBH MOV 31H,#0E9H SET_TIMER: LJMP OSET_TIMER SETB TR0 OKEY2: SJMP START CJNE R0,#0DFH,OKEY3 NOKEY: MOV 30H,#0FCH CLR TR0 MOV 31H,#5CH SJMP START LJMP OSET_TIMER INT_T0: OKEY3: MOV TH0,30H CJNE R0,#0EFH,OKEY4 MOV TL0,31H MOV 30H,#0FCH CPL BUZZ1 MOV 31H,#0C1H RETI LJMP OSET_TIMER OKEY4: LOOP2:MOV R0, BUZZ CJNE R0,#0F7H,OKEY5 CJNE R0,#7DH,LOOP3 MOV 30H,#0FCH LJMP MAIN1 MOV 31H,#0EFH LOOP3: CJNE LJMP OSET_TIMER R0,#0FFH,LOOP2 OKEY5: CJNE R0,#0FBH,OKEY6 LJMP START MOV 30H,#0FDH OSET_TIMER: MOV 31H,#045H SETB TR0 LJMP OSET_TIMER SJMP OSTART OKEY6: ONOKEY: CJNE R0,#0FDH,OKEY7 CLR TR0 MOV 30H,#0FDH LJMP OSTART MOV 31H,#92H ;;;;; ;;;;;;;;;;;;;;;;;;;;;; LJMP OSET_TIMER MAIN1: MOV 40H,#00H OKEY7: CJNE R0,#0FEH,OKEY8 NEXT: MOV R0, BUZZ MOV 30H,#0FDH MOV 41H,R0 MOV 31H,#0D6H ORL 41H ,#0FEH LJMP OSET_TIMER MOV R0,41H OKEY8: CJNE R0,#0FFH,STOP CJNE R0,#07FH,ONOKEY MOV A,40H MOV DPTR,#SONG INC A MOVC A,@A+DPTR MOVC A,@A+DPTR CJNE A,#00H,PLAY MOV TL1,A LJMP STOP MOV 20H,A PLAY: MOV R1,A SETB TR1 ANL A,#0FH DEL: LCALL DELAY MOV R2,A INC 40H MOV A,R1 LJMP NEXT ANL A,#0F0H STOP: CLR TR1 CJNE A,#00H,MUSIC LJMP START CLR TR1 TIME1:PUSH ACC LJMP DEL PUSH PSW MUSIC:SWAP A CPL BUZZ1 DEC A MOV TL1,20H MOV 22H,A MOV TH1,21H ADD A,22H MOV R3,A POP PSW MOV DPTR,#SONG1 POP ACC MOVC A,@A+DPTR RETI MOV TH1,A DELAY:MOV R7,#02H MOV 21H,A DELA1:MOV R6,#125 MOV A,R3 DELA2:MOV R5,#248 DJNZ R5,$ DB 16H,12H,14H,22H,32H DB 26H,12H,94H,22H,32H DJNZ R6,DELA2 DB 2CH DJNZ R7,DELA1 DB 32H,52H DJNZ R2,DELAY DB 36H,22H,14H,54H RET DB 0ACH,92H,0A2H SONG1: DB 96H,0A2H,96H,82H DW 64580,64684,64777,64820 DB 3CH,54H DW DB 36H,22H,14H,54H 64898,64968,65030,64260 DB 0ACH,92H,0A2H DW DB 16H,12H,14H,22H,32H 64400,64524,65058,63835,64021 DB 2CH,02H,82H DB 16H,32H,56H,12H DB 0A6H,32H,56H,52H DB 66H,72H,0B6H,62H SONG :;;;;;;;;;;;;;;;;;;月亮代表我 DB 62H,52H,58H,32H,22H 的心;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DB 02H,82H DB 16H,12H,14H,32H,22H DB 16H,32H,54H,02H,52H DB 16H,12H,14H,22H,32H DB 0A6H,32H,54H,02H,52H DB 26H,92H,0A4H,12H,22H DB 64H,74H,0B6H,64H DB 1CH DB 52H,5CH,32H,22H DB 00 DB 16H,12H,14H,32H,22H ; END 3、调试及测试 3(1调试(按实际做的步奏) 如按下k5后显示如下图: k1—k7音调输出 按一下k8。在按k1—k7音频逆向输出 先按着k8再+k1键后会在音频输出歌曲,k1键停止 3(2测试 在proteus环境下点击k1-k7 看看发出的音是不是正确的 K8键按后是否音调是逆向的 K8+k1是否音乐输出 在调试源代码中采用分块测试:音频输出、按键音乐播放 最后采用组合调试 3(3出现的问题及解决 在做k8按键 检查k到8直到k8放开才跳转 一直出错。。原来是忘了继续检测p2口。。。 TMOD设置错误 4、课程设计总结 4.1 在此设计基础上还可以增加的功能及设计思路 即每按下一个琴键,单片机能够检测到键盘的按键,并根据按键的位置通过程序来控制,使蜂鸣器发著不同频率的声音,声音延迟延迟一段时间,等到按键放开后,声音停止。然后再继续扫描,看是否有键按下,如此循环下去,即实现基本的琴键功能 还可以增加播放下一首的功能。 4(2通过本课程设计的收获及感想 熟悉8051单片机的内部结构和功能,合理使用其内部寄存器,能够完成相关软件编程设计工作。 对软件编程、排错调试相关仪器设备的使用技能等方面得到较全面的锻炼和提高。 这个课程设计也培养了我们的耐心和毅力,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,由于这个课程设计也使我积累了一些经验,相信这些经验在我以后的学习工作中会有很大的作用
本文档为【简易电子琴的设计与仿真】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_594886
暂无简介~
格式:doc
大小:83KB
软件:Word
页数:9
分类:生活休闲
上传时间:2017-09-21
浏览量:30