电子琴毕业设计论文.docx
《电子琴毕业设计论文.docx》由会员分享,可在线阅读,更多相关《电子琴毕业设计论文.docx(23页珍藏版)》请在冰豆网上搜索。
电子琴毕业设计论文
简易电子琴设计
1绪论
1.1课题的背景和目的
在信息技术急速发展的今天,计算机科学日新月异。
而单片机作为计算机科学的一个分支,在微机控制领域得到长足的发展。
随着单片机的发展与科学技术的提高,单片机已经成为人类生产生活中不可缺少的工具。
现在,单片机的应用已经渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置、飞机上各种仪表的控制、计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理、广泛使用的各种智能IC卡、民用豪华轿车的安全保障系统、录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制的机器人、智能仪表、医疗器械了。
单片机要解决的问题多数是仍是老问题,新颖之处是比以前用较少的元件。
尤其是设计逻辑关系复杂的控制系统,过去用通用的逻辑门集成电路芯片将需要几十片甚至上百片,而现在只用几片就能够实现,而且方便灵活,做设计修改或改动功能时,只消改写软件原文件重写芯片,免去了在硬件线路上大动干戈的苦差事。
大连减少芯片个数主要是靠单片机的可编程性和高度集成化。
使开发周期更短,制造成本更低,用电更省和可靠性更高。
要求用各种逻辑门芯片实现的逻辑电路,可以用一片单片机芯片加上相应的控制软件就可以实现领域。
该次的毕业设计课题是基于单片机基础上的简易电子琴设计。
主要是用单片机的I/O端口的原理控制并制作的电子琴,设计出相应的琴键使之发出声音。
通过做这次毕业设计能使我对单片机知识的应用更为熟练一些,对单片机的兴趣也将大大的增加,也能在这方面做出相应的成就。
1.2国内外研究状况
技术工艺,是衡量一个企业是否具有先进性,是否具备市场竞争力,是否能不断领先于竞争者的重要指标依据。
随着我国电子琴市场的迅猛发展,与之相关的核心生产技术应用与研发必将成为业内企业关注的焦点。
了解国内外电子琴生产核心技术的研发动向、工艺设备、技术应用及趋势对于企业提升产品技术规格,
提高市场竞争力十分关键。
国内外对电子琴的研究都很深也很广泛,在电子琴领域也都取得了很多令人可喜的研究成果。
如黑龙江省双排键电子琴教学研究中心,曾多次被评为哈尔滨市甲级办学单位,多年来一直以培养优秀的音乐人才为教学宗旨,先后向国家重点音乐学院输送了大批双排键音乐人才,为我国双排键音乐事业的发展起到了积极的推动作用。
1.3课题的研究方法
本课题是基于51系列单片机基础上的简易电子琴设计。
该毕业设计要求设计出高、中、低音调的21个琴键,并使这21个琴键能发出声音。
所知道的是演奏音乐即是对音符和节拍的控制。
音符对应不同的声音频率,节拍则是音符持续的时间。
用单片机对这两个参数实行控制方便且操作简单。
用定时器T0控制音符,用单片机的某个I/O端口(在这里我们选用的是P3.0)输出音频脉冲,脉冲的频率由T0控制,是之对应1--7的高、中、低音。
用延时程序来实现对节拍的控制。
假设1个节拍为0.8秒,则1/4拍为0.2秒。
以此做延时程序,使其延时为DELAY=1个节拍=0.2秒,则其它节拍就是DELAY的倍数,该倍数作为DELAY的延时程序。
键盘是计算机系统必不可少的输入设备,鉴于该次设计的按键数目比较多,接成线性键盘,这种接法占用的口线相对较多。
因此可将键盘接成矩阵的形式,该种接法既节省口线有操作起来较方便。
在该设计中用P0、P1两个端口来接成8*8矩阵形式的键盘,选用21个琴键作为设计中的按键,其余的留作备用。
且由P3.0输出的音频脉冲,经音频放大器LM386放大,推动喇叭。
1.4论文的构成及研究内容
该毕业设计主要包括封面、毕业设计任务书、中文摘要、英文摘要、目录、正文、致谢、参考文献、附录。
本次设计主要研究用单片机设计简易电子琴,设计出21个琴键使之发出声音。
且每次的按键都有一定的延时作用。
2设计的主题
2.1毕业设计总体方案设计与选择的论证
(1)方案一:
单片机的选择,MCS-51系列单片机有多种型号的产品,如基本型(51子系列)8031、8051、89C51、89S51等,增强型(52子系列)8032、8052、89C52、89S52等。
它们的结构基本相同,其主要差别反映在存储器的配置上。
MCS-51增强型单片机的存储容量是基本型的一倍。
在这次设计中我选用的是AT89S51单片机。
键盘的设计,键盘是计算机系统中不可缺少的输入设备。
键盘的接法接成线性键盘。
(2)方案二:
单片机仍选用AT89S51单片机,键盘接成矩阵形式。
由上面两个方案的比较,选用方案二。
因为本次的简易电子琴设计要求设计出1—7的高、中、低音的21个按键,案件的数目较多,所以在这里才有矩阵键盘式接法。
这种矩阵键盘式接法不仅能节省口线也操作起来比较方便。
在本次设计中采用P0、P1两个端口来控制接成8*8矩阵形式的键盘。
这样可以接成64个按键,选用其中21个按键作为本次电子琴设计中的琴键,其余的按键留作备用。
矩阵键盘按键的状态同样需要变成数字量1和0。
开关的一端(列线)通过电阻接电源端Vcc,开关的另一端(行线)的接地时通过程序输出数字0实现的。
矩阵键盘每个按键都有它的行值和列值,行值和列值的组合就是这个按键的编码。
矩阵键盘的行线和列线分别通过P0和P1这两个并行接口和CPU实现通信,其中P0口输出扫描码,使按键逐行动态接地(称为行扫描、行值),P1端口输入按键状态(称为回馈信号、列值)。
由行扫描值和列回馈信号共同构成按键编码。
因此采用矩阵式键盘,选用方案二是更为合理的选择。
2.2硬件部分的设计和计算
2.2.1定时器的选择
演奏音乐是对音符和节拍两个参数的控制。
音符对应不同的声音频率,节拍则是音符持续的时间。
单片机对这两个参数的控制采用以下的方式。
MCS-51系列单片机中,89S51单片机有两个16位的定时/计数器T0、T1。
在本次的设计中选用定时器T0,定时器T0由寄存器TH0、TL0组成。
它们均为8位寄存器,映射在特殊功能寄存器中,地址为8AH~8DH。
它们用于存放定时的初始值。
2.2.2定时器的工作方式
工作方式的选择由单片机内部的八位方式控制寄存器TMOD和八位控制寄存器TCON来控制的。
89S51单片机的定时器有四种工作方式,且不同的工作方式有不同的工作特点。
方式0为13位定时/计数方式,最大计数值为8192个脉冲。
方式1与方式0基本相同,唯一的区别在于寄存器的位数是16位的,最大计数值为65535个脉冲,是4种定时方式中计数值最大的方式。
方式2是8位自动重装载的定时方式,最大计数值为256个脉冲。
方式3只适合定时器T0。
根据上述4种定时方式的比较,在该设计中选用定时方式1。
2.2.3初值的计算
如音符1的中音频率是523,使端口P3.0输出频率为523的脉冲即可输出音符“1”的声音。
其周期T=1/523=0.001912=1912(us)。
则定时器T0的定时时间=1912(us)/2=956(us)。
选用单片机的晶体振荡频率为12MHz,即机器周期MC=1us,由前面选择的工作方式1,则初始值:
T0的初始值=65535-956=64580=FC44H
已给出了1——7高、中、低音符的频率,如:
表2.1
音符
1
2
3
4
5
6
7
低音频率(HZ)
262
293
329
349
392
440
494
中音频率(HZ)
523
586
658
697
783
879
987
高音频率(HZ)
1045
1171
1316
1393
1563
1755
1971
经上面计算初值的处理,得到1—7高、中、低音符不同频率对应的初值,如:
音符
1
2
3
4
5
6
7
低音初值
F743H
F954H
FA0FH
FA66H
FB03H
FB8EH
FC08H
中音初值
FC44H
FCAAH
FD07H
FD31H
FD8H
FDC6H
FE04H
高音初值
FE2H
FDFH
FE83H
FE98H
FEBFH
FEE2H
FF01H
表2.2
2.2.4用延时程序控制节拍
按键在单片机智能控制系统中常用作为人机交互中输入信息作用,通过按键输入各种信息,调整各种参数或发出控制指令。
按键处理是一个很重要的功能模块。
在单片机应用系统中,按键主要有两种形式:
(1)直接按键
(2)矩阵编码键盘。
在该毕业设计中采用的是矩阵键盘。
矩阵键盘通过行列交叉按键编码进行识别。
通常所用的按键为轻触机械开关,正常情况下按键的接点是断开的,当按下按钮时,由于机械触点的弹性作用,按键在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
因而机械触点在闭合及断开的瞬间均伴随有一连串的抖动,抖动时间的长短由按键的机械特性及操作人员按键动作决定,一般为5ms~20ms。
按键闭合时间的长短由操作人员按压时间的长短来决定,一般为零点几秒至数秒不等。
在这里假设1拍为0.8秒,则1/4拍为0.2秒。
用此做延时程序,使其延时DELAY=1个节拍=0.2秒,则其它节拍就是DELAY的倍数,该倍数作为DELAY的延时常数,按表格方式存储起来,如:
表2.3
音符
1
2
3
4
5
6
7
低音延时(秒)
0.8
1
0.8
1.2
1.4
1.6
1.2
中音延时(秒)
0.6
0.8
0.6
1
1.2
1.4
1
高音延时(秒)
0.4
0.6
0.4
0.8
1
1.2
0.8
2.2.5音频放大器LM386
LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。
由P3.0输出的音频脉冲,经音频放大器LM386放大,才能推动喇叭。
喇叭是一种电声元件,其作用是将电信号转换为声音,也叫扬声器。
2.2.6电源
选用的电源模块AC/DC,两输入端输入的是交流220V,两个输出端其中一段输出为+5V(电源端),另一端的0V(接地端)。
2.2.7硬件方框图,如:
图2.1
键
盘
单
片
机
音
频
输
出
电
源
由上面的硬件方框图可知,键盘是输入设备,也即是本次所设计的简易电子琴的琴键,外界的信息通过键盘输送给单片机。
在这里即是通过按下键盘上某个按键,该键值所确定的某音符的频率,经由单片机处理,由单片机的某个端口输出对应的该音符的音频脉冲,输出端接有喇叭,这样前面输出的音频脉冲经由喇叭发出声音。
这也是用单片机制作简易电子琴的原理。
2.2.8硬件原理图,见附录A
2.2.9元器件明细表,见附录B
2.3软件部分的设计
2.3.1软件流程图,见附录C
2.3.2程序
(1)源程序
--------------------------------初始化--------------------------------
PULSEEQU10h;声音脉冲输出位(“1”或“0”)
TONEHIGHEQU40h;音调高字节
TONELOWEQU41h;音调低字节
SPEAKERBITP2.0;扬声器
ORG0000H;主程序开始地址
LJMPSTART;转移到主程序进行
ORG000BH;定时器T0中断入口地址
LJMPTIMER0;转移到T0中断子程序进行
-----------------------------------------------主程序---------------------------------------------
START:
MOVSP,#70h;设置栈底地址
MOVTMOD,#01;设置T0工作在方式1,
MOVIE,#82H;开中断
MLOOP:
MOVP1,#0FFH
MOVA,P1
CPLA;扫描键盘,读入键状态
JZMLOOP;判断有无键按下
CALLGETKEY;调用按键子程序处理
MOVB,A
JZMLOOP;=0,<1
ANLA,#8
JNZMLOOP;>8
DECB
MOVA,B
RLA;A=A*2
MOVB,A
MOVDPTR,#TONETABLE
MOVCA,@A+DPTR
MOVTONEHIGH,A
MOVTH0,A
MOVA,B
INCA
MOVCA,@A+DPTR
MOVTONELOW,A
MOVTL0,A
SETBTR0
MOVP1,#0FFH
WAIT:
MOVA,P1
CJNEA,#0FFH,WAIT
MOVR6,#10
ACALLDELAY
CLRTR0
LJMPMLOOP
------------------------------------------获取键码子程序------------------------------------------
GETKEY:
MOVR6,#10
ACALLDELAY;延时去抖动
MOVA,P1
CJNEA,#0FFH,K01;确有键按下分析键码
LJMPMLOOP;无键按下重新扫描盘
K01:
MOVR3,#7;7个键
MOVR2,#0;键码的指针
MOVB,A;暂存键值
MOVDPTR,#KEYTABLE;DPTR指向键值表首元
K02:
MOVA,R2
MOVCA,@A+DPTR;从键值表中取键值
CJNEA,B,K04;键值比较
MOVA,R2;得键码
INCA
AJMPRET1
K04:
INCR2
DJNZR3,K02
MOVA,#0FFH;键值不在键值中,即多键按下
RET1:
RET
-----------------------------延时子程序------------------------------
DELAY:
MOVR7,#0
DLOOP:
DJNZR7,DLOOP
DJNZR6,DELAY
RET
-------------------------定时器T0中断子程序-------------------------
TIMER0:
PUSHPSW;将psw压入堆栈,断点
CLRTR0;关T0中断
MOVTH0,TONEHIGH
MOVTL0,TONELOW;重新给T0赋初值
SETBTR0;开T0中断
MOVC,PULSE
MOVSPEAKER,C;输出声音
CPLPULSE;将声音输出关闭
POPPSW;将psw弹出堆栈断点
RETI;返回主程序
----------------------------------------------音调数据表-------------------------------
-------------
TONETABLE:
DW64578,64686,64778,64821
DW64898,64968,65029
-------------------------------------------------键值表------------------------------------------------
KEYTABLE:
DB0FEH,0FDH,0FBH,0F7H
DB0EFH,0DFH,0BFH,07FH
END
(2)目标程序
0000H02000ELJMP000EH
0003HFFMOVR7,A
0004HFFMOVR7,A
0005HFFMOVR7,A
0006HFFMOVR7,A
0007HFFMOVR7,A
0008HFFMOVR7,A
0009HFFMOVR7,A
000AHFFMOVR7,A
000BH02007FLJMP007FH
000EH758170MOVSP,#70H
0011H758901MOVTMOD,#01H
0014H75A882MOVIE,#82H
0017H7590FFMOVP1,#FFH
001AHE590MOVA,P1
001CHF4CPLA
001DH60F8JZ0017H
001FH120054LCALL0054H
0022HF5F0MOVB,A
0024H60F1JZ0017H
0026H5408ANLA,#08H
0028H70EDJNZ0017H
002AH15F0DECB
002CHE5F0MOVA,B
002EH23RLA
002FHF5F0MOVB,A
0031H900094MOVDPTR,#0094H
0034H93MOVCA,@A+DPTR
0035HF540MOV40H,A
0037HF58CMOVTH0,A
0039HE5F0MOVA,B
003BH04INCA
003CH93MOVCA,@A+DPTR
003DHF541MOV41H,A
003FHF58AMOVTL0,A
0041HD28CSETBTR0
0043H7590FFMOVP1,#FFH
0046HE590MOVA,P1
0048HB4FFFBCJNEA,#FFH,0046H
004BH7E0AMOVR6,#0AH
004DH1178ACALL0078H
004FHC28CCLRTR0
0051H020017LJMP0017H
0054H7E0AMOVR6,#0AH
0056H1178ACALL0078H
0058HE590MOVA,P1
005AHB4FF03CJNEA,#FFH,0060H
005DH020017LJMP0017H
0060H7B07MOVR3,#07H
0062H7A00MOVR2,#00H
0064HF5F0MOVB,A
0066H9000A2MOVDPTR,#00A2H
0069HEAMOVA,R2
006AH93MOVCA,@A+DPTR
006BHB5F004CJNEA,B,0072H
006EHEAMOVA,R2
006FH04INCA
0070H0177AJMP0077H
0072H0AINCR2
0073HDBF4DJNZR3,0069H
0075H74FFMOVA,#FFH
0077H22RET
0078H7F00MOVR7,#00H
007AHDFFEDJNZR7,007AH
007CHDEFADJNZR6,0078H
007EH22RET
007FHC0D0PUSHPSW
0081HC28CCLRTR0
0083H85408CMOVTH0,40H
0086H85418AMOVTL0,41H
0089HD28CSETBTR0
008BHA210MOVC,10H
008DH92A0MOVP2.0,C
008FHB210CPL10H
0091HD0D0POPPSW
0093H32RETI
0094HFCMOVR4,A
0095H42FCORLFCH,A
0097HAEFDMOVR6,FDH
0099H0AINCR2
009AHFDMOVR5,A
009BH35FDADDCA,FDH
009DH82FDANLC,F8H.5
009FHC8XCHA,R0
00A0HFEMOVR6,A
00A1H05FEINCFEH
00A3HFDMOVR5,A
00A4HFBMOVR3,A
00A5HF7MOV@R1,A
00A6HEFMOVA,R7
00A7HDFBFDJNZR7,0068H
00A9H7FFFMOVR7,#FFH
2.4试验方案设计的可行性、有效性以
选用设计简易电子琴的方案具有一定的可行性和有效性。
用AT89S51单片机满足设计电子琴的要求,音频放大器LM386,喇叭,AC/DC电源模块都是经过一定的条件选出来用的。
矩阵形式的键盘能节省口线的使用,并且操作简单。
音符初值的计算和处理都是根据相应的公式来计算的,因此该实验方案具有可行性和有效性。
2.5对本次研究的内容及研究成果较全面、较客观的理论阐述
本次研究是用单片机制作简易电子琴,键盘作为琴键,输出端接上喇叭。
通过按下键盘中的某个按键,再由单片机处理后,有单片机某个输出端口输出对应的音频脉冲,利用定时器可发出不同频率的脉冲,不同频率的脉冲经喇叭驱动放大滤波后,就会发出不同音调。
另外,定时器设置的定时参数产生中断,这一次终端发出脉冲低电平,下一次反转发出脉冲高电平,由于定时器参数不同,就会发出不同频率的脉冲。
本次设计中按键以此,会发出一定数量的脉冲,松开后有一定的延时,但在延时期间继续检测键盘,若此时又有键按下,若被按下的仍未原键则声音不变。
否则键盘会译出被按下的另一个键的音调。
结论
通过本次设计,我懂得了如何解决电路中出现的问题,从而能够使自己跟很好的学习和掌握一些电路常识。
在本次毕业设计中,我又相当于把以前学过的知识重新温习了一遍,对以前学过的知识加以巩固。
我又对一些电子元件有了进一步的了解,如:
电阻、电容、晶体振荡器、电位器、等。
还对一些常用的集成模块有也有了一些了解。
如:
电源模块、AT89S51。
在Protel99SE绘制硬件原理图和电路印制板时也用到了许多知识,也发现有很多的问题需要解决。
还有之前上课没有学到的知识,这些问题我可以去图书馆查些相关的资料,不好的是有些资料不是最新的,参考价值不很大。
现在是信息发展的高速时代,网络的应用很广泛,这就可以上网查到很多有用的且最新的资料,这些资料都还需要整理筛选出来使用。
另外还可以通过同学及指导老师来共同探讨和解决问题。
这次毕业设计对用Protel99SE绘制硬件原理图和电路印制版图的知识得到了更深的巩固。
由于对以前学过的知识掌握的不是很牢固,所以在本次设计中遇到了许多问题,不过经过指导老师及同学的共同探讨,最后根据大家掌握的知识和查到的相关的资料,把简易电子琴顺利完成设计。