摘要-苏州工业园区职业技术学院.doc

上传人:scccc 文档编号:12627263 上传时间:2021-12-05 格式:DOC 页数:29 大小:531.50KB
返回 下载 相关 举报
摘要-苏州工业园区职业技术学院.doc_第1页
第1页 / 共29页
摘要-苏州工业园区职业技术学院.doc_第2页
第2页 / 共29页
摘要-苏州工业园区职业技术学院.doc_第3页
第3页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《摘要-苏州工业园区职业技术学院.doc》由会员分享,可在线阅读,更多相关《摘要-苏州工业园区职业技术学院.doc(29页珍藏版)》请在三一文库上搜索。

1、苏州工业园区职业技术学院SIPIVT2010-2011-2学期项目项目报告选题:简易电子琴学生姓名:陈云、惠洪烈、孙瀚、高怡杰、许江飞 、 俞诚班级:电子09301/2指导老师:崔延电子工程系制目录摘要3关键词3引言3一、方案论证4二、系统设计5三、功能模块介绍5四、发声原理即程序流程图 9五、调试步骤10六、总结11参考文献12附录一 13附录二14附录三24附录四25摘要随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部 分,有人曾说喜欢音乐的人不会向恶。我都会抽空欣赏世界名曲,作 为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我对于 电子琴如何实现其功能,如声音强弱控制、节拍

2、器、自动放音功能等 等也很好奇。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐 器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和 灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代 的一部分。本文的主要内容是用 AT89S52单片机为核心控制元件,设 计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成 核心主控制模块,在主控模块上设有 16个按键和扬声器。本系统运 行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性 价比较高等,具有一定的实用和参考价值。关键词电子琴;单片机;汇编语言;4X 4键盘引言单片微型计算机是大规模集成电路技术发展的产

3、物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、 应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变 革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课 题。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐 器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和 灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代 的一部分。本文的主要内容是用 AT89S52单片机为核心控制元件,设 计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成 核心主控制模块,在主控模块上设有 16个按键和扬声器。本文主要对使用单片机设计简易

4、电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我要求 的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图, 主要芯片,各模块原理及各模块的程序的调试来详细阐述。一首音乐是许多不同的音阶组成的, 而每个音阶对应着不同的频 率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的 音乐了,当然对于单片机来产生不同的频率非常方便,我可以利用单 片机的定时/计数器T0来产生这样方波频率信号,因此,我只要把一 首歌曲的音阶对应频率关系弄正确即可。一、方案论证方案一:用可控硅制作电子琴,将220V交流电经变压器降压,再 经过滤波,整形获得+13.5V直流电压

5、,将单向可控硅 SCR和电阻、 电容组成驰张振荡器电路。但该方案制作成本高且复杂。故不采用。方案二:采用AT89C52单片机进行控制,但由于 AT89C52在属于 低档的单片机,已经面临淘汰,且仿真器价格昂贵,不易擦除。故不采用。方案三:采用两个555集成定时器组成简易电子琴,整个电路由主振荡器,颤音振荡器,扬声器和琴键按钮等部分组成。由于555产生的信号不稳定且精度不高。故不采用。方案四:采用采用AT89S52单片机进行控制,以AT89S52单片机为 核心控制元件,与键盘、扬声器等模块组成核心主控制模块,在主控 模块上设有16个按键和扬声器。程序易擦除,比较方便。根据以上比较可知应采用四种方

6、案二、系统设计本电子琴系统主要包括 AT89S52单片机,4x4键盘,发声模块, 选播音乐模块,系统框图如图1所示。三、功能模块介绍图11时钟电路分析此系统的时钟电路设计是采用的内部方式,即利用芯片内部的振 荡电路。AT89S52内部有一个用于构成振荡器的高增益反相放大 器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这 个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振 荡器。外接晶体谐振器以及电容 CX1和CX2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求, 但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振 的快速性和温度的稳定性。

7、因此,此系统电路的晶体振荡器的值 为12MHz电容应尽可能的选择陶瓷电容,电容值约为30pF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯 片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。2复位电路的论证和分析:AT89S52的复位是由外部的复位电路来实现的。片内复位电路是 复位引脚RST通过一个斯密特触发器与复位电路相连, 斯密特触发器 用来抑制噪声,它的输出在每个机器周期的S5P2由复位电路采样一 次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系 统采用的是上电与按钮复位电路,当时钟频率选用12MHZ时,C取10卩 F, Rs约为 100Q, Rk约为

