电子琴设计及流程图-论文_第1页
电子琴设计及流程图-论文_第2页
电子琴设计及流程图-论文_第3页
电子琴设计及流程图-论文_第4页
电子琴设计及流程图-论文_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子琴设计及流程图-论文电子琴设计及流程图目 录电子琴的设计(摘要) 1绪论 2一系统功能及指标 3二系统实现方案选择 4三电子琴硬件设计流程 5四 音乐产生原理 9五 流程图 10六电子琴程序设计 11七电子琴指标修正及程序中问题的解决 16结 束 语 17参考文献 18电子琴的设计【摘要】作为一种新兴的乐器,电子琴深受广大青少年甚至老年人的喜爱。本次设计的核心在于单片机,因此本文将围绕单片机介绍电子琴的硬件和软件的开发与实现,单片机则选用80C51系列的AT89C51。为了使声音丰富多彩,听起来具有一定的深度感和空间立体感,在硬件部分本设计加入了音色产生器和电子混响器电路。由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,所以可以利用不同的频率的组合,构成我们所想要的音乐。【关键字】电子琴、设计、频率、电路、系统、程序绪论电子琴因其音色优美、节奏多变、价格便宜、携带方便和弹奏易于出效果,深受广大青少年甚至老年人的喜爱,又是我国中小学音乐课堂教学和广大群众业余音乐活动的重要工具。在日常的娱乐活动中,不管是卡拉OK、听音乐、看电影,又或是参与演唱会。你都会发觉,这些消遣全与音乐有不可分割的关系,而几乎所有的音乐里都有琴的参与。再者提高电子琴应用能力(如即兴伴奏),已经成为各级各类电子琴教学活动的重要内容。因此研究电子琴设计也成为了电子设计师的重要课题。作为一种新兴的乐器,电子琴的历史不像钢琴那样悠久.它也是以键盘形态出现的,而以往的键盘乐器主要是钢琴、风琴、管风琴、手风琴。电子琴是种键盘乐器。它是1934年由美国人劳伦斯.哈梦特制造发明的,只有50多年历史。当初发明它的目的是用它来代替巨大的管风琴(管风琴是乐器中最大的一种,最低的发音管就有10多米长)。后来日本人在五十年代买下了这项专利技术,开始生产电子琴,并把它用于音乐教育。这样,电子琴就渐渐地在世界上普及起来。当今电子琴已被广泛应用于教学,演奏,是一门实用性很强的乐器.在我国目前普及的电子琴有两种:一种是带有脚键盘的立式电子琴;另一种是深受大家喜爱的、用于普及音乐教育的便携式电子琴。当今的电子琴也已经发展为一种技术含量较高、品质要求严格、融音乐艺术与精密机械加工为一体的高新技术产品。要设计出专业的电子琴是需要丰富的音律专业知识和机械电子等高新技术知识的。作为电子信息类专业的毕业生,把电子琴设计的重点就只能放在微控制器的应用上,所以本文就基于微控制器设计简易电子琴来展开研究。这也就成了本设计的主要任务。一系统功能及指标1.1功能设计本设计的设计目的是一个简易的电子琴,其具有的基本功能有可弹奏音乐。实际上在基本功能的基础上对电子琴还可以做一些功能扩展,比如:可对声音效果做多音色和电子混响等方面的处理。这样可以使音效更加丰富完美。本设计的主要内容也正是详细论述以上功能的设计并力图将其实现。1.2系统指标主要指标是音调,音调指频率的高低。不同音调的频率大小不同。设计将由计数器0中断来产生不同频率的波形,来实现音调的变化,具体的实现方法是:a、由程序给计数器赋初值,等到其自行计数满后,并产生计数中断时再由程序从单片机P1.0口输出高或低电平。b、给计数器赋初值使其连续的产生中断,而P1.0口交替以高低电平出现,即为某一频率的波形。c、.计数器赋的初值不同,则产生的波的频率就不同,音调就不同。d、由于考虑到程序执行的绝大部分时间被中断占有的话,其他程序就来不及执行,这样就会影响其他功能的响应时间甚至有出错的可能,因此最大频率输出时的计数器初值预设为0XFEDD。单片机的外接晶振频率在此取12MHz(MHz是频率单位,1MHz=1106赫兹),其计数器计数周期即为:式中 时间单位,1 110-6秒采用计数器工作方式1,则初值为0XFEDD时中断的最大频率为:因为中断两次输出波形为一个周期,故波形最大频率(定为参考频率)为:750电子琴设计及流程图二系统实现方案选择2.1主控制部分设计方案主控制部分的选择对象比较灵活,用FPGA、DSP及各种MCU配合各自的外围接口电路均可实现。由于FPGA和DSP的系统功能强大,用于本设计的话有点大材小用之嫌,且硬件成本过大。单片机是MCU的一种,又由于单片机原理与应用是电子信息类专业的重要课程之一,及生活中单片机的应用极其广泛之故,本设计选择用单片机来设计电子琴的主控制部分。设计的核心在于单片机,因此本文将围绕单片机介绍电子琴的硬件和软件的开发与实现,并展示用单片机设计产品的整个流程。实现则选用80C51系列的AT89C51单片机。2.2Speaker电路设计方案Speaker电路设计有以下两种基本方案:(1)采用扬声器加放大电路组成。将单片机P1.0输出的信号通过单运放电路放大后输入到扬声器。(2)同样使用扬声器,但放大电路中加入电子混响器和音色产生器。由于电子混响器的作用,声音听起来具有一定的深度感和空间立体感。而音色产生器更使声音丰富多彩。第二种方案虽然硬件电路实现比较复杂,但声音效果理想。第一种方案硬件相对简单易行,可是其声乐效果实为逊色。为使设计更加完美,所以在设计时选用了第二种方案。三电子琴硬件设计流程本设计集硬件和软件于一体,这两部分是文章的重要内容,而软件是在硬件的基础之上设计的,因此本章就根据电子琴的指标来叙述硬件电路的设计。电子琴硬件由以下几部分组成:3.1系统硬件图(省略音色产生器电路,电子混响器电路等) 3.2 Speaker放大电路设计Speaker放大电路如图所示。原理就是将音频信号放大到适合Speaker的幅度。将电信号转化成声音输出。在放大输出口与Speaker间加一个33微法电容起到耦合作用,目的是使音频交流信号输入到Speaker,消除直流信号加到Speaker上使其产生的恒定强度的噪音的可能。 Speaker放大电路3.3音色产生器电路设计(在系统硬件图未直接画出)音色产生器产生模拟各种传统乐器如笛子、小号、双簧、风琴等的音乐。这些音乐的区别表现在发同一音符时,波形的频率与包络特性不同。由此设计的一种简单音色产生电路如图所示。其中,74LS93的输入脉冲CPA来自单片机的P1.0口输出的音符的频率f0 。其输出端QAQD为f0的2、4、8及16分频信号。电阻R1R10组成权电阻相加网络,可产生由不同频率成分与不同幅度组成的各种波形。乐音的频率特性有关资料表明,适当选择R1R10的阻值或一定比值(与乐器标准音比较后定),可获得如下图所示的笛子、小号、双簧、风琴等的基本乐音。再经RC滤波输出,以改善音色。加入到系统的方式为:单片机P1.0口音色产生器电路Speaker放大电路。即将音色产生器电路加于单片机和Speaker放大电路之间。音色产生器电路3.4电子混响器电路电子混响器是用电路模拟声音的多次反射,产生混响效果,使声音听起来具有一定的深度感和空间立体感。(如下图)混响器的电路电子琴设计及流程图电子混响器组成框图如下图所示。接入系统方式:单片机P1.0口音色产生器电路电子混响器电路Speaker放大电路。 电子混响器组成框图其中集成电路BBD称为模拟延时器,其内部有由场效应管构成的多级电子开关和高精度存储器。在外加时钟脉冲作用下,这些电子开关不断地接通和断开,对输入信号进行取样、保持并向后级传递,从而使BBD的输出信号相对于输入信号延迟了一段时间。BBD的级数越多,时钟脉冲的频率越高,延迟时间越长。BBD配有专用时钟电路,如MN3102时钟电路与MN3200系列的BBD配套。电子混响器的电路如上图所示,其中两级二阶低通滤波器(MFB)A1、A2滤去4kHz(语音)以上的高频成分,反相器A3用于隔离混响器的输出和输入级间的相互影响。RP1调节混响器的输入电压,RP调节MN3207的平衡输出以减小失真,RP调节时钟频率,RP4控制混响器的输出电压。图中MN3207和MN3102各引脚的电压如下表所示:MN3207和MN3102各引脚电压引脚MN3207的电压V0.03.20.05.66.03.22.62.6MN3102的电压V6.03.20.03.23.23.22.85.6四 音乐产生原理由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T= 216-5105/相应的频率 ,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下表所示:音符频率(HZ) 简谱码(T值) 音符 频率(HZ) 简谱码(T值)低1DO26263628# 4 FA#74064860#1 DO#27763731中 5 SO78464898低2 RE29463835# 5 SO#83164934# 2 RE#31163928中 6 LA88064968低 3 ME33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高3 ME131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580#4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684#5 SO#166165235# 2 RE#62264732高 6 LA 176065252中 3 ME65964777# 6186565268中 4 FA69864820高 7 SI 196765283采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据,低音0-19之间,中音在20-39之间,高音在40-59之间TABLE:DW 0,63628,63835,64021,64103,64260,64400,64524,0,0 DW:0, 63731,63928,0,64185,64331,64463,0,0,0 DW:0,64580,64684,64777,64820,64898,64968,65030,0,0 DW:0,64633,64732,0,64860,64934,64994,0,0,0 DW:0,65058,65110,65157,65178,65217,65252,65283,0,0 DW:0,65085,65134,0,65198,65235,65268,0,0,0 DW:0音乐的节拍,一个节拍为单位(C调)曲调值 DELAY 曲调值 DELAY 调4/4 125ms 调4/4 62ms调4/4 187ms 调4/4 94ms调4/4 250ms 调4/4 125ms五 流程图流程图如下图所示: 六电子琴程序设计1:产生按键音符方案(1)ORG 0000H LJMP MAIN ORG 000BH LJMP BREAKMAIN: MOV TMOD,#01H ;设置定时器0的工作方式 SETB EA SETB ET0 ; 设置定时器0中断 SETB TR0 ; 启动定时器0POS1: LCALL KEY ; 调用KEY子程序,判断有键按下否?第几个键? CLR EA ;屏蔽中断 CJNE R3,#00H,POS1 ;如果R3=0,表示有键按下 MOV A,22H ;将22H里存放的按键号送给A RL A ; 因为查表里都是字,所以得乘2查得数据 MOV DPTR,#TABLE ;指向表头 MOVC A,A+DPTR ; 查表 MOV TH0,A ;将数据高位送TH0 MOV 21H,A ; 将高位备份 MOV A,22H ;将22H里存放的按键号送给A RL A ;因为查表里都是字,所以得乘2查得数据 INC A ;取低位数据 MOVC A,A+DPTR MOV TL0,A MOV 20H,APOS2: LCALL KEY SETB EA CJNE R3,#00H,POS1 JMP POS2KEY: MOV R3,#00H ; KEY子程序,判断有键按下否?第几个键? MOV R1,#0FFH MOV R0,#00H MOV A,R1 MOV P2,A MOV A,P2 CLR C CPL C ;利用标志位CY来判断是哪个键按下 MOV R2,#08HPOS3: RLC A ;移位判断 JNC STORE INC R0 DJNZ R2,POS3STORE: MOV 22H,R0 ; 将按键号存22H,R3=0有键按下 MOV R3,#00H RETBREAK: PUSH ACC ; 中断产生方波,从P1.0口输出 PUSH PSW MOV TL0,20H MOV TH0,21H CPL P1.0 POP PSW POP ACC RETITABLE: DW 65030,64968,64898,64820,64777,64684,64580 ; 7,6,5,4,3,2,1 END方案(2): ORG 0000H SJMP START ORG 000BH AJMP INT_0 ORG 0030HSTART: MOV P1,#00H SETB EA SETB ET0 ;计数器0 MOV TMOD,#02H MOV TH1,#09CH MOV TL1,#09CH ;定时器初值 CLR TR0 ;定时器不允许BLOCK: ;键盘扫描 MOV A,P2 ;判断键盘按下,跳到BLOCK_1,若未按,继续扫描 CJNE A,#0FFH,BLOCK_1 NOP SJMP BLOCKBLOCK_1:ACALL DELAY ;是不是真的要按下?如果是,则跳转SU_KEY查询是哪个按下? MOV A,P2 CJNE A,#0FFH,SU_KEY NOP SJMP BLOCKSU_KEY:JNB P2.1,LOOP_1 ;判断是哪个键按下? JNB P2.2,LOOP_2 JNB P2.3,LOOP_3 JNB P2.4,LOOP_4 JNB P2.5,LOOP_5电子琴设计及流程图JNB P2.6,LOOP_6 JNB P2.7,LOOP_7 SJMP BLOCK ;R1信号周期LOOP_1: MOV R1,#19 ;如果第一个按键按下,则R1=19,同时程序转NEXT SJMP NEXTLOOP_2: MOV R1,#17 SJMP NEXTLOOP_3: MOV R1,#15 SJMP NEXTLOOP_4: MOV R1,#14 SJMP NEXTLOOP_5: MOV R1,#13 SJMP NEXTLOOP_6: MOV R1,#11 SJMP NEXTLOOP_7: MOV R1,#10 SJMP NEXTNEXT: MOV A,R1 MOV R0,A SETB TR0 ;启动定时器0 NEXT_1:MOV A,P2 ; 没键按下继续执行,有键按下,返回读引脚 CJNE A,#0FFH,NEXT_1 ACALL DELAY MOV A,P2 ;真的没键按下? CJNE A,#0FFH,NEXT_1 CLR TR0 ;不响 AJMP BLOCK ;扫描键盘去INT_0: ;中断程序 DJNZ R0,RE ;R0不等于0时,返回 CPL P1.0 MOV A,R1 MOV R0,ARE: RETIDELAY:MOV R7,#100 ;延长时间等待,键盘消抖D1: MOV R6,#10D2: DJNZ R6,D2 DJNZ R7,D1 RET END2. 主程序:(扩展功能部分程序) ORG 0000H JMP MAIN ORG 000BH JMP STXDMAIN: MOV TMOD,#01H ;设置定时器0工作方式 MOV IE,#82H ;设置中断MAIN0:MOV 30H,#00HNEXT: MOV A,30H MOV DPTR,#TABLE ;查表 MOVC A,A+DPTR MOV R2,A JZ STOP ANL A,0FH MOV R5,A MOV A,R2 SWAP A ANL A,#0FH JNZ SING CLR TR0 JMP RL1SING: DEC A MOV 22H,A RL A MOV DPTR,#TABLE1 ;查表 MOVC A,A+DPTR MOV TH0,A MOV 21H,A MOV A,22H RL A INC A MOVC A,A+DPTR MOV TL0,A MOV 20H,A SETB TR0RL1: CALL DELAY INC 30H JMP NEXTSTOP: CLR TR0 JMP MAIN0STXD: PUSH ACC ;中断服务程序 PUSH PSW MOV TL0,20H MOV TH0,21H CPL P1.0 POP PSW POP ACC RETIDELAY:MOV R7,#01FH ;延时程序RL2: MOV R4,#08FHRL3: DJNZ R5,DELAY RET生日快乐歌:TABLE1:DW 64260,64400,64524,64580 ;音符计数值 DW 64684,64777,64820,64898 DW 64968,65030,65058,65110DW 65157,65178,65217TABLE:DB 82H,01H,81H,94H,84H ;节拍表 DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84HDB 0C4H,0B4H,04H DB 82H,01H,81H,0F4H,0D4H DB 0B4H,0A4H,94H DB 0E2H,01H,0E1H,0D4H,0B4HDB 0C4H,0B4H,04H DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84HDB 0C4H,0B4H,04H DB 82H,01H,81H,0F4H,0D4H DB 0B4H,0A4H,94H DB 0E2H,01H,0E1H,0D4H,0B4H DB 0C4H,0B4H,04H DB 00HEND电子琴设计及流程图七电子琴指标修正及程序中问题的解决为了使各项指标更精确,有必要做以下修正和改进:(1)电子琴指标修正各音的定时器初值是计算出来的,但在实际执行时因为响应中断及跳转的原因会延迟一定的时间,所以送给Speaker的频率会有很小的变化。修正的方法是:分别按住各琴键的同时用示波器测送给Speaker的频率是否和频率表中的值相同,不同则适当地对定时器初值做修改,直到送给Speaker的频率和频率表中的值相同为止。 (2)程序中问题的解决a、当回放结束后Speaker会发出噪音。解决方法是在放音完成后将给Speaker送一个高电平。b、当往片外RAM中存数据时会间隔地出现存不进去(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论