




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简易电子琴的设计与仿真1、设计原理:1.1 音阶的产生 由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T= 216-5105/相应的频率 ,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下表所示:音符频率(HZ)简谱码(T值)中 1 DO52364580中 2 RE58764684中 3 M65964777中 4 FA69864820中 5 SO78464898中 6 LA88064968中 7 SI98865030 1.2 实验环境Keil uVision3proteus 71.3 功能设计描述按 k1k7音调输出按一下k8。在按k1k7音频逆向输出先按着k8再+k1键后会在音频输出歌曲,k1键停止1.4 主要知识点Keil uVision3的使用及调试proteus 7的使用及调试定时器、中断、键盘接口数字电路、模拟电路的相关知识2、实现及编程2.1程序框图)开始按键按下是否成功TO初始化并开中断允放TO中断识别按键功能如果是1-7键 则发出音调如果是第八键T1初始化并开中断让T1中断开始播放歌曲如果检测到K1键按下则停止播放歌曲是否检测到k2接着按k1-k7发出逆向的音调YK8是放开N 2.2电路原理图2.3程序内容7个音调的产生方法按k2让音调逆向输出如何按k8+k2放出音乐 和如何让音乐停止2.4 汇编源程序BUZZ EQU P2BUZZ1 EQU P1.7ORG 0000HLJMP MAIN ORG 000BHLJMP INT_T0ORG 001BHLJMP TIME1 ORG 8000H MAIN: MOV SP,#90H MOV BUZZ,#0FFH MOV TMOD,#11H SETB ET0 SETB ET1 SETB EA CLR TR0START: MOV R0, BUZZ CJNE R0,#0FFH,KEY1 CLR TR0 SJMP STARTKEY1: CJNE R0,#0FEH,KEY2 MOV 30H,#0FBH MOV 31H,#0E9H LJMP SET_TIMERKEY2: CJNE R0,#0FDH,KEY3 MOV 30H,#0FCH MOV 31H,#5CH LJMP SET_TIMERKEY3: CJNE R0,#0FBH,KEY4 MOV 30H,#0FCH MOV 31H,#0C1H LJMP SET_TIMERKEY4: CJNE R0,#0F7H,KEY5 MOV 30H,#0FCH MOV 31H,#0EFH LJMP SET_TIMERKEY5: CJNE R0,#0EFH,KEY6 MOV 30H,#0FDH MOV 31H,#045H LJMP SET_TIMERKEY6: CJNE R0,#0DFH,KEY7 MOV 30H,#0FDH MOV 31H,#92H LJMP SET_TIMERKEY7: CJNE R0,#0BFH,KEY8 MOV 30H,#0FDH MOV 31H,#0D6H LJMP SET_TIMERKEY8: CJNE R0,#7FH,NOKEY LOOP1:MOV R0, BUZZ CJNE R0,#7DH,LOOP LJMP MAIN1 LOOP: CJNE R0,#0FFH,LOOP1 LJMP OSTART SET_TIMER: SETB TR0 SJMP STARTNOKEY: CLR TR0 SJMP STARTINT_T0: MOV TH0,30H MOV TL0,31H CPL BUZZ1 RETI;OSTART: MOV R0, BUZZ CJNE R0,#0FFH,OKEY1 CLR TR0 SJMP OSTARTOKEY1: CJNE R0,#0BFH,OKEY2 MOV 30H,#0FBH MOV 31H,#0E9H LJMP OSET_TIMEROKEY2: CJNE R0,#0DFH,OKEY3 MOV 30H,#0FCH MOV 31H,#5CH LJMP OSET_TIMEROKEY3: CJNE R0,#0EFH,OKEY4 MOV 30H,#0FCH MOV 31H,#0C1H LJMP OSET_TIMEROKEY4: CJNE R0,#0F7H,OKEY5 MOV 30H,#0FCH MOV 31H,#0EFH LJMP OSET_TIMEROKEY5: CJNE R0,#0FBH,OKEY6 MOV 30H,#0FDH MOV 31H,#045H LJMP OSET_TIMEROKEY6: CJNE R0,#0FDH,OKEY7 MOV 30H,#0FDH MOV 31H,#92H LJMP OSET_TIMEROKEY7: CJNE R0,#0FEH,OKEY8 MOV 30H,#0FDH MOV 31H,#0D6H LJMP OSET_TIMEROKEY8: CJNE R0,#07FH,ONOKEY LOOP2:MOV R0, BUZZ CJNE R0,#7DH,LOOP3 LJMP MAIN1 LOOP3: CJNE R0,#0FFH,LOOP2 LJMP STARTOSET_TIMER: SETB TR0 SJMP OSTARTONOKEY: CLR TR0 LJMP OSTART ; ;MAIN1: MOV 40H,#00H NEXT: MOV R0, BUZZ MOV 41H,R0 ORL 41H ,#0FEH MOV R0,41H CJNE R0,#0FFH,STOP MOV A,40H MOV DPTR,#SONG MOVC A,A+DPTR CJNE A,#00H,PLAY LJMP STOP PLAY: MOV R1,A ANL A,#0FH MOV R2,A MOV A,R1 ANL A,#0F0H CJNE A,#00H,MUSIC CLR TR1 LJMP DELMUSIC:SWAP A DEC A MOV 22H,A ADD A,22H MOV R3,A MOV DPTR,#SONG1 MOVC A,A+DPTR MOV TH1,A MOV 21H,A MOV A,R3 INC A MOVC A,A+DPTR MOV TL1,A MOV 20H,A SETB TR1 DEL: LCALL DELAY INC 40H LJMP NEXTSTOP: CLR TR1 LJMP STARTTIME1:PUSH ACC PUSH PSW CPL BUZZ1 MOV TL1,20H MOV TH1,21H POP PSW POP ACC RETIDELAY:MOV R7,#02H DELA1:MOV R6,#125DELA2:MOV R5,#248 DJNZ R5,$ DJNZ R6,DELA2 DJNZ R7,DELA1 DJNZ R2,DELAY RETSONG1: DW 64580,64684,64777,64820DW 64898,64968,65030,64260DW 64400,64524,65058,63835,64021SONG :;月亮代表我的心; DB 02H,82HDB 16H,32H,54H,02H,52HDB 0A6H,32H,54H,02H,52HDB 64H,74H,0B6H,64HDB 52H,5CH,32H,22HDB 16H,12H,14H,32H,22HDB 16H,12H,14H,22H,32HDB 26H,12H,94H,22H,32HDB 2CHDB 32H,52HDB 36H,22H,14H,54HDB 0ACH,92H,0A2HDB 96H,0A2H,96H,82HDB 3CH,54HDB 36H,22H,14H,54HDB 0ACH,92H,0A2HDB 16H,12H,14H,22H,32HDB 2CH,02H,82HDB 16H,32H,56H,12HDB 0A6H,32H,56H,52HDB 66H,72H,0B6H,62HDB 62H,52H,58H,32H,22HDB 16H,12H,14H,32H,22HDB 16H,12H,14H,22H,32HDB 26H,92H,0A4H,12H,22HDB 1CHDB 00 ; END 3、调试及测试31调试(按实际做的步奏)如按下k5后显示如下图:k1k7音调输出按一下k8。在按k1k7音频逆向输出先按着k8再+k1键后会在音频输出歌曲,k1键停止32测试在proteus环境下点击k1-k7 看看发出的音是不是正确的K8键按后是否音调是逆向的K8+k1是否音乐输出在调试源代码中采用分块测试:音频输出、按键音乐播放最后采用组合调试33出现的问题及解决在做k8按键 检查k到8直到k8放开才跳转 一直出错。原来是忘了继续检测p2口。TMOD设置错误4、课程设计总结4.1 在此设计基础上还可以增加的功能及设计思路 即每按下一个琴键,单片机能够检测到键盘的按键,并根据按键的位置通过程序来控制,使蜂鸣器发著不同频率的声音,声音延迟延迟一段时间,等到按键放开后,声音停止。然后再继续扫描,看是否有键按下,如此循环下去,即实现基本的琴
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园科技节活动合作合同(2篇)
- 2025农业产业合作投资合同
- 浙江省台州市十校2024-2025学年高二下学期4月期中考试 化学试题(含答案)
- 中毒性表皮坏死松解症的临床护理
- 阴囊皮炎的临床护理
- 眼睑恶性黑色素细胞肿瘤的临床护理
- 2025房地产营销协作服务合同协议范本
- 小儿汞中毒的临床护理
- α1-抗胰蛋白酶缺乏症的临床护理
- 《展览物流协调管理》课件
- 新生儿肠胀气课件
- 物业管理中英文对照外文翻译文献
- 专题17浮力与液面升降问题(选择、填空题)- 中考物理一轮复习专题练习(解析版)
- 《麻醉后苏醒延迟》课件
- 《物业客服培训》课件
- 06J403-1 楼梯、栏杆、栏板图集
- 实习中遇到的问题
- 供货合同终止申请书范本
- 中国军力报告2023全文
- 深圳市南山区教育系统招聘公办幼儿园园长考试题库2023
- 【管理会计在华为公司中的应用现状、问题及优化建议分析9600字(论文)】
评论
0/150
提交评论