8、10KQ。3音频放大电路:音频放大电路(图2)的选用对电子琴的音色及音量具有决定性 的作用。本设计发声模块主要采用 LM386, LM386是一种音频集成功 放,具有自身功耗低,电压增益可调整,电源电压范围大,外接元件 少和总谐波失真小等优点。广泛应用于录音机和收音机之中。LM386内部电路原理图(图3)所示与通用型集成运放相类似,它是一个三 级放大电路第一级为差分放大电路 T1和T3 T2和T4分别构成复合管 作为差分放大电路的放大管 T5和T6组成镜像电流源作为T1和T2的 有源负载T3和T4信号从管的基极输入,T2管的集电极输出 为双端输入单端输出差分电路,使用镜像电流源作为差分放大电路

9、有源负载 可使单端输出电路的增益近似等于双端输出电容的增益第二级为共 射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数第三 级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出 级。二极管D1和D2为输出级提供合适的偏置电压可以消除交越失真。 引脚2为反相输入端,引脚3为同相输入端。电路由单电源供电故为 OTL电路。输出端引脚5应外接输出电容后再接负载。电阻R7从输出 端连接到T2的发射极,形成反馈通路,并与 R5和R6构成反馈网络, 从而引入了深度电压串联负反馈使整个电路具有稳定的电压增益。Cap lflFLM3S61S-1Cap Pol2470uFIN-VOUTI

10、N-GAINBTASSGAINVSGKD4Speak ei图3 LM386内部电路原理图C3TCap Pci2GNDDS006976-1nCap Pot2 I lOuFn c A riu图2音频放大器电路4键盘模块当按键较多时会占用更过的控制器端口,为减少对端口的占用,本设计采用4X 4矩阵键盘(图4),键盘矩阵行线连接P2.0P2.3,列 线连接P2.4P2.7,扫描过程如下:程序首先判断是否有键按下,为判断16个按键中是否有键按下, 程序首先在4条行线上放置4个0,即在P2端口输出0XF0,如果有 任一按键按下,则4条列线上必有一位为0.如果已有键按下,则判断 按键所在行、列位置,并返回按

11、键序号。代码中行扫描码初值为0xFE, 通过将该值循环右移,可对P2.0P2.3对应的4行逐行发送0,每次 发送扫描码后即判断高4位的4个1中是否有0出现,如果出现0说 明按键在该行上,这时可将发送的低 4位于读取的高4位取反,也 就是P2取反,这样P2中将出现2个1,其余位均变为0, 2个1分 别处在低4位和高4位中,高低4位中1所处的位置各有4种可能, 共有16种可能,对应十六个不同的按键,根据取反后的值查询键盘 矩阵按键特征码表,即可得到按键序号。图4 4x4键盘5供电电路采用9v直流供电,分出两个电源,9v直接供给音频发大电路,另一部分经7805稳压到5v然后供给单片机。四、发声原理即

12、程序流程图1音乐发声原理用电子琴可以演奏出各种美妙的音乐,而音乐是由音符组成,不同的音符是由相应频率的振动产生。由单片机模拟产生音符只需算出 音频周期T=1/f,利用音频的变化产生不同电平驱动发声模块来达到 产生音乐的目的。因此我们只要把一首歌曲的音阶对应频率关系弄正 确,即可利用AT89S52的内部定时器使其工作计数器模式 MODE下 改变计数值TH0及TL0以产生不同频率的方法产生不同音阶。例如频率为523Hz其周期T=1/523=1912us,因此只要令计数器计 时956us/1u s =956每计数956次时将I/O反相就可得到中音 DO523Hz 计数脉冲值与频率的关系式是:错误!未

