
基于51单片机的电子琴的设计与开.doc
27页目 录一、设计电子琴的作用与目的 1二、电子琴设计要求 1三、电子琴设计所用设备及软件 2四、电子琴系统设计方案 2五、电子琴系统硬件设计 35.1 琴键控制电路 35.1.1 矩阵式键盘 35.1.2 独立式键盘 45.1.3 方案比较 45.2 数码管显示电路 55.2.1 LED数码管显示原理 55.2.2 LED数码管静态显示 55.2.3 LED数码管动态显示 65.2.4 方案比较 75.3 音频功放电路 75.4 时钟-复位电路 85.4.1 时钟电路 85.4.2 复位电路 85.5 电源电路 95.6 整体电路 10六、电子琴系统软件设计 106.1 系统硬件接口定义 106.2 主函数 106.3 初始化函数 116.4 数码管显示函数 116.5 中断函数 116.6 键值扫描函数 126.7 音频处理函数 13七、电子琴设计调试 147.1 调试工具 147.2 调试结果 147.3 电子琴设计中的问题及解决方法 15八、电子琴设计总结 15参考文献 17附录1:电子琴系统原理图 18附录2:源程序 19 / 文档可自由编辑打印基于51单片机的电子琴设计在电子音乐领域,电子音调作为现代电子科技与音乐结合的产物,它在现代音乐中扮演着重要的角色。
目前,由于电子音乐的普及,电子音调合成器(合成器实际上就是一台声音的频率合成仪,可以制作各种声音,改变各种音色)可以解决相当一部分的歌唱及舞厅的伴奏问题其中,电子琴就是一种新型的键盘电子乐器一、设计电子琴的作用与目的音乐教育是学校美育的主要途径和最重要内容,它在陶冶情操、提高素养、开发智力,特别是在培养学生创新精神和实践能力方面发挥着独特的作用近年来,我国音乐教育在理论与实践上都取得了有目共睹的成绩,探索并形成了具有中国特色的、较为完整的音乐教育教学体系但我国音乐教育的改革力度离素质教育发展的要求还存在一定距离如今,电子琴作为电子时代的新产物以其独特的功能和巨大的兼容性被人们广泛的接受和推崇而在课堂教学方面,它拥有其它乐器无法比拟的两个瞬间:瞬间多元素思维的特殊的弹奏方法;瞬间多声部(包括多音色 )展示的乐队音响效果的特点结合电子琴自身强大的功能及独特的优点来进行音乐教育的实施,这样就应该大力推广电子琴进入音乐教室,让电子琴教学在音乐教育中发挥巨大的作用现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性训练能起到非常大的作用。
电子琴所包含的巨量的音乐信息和强大的音乐表现力可以帮助音乐教学更好地贯彻和落实素质教育,更有效地提高人们的音乐素质和能力目前,市场上的电子琴可谓琳琅满目,功能也是越来越完备以单片机作为主控核心,设计并制作的电子琴系统运行稳定,其优点是硬件电路简单、软件功能完善、控制系统可靠、性价比较高等,具有一定的实用与参考价值这就为电子琴的普及提供了方便二、电子琴设计要求本设计主要是用AT89C51单片机为核心控制元件,设计一台电子琴以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有8个按键和1个复位按键本系统主要是完成2大功能:音乐自动播放、电子琴弹奏关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中总之,本设计的电子琴有以下要求:(1)用键盘作出电子琴的按键,共7个,每键代表1个音符各音符按照符合电子 琴的按键顺序排列;(2)达到电子琴的基本功能,可以用弹奏出简单的乐曲;(3)不弹奏时,利用功能键可以播放内置音乐三、电子琴设计所用设备及软件 本设计除了需要计算机,还会用到三款软件:作图软件Protel99SE、仿真软件Proteus、编程软件Keil uVision4。
关于这三种软件的简介如表1所示表1 软件简介软件名称软件图标主要特点作用备注Protel99SEProtel99SE是PC环境下以独特设计管理和协作技术为核心的印制电路板设计软件系统,是基于Windows 95/98/2000/NT的全32位EDA设计系统它主要采用了SmartDoc技术、SmartTool技术、SmartTeam技术绘制电路图和PCB板ProteusProteus软件具有其它EDA工具软件的功能,诸如:原理布图、PCB自动或人工布线、SPICE电路仿真除此之外还有一些革命性的特点:互动的电路仿真、仿真处理器及其外围电路数字电路仿真Keil uVision4uVision4在uVision3 IDE的基础上,增加了更多大众化的功能:多显示器和灵活的窗口管理系统;系统浏览器窗口的显示设备外设寄存器信息;调试还原视图创建并保存多个调试窗口布局;多项目工作区简化与众多的项目编写程序四、电子琴系统设计方案本系统采用AT89C51为主控芯片,因其精度较高,操作比较灵活,输入电路和输出电路由芯片来进行处理,电路的系统的稳定性高,功耗小其中,输入电路有8个独立按键,通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。
由于需要显示的信息不多,显示电路未采用液晶屏显示,而是使用数码管显示电路负责显示按下的琴键所对应的键值,这样既节省了成本了,又降低了编程难度时 钟复位电路琴 键控制电路音 频功放电路数码管显示电路 51单片机图1 基于51单片机的电子琴电路的原理框图如图1所示基于单片机AT89C51的电子琴电路,它主要由琴键控制电路、数码管显示电路、音频功放电路、时钟-复位电路和电源电路五部分所构成 五、电子琴系统硬件设计基于单片机AT89C51的电子琴电路由琴键控制电路、数码管显示电路、音频功放电路、时钟-复位电路和电源电路五部分所构成琴键控制电路采用了8输入与门芯片CD4068B,收集8个独立按键的开关状态信号,并触发单片机的外部中断来处理;而数码管显示电路负责显示按下的琴键所对应的键值;同时,音频功放电路也会播放琴键对应的音调;电源电路为整个电路提供能源5.1 琴键控制电路琴键控制电路作为人机联系的输入部分,也是间接控制数码显示和音频功放的重要组成部分键盘按照连接方式可以分为独立式和矩阵式键盘两类5.1.1 矩阵式键盘矩阵式(也称行列式)键盘由行线和列线组成,按键位于行、列的交叉点上由于矩阵式键盘中行、列线为多键共用,各按键彼此将相互发生影响,所以必须将行、列线信号配合,才能确定闭合键位置。
相对于独立式键盘而言,软件上编程会稍微复杂些如图2所示为4X4矩阵式键盘电路,由一个4X4的行、列结构可以构成一个16个按键键盘,再结合芯片74LS20来触发中断在按键数目较多的场合,要节省较多的I/O口线图2 矩阵式键盘电路矩阵中无按键按下时,行线为高电平;当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平也为高,这是识别按键是否按下的关键所在5.1.2 独立式键盘图3 独立式键盘电路独立式键盘的特点是一键一线,各键相互独立,每个键各接一条I/O口线,通过检测I/O输入线的电平状态,可判断出被按下的按键显而易见,这样电路简单,各条检测线独立,识别按下按键的软件编写简单适用于键盘按键数目较少的场合,不适用于键盘按键数目较多的场合,因为将占用较多的I/O口线独立式键盘电路如图3所示,8个独立按键分别对应一个I/O口线,当某一按键按下时,对应的检测线就变成了低电平,与其它按键相连的检测线仍为高电平,只需读入I/O输入线的状态,判别哪一条I/O输入线为低电平,很容易识别哪个键被按下同时采用了8输入与门芯片CD4068B,收集8个独立按键的开关状态信号,并触发单片机的外部中断来处理,大大提高了单片机CPU的利用率。
5.1.3 方案比较对于以上两种电路的的优缺点比较如表2所示由于此次设计的琴键控制电路需要8个按键,故单纯从I/O口线的占用的角度比较,独立式需要占用8条I/O口线,而矩阵式却只需6条但是从程序编写的难易程度来看,若使用矩阵键盘电路来设计会比独立式键盘电路难一些,故选择独立式键盘电路比较合理表2 独立式和矩阵式的的优缺点比较键盘类型优点缺点独立式编程简单一键一线,占用I/O口线多矩阵式占用I/O口线较少,尤其是在按键数目多的时候优势明显编程比较复杂5.2 数码管显示电路5.2.1 LED数码管显示原理图4 八段LED数码管结构及外形 LED(Light Emitting Diode)发光二极管缩写LED数码管是由发光二极管构成的常见的LED数码管为“8”字型的,共计8段它由七个条形发光二极管和一个小圆点发光二极管组成,每一段对应一个发光二极管一般来说分共阳极和共阴极两种接法,如图4所示为八段LED数码管结构及外形共阳极LED数码管的发光二极管的阳极连接在一起,公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示反之,共阴极发光二极管的阴极连在一起,通常公共阴极接地。
当阳极为高电平时,发光二极管点亮 LED数码管的a至g七个发光二极管因接得电压不同而导致不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,如表3所示为八段LED数码管的字形码表表3 八段LED数码管的字形码表显示字符共阴极共阳极显示字符共阴极共阳极03FHC0Hb7CH83H106HF9HC39HC6H258HA4Hd5EHA1H34FHB0HE79H86H466H99HF71H8EH56DH92HH76H89H67DH82HL38HC7H707HF8HP73H8CH87FH80HU3EHC1H967H90H.80H7FHA77H88H5.2.2 LED数码管静态显示静态显示方式即无论多少位LED数码管,同时处于显示状态各位的共阴极(或共阳极)连接在一起并接地(或接+5V);每位的段码线(a~dp)分别与一个8位的I/O口锁存器输出相连如果送往各个LED数码管所显示字符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到送入另一个字符的段码为止由此可知:静态显示方式的显示无闪烁,亮度都较高,软件控制比较容易另外,在显示位数较多的情况下,所需的电流比较大,对电源的要求也就随之增高,这时一般都采用动态显示方式。
如图5所示为四位七段数码管静态显示电路图5 四位七段数码管静态显示电路5.2.3 LED数码管动态显示 静态显示方式就是无论在任何时刻只有一个LED数码管处于显示状态,即单片机采用“扫描”方式控制各个数码管轮流显示在多位LED显示时,为简化硬件电路,通常将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阳极或共阴极分别由相应的I/O线控制,形成各位的分时选通如图6所示为四位七段数码管动态显示电路。
