基于单片机的简易电子琴制作课程设计.docx
- 文档编号:23322970
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:17
- 大小:59.82KB
基于单片机的简易电子琴制作课程设计.docx
《基于单片机的简易电子琴制作课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的简易电子琴制作课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
基于单片机的简易电子琴制作课程设计
目录
1、设计名称------------------------------------------------------3
2、选题依据-----------------------------------3
3、设计目的------------------------------------------------------3
4、设计任务指标-------------------------------------------------3
(1)电子琴发音原理-------------------------------------3
(2)硬件电路结构设计----------------------4
(3)软件设计:
----------------------------5
(4)设计程系------------------------------7
5、设计的主要流程-----------------------------11
6、软硬件调试---------------------------------11
7、设计总结-----------------------------------12
一、设计名称:
基于单片机的电子琴制作
二、选题依据
电子琴作为一种综合性乐器,已经被越来越多的人所接受和喜爱,电子琴的教学也以很快的速度在普及和发展。
有音乐专家称,电子琴是艺术与现代电子技术融合的产物,是新时代乐器的骄子,是当前普及音乐教育、开发儿童智力最理想的乐器。
它具有音准精确,容纳多种乐器音色,节奏功能丰富,易入门、易学习,便于体教学等超越其他乐器的特点。
电子琴的设计方法种类繁多,所需核心芯片不一,有单片机、LDQ852集成块、CPLD、FPGA等,但各种设计方法的实现方式及过程各有不同。
单片机因其体积小、功能强、价格低廉而得到广泛应用,同时随着我国经济的飞速发展,单片机在越来越多的领域中得到了很好的应用。
观察几年以来各家厂商的销售地区比重,可以发现中国大陆市场比重逐渐提升,而在国内单片机多应用于电话、CallerID、玩具与LCD等产品,预计在未来,销货至大陆的比重仍将持续增加。
在中国产品应用领域十分广泛,也与人民生活越来越密切。
作为一名电子信息工程的学生来说,理解和掌握单片机的工作原理和使用技巧是必备的技能。
三、设计目的
(1)熟悉单片机芯片的结构和指令系统;
(2)熟悉单片机的编程方法;
(3)熟悉键盘的设计方法;
(4)熟悉定时器/计数器的使用方法;
(5)需要列出音阶与单片机定时器输出频率关系表格,再考虑某个键与发出的声音的频率关系
四、设计任务指标:
(1)一个(4×4)的键盘,并将16个键设计成16个音;
(2)按键时数码管可对应显示1――f--0(低音到高音的显示);
(3)可弹奏想要表达的音乐;
(4)该电子琴包含2首示例音乐,接通M1或M2即可播放示例音乐。
五、设计的主要流程:
(一).电子琴发音原理:
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们就是利用单片机在P1.0脚上输出方波周期信号,产生乐音。
根据不同的按键,调节T1的溢出时间,可输出不同频率的乐音,这样就做出了一台微型电子琴。
每个乐音的音高(频率)是固定的,下表列出了一个8度以及其上下共16个音的音名、频率及定时器T1初值对照(设晶体频率为12MHz)
高中低音符与单片机定时/计数器的计数值关系表
音符
频率(HZ)
简谱码(T值)
音符
频率(HZ)
简谱码(T值)
低1 DO
262
63628
#4FA#
740
64860
#1 DO#
277
63731
中5SO
784
64898
低2 RE
294
63835
#5SO#
831
64934
#2RE#
311
63928
中6LA
880
64968
低3M
330
64021
#6
932
64994
低4FA
349
64103
中7SI
988
65030
#4FA#
370
64185
高1DO
1046
65058
低5SO
392
64260
#1DO#
1109
65085
#5SO#
415
64331
高2RE
1175
65110
低6LA
440
64400
#2RE#
1245
65134
#6
466
64463
高3M
1318
65157
低7SI
494
64524
高4FA
1397
65178
中1DO
523
64580
#4FA#
1480
65198
#1DO#
554
64633
高5SO
1568
65217
中2RE
587
64684
#5SO#
1661
65235
#2RE#
622
64732
高6LA
1760
65252
中3M
659
64777
#6
1865
65268
中4FA
698
64820
高7SI
1967
65283
(二)硬件电路结构设计:
上图即为此次设计中的电子琴的硬件结构图,我们运用单片机的最小系统,用P1口的高四位和P3口的高四位作16按键接口,用P2口作数码管的接口,用P1.0作信号输出口。
。
(三)软件设计:
软件的设计符合模块化设计,主程序由初始化程序、播放程序、键盘扫描程序、按键处理程序(定时器1中断服务程序)和延时去抖程序组成。
具体流程图如下:
(1)主程系流程图
。
(2)键盘扫描程系流程图
(3)音乐播放程系流程图
(4)按键处理子程系流程图
(四)设计程序:
ORG0000H
JMPSTART;转初始化程序
ORG000BH
CPLP1.0;取反P1.0
MOVTH0,R2
MOVTL0,R3
RETI
ORG001BH
INC20h
MOVTH1,#3CH
MOVTL1,#0B0H
RETI
ORG0030H
START:
MOVP2,#00H
MOVSP,#05FH;设堆栈地址
MOVTMOD,#11H;启动定时器方式1
SETBET0;置定时器0溢出允午中断
SETBEA;开中断
SETBET1;;置定时器1溢出允午中断
MOV20h,#00H
;下面是TEST检测程序(键盘扫描)
TEST:
CLRP1.7;送P1.7扫描字00H,扫描第0列
JNBP3.6,RESET;P3.6=0,转RESET
JNBP3.5,BMUSIC;P3.5=0,转BMUSIC
JNBP3.7,B2MUSIC;P3.7=0,转B2MUSIC
SETBP1.7;置P1.7为1
CLRP1.6;对P1.6清零,扫描第1列
JNBP3.4,B1;P3.4=0,转B1
JNBP3.6,B5
JNBP3.5,B9
JNBP3.7,B13
SETBP1.6;置P1.6为1
CLRP1.5;对P1.5清零,扫描第2列
JNBP3.4,B2;P3.4=0,转B2
JNBP3.6,B6
JNBP3.5,B10
JNBP3.7,B14
SETBP1.5;置P1.5为1
CLRP1.4;对P1.4清零,扫描第3列
JNBP3.4,B3;P3.4=0,转B3
JNBP3.6,B7
JNBP3.5,B11
JNBP3.7,B15
SETBP1.4;置P1.4为1
CLRP1.3;对P1.3清零,扫描第4列
JNBP3.4,B4;P3.4=0,转B4
JNBP3.6,B8
JNBP3.5,B12
JNBP3.7,B16
SETBP1.3;置P1.3为1
JMPTEST;跳转TEST,重新扫描
;下面是跳转的子程序
RESET:
CLRP1.0
JMPTEST
BMUSIC:
;示例音乐1
MOVDPTR,#M1
JMPMUSIC
B2MUSIC:
MOVDPTR,#M2;示例音乐2
JMPMUSIC
B1:
MOVDPTR,#Y1;键1
JMPMUSIC
B2:
MOVDPTR,#Y2;键2
JMPMUSIC
B3:
MOVDPTR,#Y3;键3
JMPMUSIC
B4:
MOVDPTR,#Y4;键4
JMPMUSIC
B5:
MOVDPTR,#Y5;键5
JMPMUSIC
B6:
MOVDPTR,#Y6;键6
JMPMUSIC
B7:
MOVDPTR,#Y7;键7
JMPMUSIC
B8:
MOVDPTR,#Y8;键8
JMPMUSIC
B9:
MOVDPTR,#Y9;键9
JMPMUSIC
B10:
MOVDPTR,#Y10;键10
JMPMUSIC
B11:
MOVDPTR,#Y11;键11
JMPMUSIC
B12:
MOVDPTR,#Y12;键12
JMPMUSIC
B13:
MOVDPTR,#Y13;键13
JMPMUSIC
B14:
MOVDPTR,#Y14;键14
JMPMUSIC
B15:
MOVDPTR,#Y15;键15
JMPMUSIC
B16:
MOVDPTR,#Y16;键16
JMPMUSIC
;音乐模块子程序
MUSIC:
MOV20h,#00H
CLRA
MOVCA,@A+DPTR;查表
MOVR0,A
INCDPTR
CLRA
MOVCA,@A+DPTR;查表
MOVR1,A
CJNEA,#00H,GO
JMPJIE_SHU
GO:
CJNEA,#0FFH,GGO
JMPZAN_TING
GGO:
CJNEA,#0EEH,YY
JMPTAN_ZOU
YY:
LCALLQYF
MOVA,R1
SETBTR0
SETBTR1
MOVA,R1
AM:
MOVP2,R0
CJNEA,20h,AM
CLRTR0
CLRTR1
INCDPTR
LJMPMUSIC
JIE_SHU:
;结束音乐播放,停止发声
CLRP1.0
JMPTEST
ZAN_TING:
SETBTR1;暂停音乐
MOVA,R1
MOVA,05H
CLRP1.0
AN:
CJNEA,20h,AN
CLRTR1
MOV20h,#00H
INCDPTR
JMPMUSIC
TAN_ZOU:
LCALLQYF;弹奏音乐
SETBTR0
SETBTR1
AAA:
MOVP2,R0
MOVA,#0AH
CJNEA,20h,AAA
MOV20h,#00H
JNBP3.5,AAA
JNBP3.7,AAA
CLRTR0
CLRTR1
JMPTEST
QYF:
;音符
PUSHDPH;入栈保护
PUSHDPL
MOVA,R0
DECA
MOVB,#02H
MULAB;乘2倍处理
MOVDPTR,#YFC
MOVCA,@A+DPTR;查表
MOVR2,A
MOVTH0,A
INCDPTR
MOVA,R0
DECA
MOVB,#02H
MULAB
MOVCA,@A+DPTR;查表
MOVR3,A
MOVTH0,A
POPDPL;弹出指针
POPDPH
RET
;下面设置的为键盘16个键对应的16个频率,不同频率发出不同的声音。
YFC:
DB0FAH,15H,0FAH,67H,0FBH,04H,0FBH,90H
DB0FCH,0CH,0FCH,44H,0FCH,0ACH,0FDH,09H
DB0FDH,34H,0FDH,82H,0FDH,0C8H,0FEH,06H
DB0FEH,22H,0FEH,56H,0FEH,85H,0FEH,9AH
Y1:
DB01H,0EEH
Y2:
DB02H,0EEH
Y3:
DB03H,0EEH
Y4:
DB04H,0EEH
Y5:
DB05H,0EEH
Y6:
DB06H,0EEH
Y7:
DB07H,0EEH
Y8:
DB08H,0EEH
Y9:
DB09H,0EEH
Y10:
DB0AH,0EEH
Y11:
DB0BH,0EEH
Y12:
DB0CH,0EEH
Y13:
DB0DH,0EEH
Y14:
DB0EH,0EEH
Y15:
DB0FH,0EEH
Y16:
DB10H,0EEH
M1:
;音乐歌谱音阶对应的频率(自己编的歌曲)
DB08H,09H,0AH,0BH,0CH,0BH,0AH,09H,08H,09H,09H,0AH,0BH,0CH,0BH,0AH
DB09H,08H,09H,08H,07H,08H,09H,08H,09H,09H,00
M2:
;音乐代码2,随意设置,体现M2功能。
DB08H,09H,05H,05H,06H,05H,03H,05H,02H,08H,03H,05H,01H,05H,01H,06H
DB08H,05H,0AH,05H,08H,05H,09H,05H,08H,05H,09H,07H,06H,05H,06H,00H
END
六、软硬件调试
本设计中用到单片机开发板和keil软件加上相应的下载线,构成软硬件调试环境,支持对单片机的在线调试功能,这样就能方便快速地调试出相应的程系了。
在KEIL跟PROTEUS上仿真调试取得了成功。
达到了设计初的预期目标,单片机的功能符合要求,在通过不断的调试、纠错后,仿真顺利通过。
七、实验心得与设计总结:
本设计主要是通过对电子琴主体部分的电路进行模仿设计,达到电子琴固有的基本功能,故叫简易电子琴。
整个设计利用单片机定时器可发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调原理来设计。
首先,利用一个4×4的键盘电路把我所需要发出声音的信号输入单片机;其次通过程序,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平,由于定时参数不同,就发出不同频率的脉冲,本设计中按键一次,就会调用一个延时程序,在延时后继续检测键盘,若此时又有键被按下,若被按下的仍为原键则声音不变,否则键盘会译出被按下的另一个键的音调。
从而实现了一个简易电子琴的功能。
通过软硬件的调试,确认此设计已经达到设计要求,并可以稳定可靠运行。
本次设计提出了用单片机为核心控制元件,设计一个简易的电子琴.本方案以51单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块在主控模块上设有16个按键和扬声器.根据使用者的操作随意弹奏想要表达的音乐。
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
通过本次课程设计让我更充分掌握了单片机的接口、定时/计数与中断系统与及汇编语言的指令系统,编程等。
软件部分用到了protues进行硬件设计,用keil进行程系编译。
在此要感谢我们的指导老师周老师对我们悉心的指导和帮助。
在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学使自己学到了不少知识,也经历了不少艰辛,但收获同样也不少。
在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。
虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。
参考文献
[1]周美娟,肖来胜.单片机技术及系统设计.2007.
[2]潘晓利,陈学煌,刘永志.基于MIDI模块的音乐发生器设计.电子测量技术,2007
(2):
108-110.
[3]李朝青.单片机原理及接口技术[M].北京:
北京航天航空大学出版色,2001.
.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 简易 电子琴 制作 课程设计