13、找到引用源。公式1式中N是计数值;fi是机器频率(晶体振荡器为12MHZ时,其频率为 1MHz fr是想要产生的频率其计数初值T的求法如下:错误!未找到引用源。公式2例如设 K=65536 fi=1MHz 求低音 DO(261Hz)中音 DO(523Hz)高音 DO(1O46Hz的计数值.T=65536-N=65536错误!未找到引用源。i错误!未找到引用源。2 错误!未找到引用源。fr=65536-1000000错误!未找到引用源。2错 误!未找到引用源。fr=65536-500000/fr低音 DO的 T=65536-500000/262=63627中音 DO的 T=65536-50000

14、0/523=64580高音 DO的 T=65536-500000/1046=65059本程序所采用的音符频率及简谱码对应表如表1所示表1作品采用的音符频率与简谱码对应表音符频率(Hz)简谱码音符频率(Hz)简谱码低音mi33064021中音fa:69864820低音fa34964103中音so78464898低音so39264260中音la88064968低音la44064400中音xi98865030低音xi49464524高音do104665058中音do52364580咼音re117565110中音re58764684高音mi131865157中音mi65964777高音fa139765

15、1782音乐发声程序框图(图5)图5音乐发声程序框五、调试步骤1、先调试手动弹奏乐曲,关键问题在于键盘的扫描及识别定位。是 开始我尝试了好几种方法都无法完成扫描功能,经过多次探索我终于 找到了一种合适的键盘连接方式,并成功完成了各种功能。2、自动音乐播放程序的调试。最开始的问题在于单片机晶振的选择 上,我必须使用11.0592MHZ的晶振频率才能保证播放的音乐不走调。 然后又涉及到功能转换模块中的暂停、重复和转换,不但涉及到键盘 的扫描,而且部分程序需要嵌套在音乐程序内部才能执行, 难度很大, 耗费了我很长时间。3、功能转换程序的调试。首先需要将其做成一个单独的模块,确保 其能独立运行,而且还

16、能将手动弹奏模块和自动播放模块巧妙的结合 在一起。在调试中,我出现的重复多次使用一个键的情况,需要特别 的仔细,不然就会出错。尤其在是使用暂停功能时,为了保证其能在 暂停后继续从断点处播放音乐和返回开始处重新播放音乐,我设置了两条不同的路径通过两个不同的键进行控制,才最终得以实现。六、总结1课程设计心得及体会:通过这次单片机课程设计,我弄懂了不少课本上的知识,还扩展 了一些课本没有的知识,再通过去图书馆查阅资料,很好的完成了这 次课程设计。首先在课程设计刚开始的调研阶段, 我学会了怎么通过各种方式 查询相关的资料。通过对这些资料的学习,我大致了解了单片机的发 展现状以及未来的发展趋势,认识到目

17、前单片机在各方面的应用。了 解了单片机方面的先进技术,这些都为我的未来的学习指明了方向。我的课程设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子 产品的开发流程和所要做的工作。虽然本次课程设计的硬件焊接工序对大二焊接了一年的我来说不算什么难事,但是在焊接过程中我没有半点马虎,对电路的分析在指导老师卢毓俊老师的帮助下更是步步深 入。在软件方面,因为程序的编写都是我的弱项,所以我是先从网上找来类似的程序模板,然后借助各方面的资料对程序的每一步进行分 析,按题目的需求进行修改,最终才得到我现在的程序方案。2不足之处有:1).可弹奏的音符数较

18、少,只能在一定范围内满足用户需要。可 通过改进键盘识别模块和发生模块来增加其复杂度。2).音色不可调,只有一种波形的频率输出。可以在外围电路设计滤波电路,接在不同的输出口,通过软件实现不同端口的输出,从 而接入不同的滤波电路,输出不同的波形,从而获得不一样的音色。3) .不能以和弦形式演奏,只能单个键按下输出单个的音阶。4) .由于没有足够的设计经验,本次选用的按键不易按下,所以 导致演奏时不够流畅。参考文献1 陈明荧.8051单片机课程设计实训教材M.北京:清华大学出 版社,2003年9月.2 徐新艳.单片机原理、应用与实践M.北京:高等教育出版社, 2005年3月.3 吴金戌,沈庆阳,郭庭

19、吉.8051单片机实践与应用M.第一版.北 京:清华大学出版社,2002年.4 吴金戌,沈庆阳,郭庭吉,8051单片机实践与应用M.清华大 学出版社,20015 冯博琴,微型计算机原理与接口技术M.清华大学出版社,2004 张毅刚,MCS-51单片机应用设计M.哈尔滨工业大学出版社, 20047张淑清,姜万录等,单片微型计算机接口技术及应用M.国防工业出版社,2003附录一电路原理图:卜:19"IF硼应丄05HO1F-pC斗 PeU! 3WF-GADTGAD;V3GNDcinPi J Pl.tMO M 1Pl.4PftJPl.5PO.4Pl.fiMMIlSTVpd K7P3.D ET

