作者:青岛大学 吴婷婷 李阳 吴雨露
指导教师:范秋华
作品简介
开发背景:随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、自动放音功能等等也很好奇。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
结构功能及使用说明:我们的设计是用IAR15F2K61S2单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与PS2键盘、扬声器等模块组成核心主控制模块。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。每个音阶对应着不同的频率,我们利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们利用单片机的定时/计数器T0来产生这样方波频率信号。我们这次设计共设计了16个音阶。
我们的多功能电子琴可以实现多种功能,如自动播放、任意弹奏、根据提示弹奏等,我们设计采用菜单的形式,根据提示来操作,简单明了。开机就进入主菜单页面,按一号键就会进入自动播放模式,在自动播放模式下,按五号六号键分别对应三首不同的歌曲,在主菜单下按二号键,则进入单音符模式。在此模式下,按三号键,则进入自己弹奏模式,按四号键,则进入有提示弹奏模式。
总体设计简单易理解,而且在此基础上可以继续开发更多的功能。有很强的实用性!
总体实物图如下:
平台选型说明
系统选择以STC15F2K61S2芯片为控制核心的单片机开发板为开发平台,经济实用。STC15F2K61S2是1T的增强型8051 CPU,可以进行在线编程,具有双串口、三个定时器、高速10位AD等模块,方便进行系统开发。开发板具有显示模块、输入/输出模块、传感模块、电源模块、通信功能、电子日历等模块。开发板功能齐全适用于单片机初学者学习,也适合单片机专业开发者使用。所以我们选用此开发板来完成我们的设计!
设计说明
设计原理:本设计采用STC15F2K61S2芯片为控制核心,用12864作为显示模块,采用PS2键盘来作为琴键,发声部分采用的是扬声器。我们用的PS2键盘,当一个键被按下或持续按住时,键盘会将该键的通码发送给主机;而当一个键被释放时,键盘会将该键的断码发送给主机,将断码与第二套扫描码集对比得到相应的按键值。MCU主要完成与键盘,液晶的控制通信,利用定时中断将不同音频转化为占空比不同的方波。扬声器模块用一级共射电路放大MCU输出的方波信号,驱动扬声器发声。
设计方案:
1、 控制芯片的选择
方案一:采用STC15F2K61S2芯片为控制核心。STC15F2K61S2系列抗干扰;采用了STC第八代加密技术;不需要外部晶振和复位电路,利用IAP技术,可省掉外部EEPROM;可在线编程;双串口,包含高速8通道10位A/D转换器;可工作在一个时钟周期模式。
方案二:采用Xilinx Spartan-3E 系列芯片为控制核心。Spartan-3E更好地利用了90nm技术,在单位成本上实现了更多的功能和处理带宽,是Xilinx公司新的低成本产品代表,是ASIC的有效替代品。其具有大量用户I/O端口,最多可支持376个I/O端口或者156对差分端口。端口电压为3.3V, 2.5V, 1.8V, 1.5V, 1.2V。单端口传输速率可以达到622Mbps,支持DDR接口。最多可达36个专用乘法器、648 BRAM, 231 k分布式RAM。宽时钟频率以及多个专用数字时钟管理模块((DCM)。Spartan-3E是性价比非常高的FPGA芯片。
方案论证及选定:Xilinx Spartan-3E具有使用灵活,高速等优点。STC15F2K61S2系列芯片具有多个定时,PWM等模块方便易于设计操作。考虑到我们设计的需要,我们决定选用STC15F2K61S2单片机,因为它可以在保证我们功能实现的前提下,为了节约成本,我们选用方案一。
2、发声工具的选择
方案一:采用蜂鸣器。蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。单片机可直接驱动,但音量小,单频,单音且低音效果差。
方案二:采用扬声器。扬声器是一种常用的电气换能器件,按工作频率分低音、中音、高音,频带宽,音质高,能表达出更为复杂的声音。
方案论证及选定:选择扬声器作为发音设备,可提高音量,音质,能更好的完成电子琴设计,更好地达到音乐播放效果 。
扬声器放大电路图如下:
3、按键的选择
方案一:STC15F2K61S2单片机上的4*4矩阵键盘。矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。当使用按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。列线通过电阻接正电源,并将行线所接单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
方案二:采用PS2键盘。在PC系统中广泛使用PS/2键盘具有价格低、通用可靠,按键较多,且使用连接线少(仅使用2根信号线)的特点,并可满足多种系统的要求.因此在单片机系统中应用PS/2键盘是一种很好的选择。使用Keil C51开发的驱动程序接口和库函数可以方便地移植到其他单片机或嵌入式系统中.所有程序在Keil uVision4上编译通过,在单片机上也能测试通过。
PS2键盘控制示意图:
方案论证及选定:选择PS2键盘。本设计中针对不同音频,分成低、中、高音,需要21个按键,再加上键盘指示选择等供需36个按键,矩阵键盘远远不能满足按键所需数量,还要扩展另外的IO,因此选择PS2键盘,简单方便,按键数量能够满足设计要求。
作品特色
我们的多功能电子琴,除了可以弹奏发出基本音符的功能外,还设置了自动播放歌曲。在弹奏时,可以选择有无提示模式。根据提示就可弹出耳熟能详的歌曲。为了增加趣味性,我们还在有提示弹奏的模式下加了错误率提示功能,可以在弹奏的同时练自己对键盘的熟悉程度。这样就使电子琴的功能得到了扩展,使其不仅限于简单的弹奏。同时,我们的电子琴的功能都具有可操作性,因为虽然我们本次设计由于时间的关系完成的比较简单,但我们还会在此基础上不断增加新的功能,使其更具有实用性。
系统演示视频:http://v.eepw.com.cn/video/play/id/2728