20、v P IALEPJ.IKE?Pl!Pi ?Pl.4PMWjPl.6Pl.tPTJK7aL2宓?QALIF7 1心価AE5垃j SW-PBQi5W-FBKTAl.:fhF4p拿附录二源程序:KEYBUF EQU 30HSTHOEQU 31HSTLOEQU 32HTEMPEQU 33HSPKEQU P1.0;蜂鸣器所在端口ORG 0000HLJMP STARTORG 0BHLJMP INT_T0START:MOV TMOD,#01HSETB ET0SETB EAWAIT:MOV P2,#0FFHCLR P2.4;从第四行开始扫描MOV A,P2ANL A,#0FH;屏蔽高四位,高四位为行,低四位

21、为列XRL A,#0FHJZ NOKEY1;判断是否有键按下,没有就跳转LCALL DELY10MSMOV A,P2;消除抖动和干扰ANL A,#0FHXRL A,#0FHJZ NOKEY1MOV A,P2;确定有键按下以后的处理ANL A,#0FHCJNE A,#0EH,NK1是否为第四行第一列的键被按下MOV KEYBUF,#0;保存列号LJMP DK1NK1:CJNE A,#0DH,NK2MOV KEYBUF,#1LJMP DK1NK2:CJNE A,#0BH,NK3MOV KEYBUF,#2LJMP DK1NK3:CJNE A,#07H,NK4MOV KEYBUF,#3LJMP DK1

22、NK4:NOPDK1:;第四行的处理MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2;Table1以字保存,所以散转MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,A+DPTRMOV STH0,A;送入高字节MOV TH0,AINC TEMPMOV A,TEMPMOVC A,A+DPTRMOV STL0,A;送入低字节MOV TL0,ASETB TR0DK1A: MOV A,P2;判断按键是否松开ANL A,#0FHXRL A,#0FHJNZ DK1ACLR TR0NOKEY1

23、:MOV P2,#0FFHCLR P2.5MOV A,P2ANL A,#0FHXRL A,#0FHJZ NOKEY2LCALL DELY10MSMOV A,P2ANL A,#0FHXRL A,#0FHJZ NOKEY2MOV A,P2ANL A,#0FHCJNE A,#0EH,NK5MOV KEYBUF,#4LJMP DK2NK5:CJNE A,#0DH,NK6MOV KEYBUF,#5LJMP DK2NK6:CJNE A,#0BH,NK7MOV KEYBUF,#6LJMP DK2NK7:CJNE A,#07H,NK8MOV KEYBUF,#7LJMP DK2NK8:NOPDK2:MOV A,

24、KEYBUFMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK2A: MOV A,P2ANL A,#0FHXRL A,#0FHJNZ DK2ACLR TR0NOKEY2:MOV P2,#0FFHCLR P2.6MOV A,P2ANL A,#0FHXRL A,#0FHJZ NOKEY3LCA

25、LL DELY10MSMOV A,P2ANL A,#0FHXRL A,#OFHJZ N0KEY3MOV A,P2ANL A,#0FHCJNE A,#0EH,NK9MOV KEYBUF,#8 LJMP DK3NK9:CJNE A,#0DH,NK10MOV KEYBUF,#9 LJMP DK3NK10: CJNE A,#0BH,NK11 MOV KEYBUF,#10 LJMP DK3NK11: CJNE A,#07H,NK12 MOV KEYBUF,#11 LJMP DK3NK12: NOPDK3:MOV A,KEYBUFMOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A

26、MOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,A+DPTRMOV STL0,AMOV TL0,ASETB TRODK3A: MOV A,P2ANL A,#0FHXRL A,#0FHJNZ DK3ACLR TR0NOKEY3:MOV P2,#0FFHCLR P2.7MOV A,P2ANL A,#0FHXRL A,#0FHJZ NOKEY4LCALL DELY10MS MOV A,P2ANL A,#0FHXRL A,#0FH

27、JZ NOKEY4MOV A,P2ANL A,#0FHCJNE A,#0EH,NK13MOV KEYBUF,#12LJMP DK4NK13: CJNE A,#0DH,NK14 MOV KEYBUF,#13 LJMP DK4NK14: CJNE A,#0BH,NK15 MOV KEYBUF,#14 LJMP DK4NK15: CJNE A,#07H,NK16 MOV KEYBUF,#15 LJMP DK4NK16: NOPDK4:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,A

28、MOV DPTR,#TABLE1MOVC A,A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK4A: MOV A,P2ANL A,#0FHXRL A,#0FHJNZ DK4ACLR TR0NOKEY4: JNB P1.0,MUSICLJMP WAITMUSIC:MOVR3,#00HNEXT:MOVA,R3MOVDPTR,#TABLE2MOVCA,A+DPTRJZ MUSICMOVR7,AINC R3MOVA,R3MOVC A,A+DPTRMOV R2,AACALLSONGI

29、NC R3SJMP NEXT;= 歌曲播放子程序 =SONG:;取出节拍MOV A,R2RL AJNZKEEPMOV A,#01HKEEP:MOV R2,AREPEAT:ACALL EIGHTHDJNZ R2,REPEATRET;= 产生1/8拍延时子程序=EIGHTH:MOVA,R7;查表取出廷时参数,保存到R4MOVDPTR,#DELAY_TMOVCA,A+DPTRMOVR4,AMOVA,R7;查表取出1/8拍周期数,保存到R5MOVDPTR,#S_PARAMOVCA,A+DPTRMOVR5,ANEXTCYC:ACALL SOUNDDJNZ R5,NEXTCYCRET;= 发声子程序 =S

30、OUND:SETB SPKACALL SDELAYCLR SPKACALL SDELAYRET;= 延时子程序SDELAY:MOVA,R4;廷时值在R4内MOVXL2:R0,AMOVDL1:R1,#03HNOPDJNZR1,DL1DJNZRETR0,XL2;=1/8拍周期表 =S_PARA:DS 1DHDB 15H,16H,00DB 19H,00H,1CH,00H,1FH,21H,00H,25HDB 00H,29H,2CH,00H,31H,34H,37H,00HDB 3EH,41H,00H,49H,00H,52H,57H,00HDB 62H;= 延时参数表 =DELAY_T:DS 1DHDB

31、7EH,77H,00HDB 6AH,00H,5EH,00H,54H,4FH,00H,46HDB 00H,3FH,3BH,00H,35H,32H,2FH,00HDB 2AH,27H,00H,23H,00H,1FH,1DH,0C0HDB 1AHDELY10MS:MOV R6,#10D1:MOV R7,#248DJNZ R7,$DJNZ R6,D1RETINT_T0:MOV TH0,STH0MOV TL0,STL0CPL P1.5RETITABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HTABLE1:

32、DW 64021,64103,64260,64400DW 64524,64580,64684,64777DW 64820,64898,64968,65030DW 65058,65110,65157,65178歌曲表TABLE2:DW 2202H,2902H,2902H,2902H,2906H,2702HDW 2502H,2702H,2502H,2402H,2208HDW 2E02H,2E02H,2E02H,2E02H,2E06H,2C02HDW 2902H,2C02H,2D02H,2A02H,2908HDW 2902H,2E02H,2E02H,2C02H,2906H,2702HDW 2502H

33、,2702H,2502H,2402H,2206H,1D02HDW 1 D02H,2502H,2502H,2402H,2206H,2902HDW 2702H,2502H,2402H,2002H,2208HDW 0000H;END附录三程序框图;我从山中来;带着兰花草;种在小园中;祈祷花开早;一日看三回;看得花时过;兰花却依然;苞也无一个1.程序流程图2、键盘识别程序框图zP3=FFHnP3.0=0根据当前伏窓识金抿键P3-FFH?P3 3=0有穩按下吗j延时1 Dins延 lOiHS、乙/真的有键按下吗/根据当前状喬识别按谨-U很据当前状态识別按键气/延时lDms/有键按下吗其的有键按下吗根据当前曲识别按薛P3=PFH,P3 1=0百捷按下吗有键按下吗亘的有键按下吗真的有犍按下吗附录四元件清单:编号元件数量编号元件数量1LM38619200uf电容12AT89S521101uf电容13按键(四脚)181110uf电容14晶振(12M)112470uf电容15扬声器11310KQ电阻2630pf电容21447KQ电阻171nf电容21522KQ电阻18100uf11612KQ电阻1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1