基于单片机的微型电子琴研究与设计Word格式.docx
- 文档编号:18524297
- 上传时间:2022-12-19
- 格式:DOCX
- 页数:41
- 大小:735.94KB
基于单片机的微型电子琴研究与设计Word格式.docx
《基于单片机的微型电子琴研究与设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的微型电子琴研究与设计Word格式.docx(41页珍藏版)》请在冰豆网上搜索。
由于计算机技术的应用,才使电子琴这一乐器为广大消费者所欢迎。
音乐在当时的普及使得它变得越来越大众化,这不仅有助于陶冶人的性情,更无形中推动了其发展[3]。
我们都会抽空欣赏世界名曲,作为对精神的洗礼单片机的功能十分的强大,以其强悍的性能和方便的操作编程使得它变成人们心目中最为适合的元件。
而且,作为电子琴的最好的一部分,在当时看来也是一种无可匹敌的地位。
它在现代音乐扮演着重要的角色。
本论文设计一个基于单片机的简易电子琴。
对于电子琴的各项功能的表现,人们也是产生了浓厚的兴趣。
其中具体表现在自动播放功能的实现,对于音色的选择,声音大小的调节等。
1.2国内外电子琴研究现状及发展趋势
目前市场上的电子琴产品林林总总,五花八门,从技术角度来看,国外产品
还是稍微处于领先地位。
YAMAHA是当今国内电子琴市场的第一品牌,而CASIO,KAWAI、JVC等品牌始终处于配角地位。
究其原因,YAMAHA的技术始终处于世界领先水平。
当美国人制造的哈蒙德电风琴在全世界风靡一时之际,东方的日本却在默默地进行模仿研究,籍着新器件技术的发展,日本YAMAHA公司于1959年制造了世界上第一台双排键电子琴:
D-1,并以Electone作为注册商标。
D-1实际上是哈蒙德琴的翻版,但由于采用先进的晶体管技术,内部电路和综合性能都有相当的进步。
后来更发展出FS、ME、HS、EL等众多系列,确立YAMAHA的双排键电子琴霸主地位。
电子琴与其他电子产品一样,总是跟随电子技术的革新而换代的。
按音源发生原理分,双排键电子琴发展可分为4个阶段模拟音源时期。
二十世纪五、六十年代,电子元件正值电子管与晶体管的交替换代,双排键电子琴音源普遍采用晶体管构成分立元件音源发生器,通过分频电路产生音阶,音色也多是分立元件的模拟电路产生,以管乐音色为主,加以颤音的夸张修饰,可用的声音效果也屈指可数,总体听觉四不像,电子味浓,和弦伴奏也比较简单。
FM音源的时期。
七、八十年代,YAMAHA公司发明了FM(调频)音源技术,并迅速应用到其电子琴和电子合成器产品上。
由于它采用合成技术,甚至可以制造出自
然界不存在的声音和效果。
电子琴利用了更好的FM音源,使得其一跃成为最好用的乐器,并且排除了各种可能出现的问题,像是音色模糊等。
音乐的表现也是十分强劲,变得更加明亮,清脆[4]。
这时期的双排键加入颤音敏感键盘,声库存贮特性,演奏更方便、更具活力。
处于PCM的时期。
大约在八十年代的中期,PCM技术得到飞速发展,人们利用PCM技术对于纯真的音色经过技术处理,使得其变得成当时更为好的音响,也同时褪去了人们所诟病的声音不柔软,不悦耳。
这种技术和FM技术的结合,创造了更贴近人们真实的生活环境的音色。
这时双排键普遍采用FM和AWM(即PCM音源)双音源[1],并增强了音色编辑和节奏音序编程,引入了MIDI接口,和触键键盘技术。
表演能力得到加强。
目前在国内现有的条件中,对于电子琴的创造有许多的方法,并且运用各种技术来对电子琴进行优化处理以及改进。
对于本次设计来讲,设计的原则是多功能的、低成本的、扩展性强的,尽量采用成熟技术,保证系统的稳定性和安全性。
因此,设计技术己经比较成熟,本次设计的目的是为了开发一种微型电子琴,适用于一些玩具和小型物件之上,产生需要的音色效果。
1.3本系统主要研究内容
作为现代科技发展的成果的体现,电子琴具有绝对的影响,作为一个时代的代表,它不仅是现代科技发展最直接的来源,更能说明当时人们对于音乐及美好事物的喜欢和向往。
正是这些的存在,极大的丰富了人们的生活。
它在对教育事业的贡献也是直接的体现,特别是对于电子音乐的结构化,使得老师在利用音乐进行教育时,能够更加的方便表达,也使得学生对音乐的兴趣变得更为浓厚。
本文主要是研究电子琴的原理,设计硬件电路和软件程序设计,调试等,主要有以下几个方面:
(1)关于单片机AT89c51的相关知识,以及电子琴的相关知识。
(2)电子琴的方案设计,通过不同的研究方法,选择合的设计方案。
(3)硬件电路设计。
软件程序设计。
2微型电子琴的基本原理及需求分析
2.1电子琴基本原理[2]
传统的乐器都靠的是以机械振动的方式产生,但是电子琴的原理却是独树一帜。
旧式的电子琴的合声以及模拟声音的方法是利用FM频率以及振荡器的特点来实现,下图1为其运行的工作原理图:
图1老式电子琴原理框图
振荡器可以产生各种不同频率的振荡信号,然后这些信号通过分频器分解成不同的频率信号然后送到放大器,经过扬声器发出声音,但是其中需要借助键盘的开关作用,保证输出的音色是人们需要的。
其中振荡器和分频器是整个老式电子琴的关键,振荡器一般由LC电感的三点振荡的电路构成,而分频器是一个双稳态电路,需要说明的是电子琴都统一采用的是二分频电路,这时因为音乐中的基本音阶的频率都是按照一定的规律排列的,一个音的频率刚好是比它低八度的频率的两倍,因此只要把一个音的频率除以2就可以得到比它低八度的一个音的频率。
老式电子琴的缺点也是很明显的,由于需要硬件器材实现,这就对系统的稳定性提出了更高的要求[5]。
现代电子琴的发展离不开MID工技术,可以通过发送音符的MID工命令,使得声音经过合成器后发声,与老式的电子琴通过振荡、分频发声式完全不同的
技术。
而现代电子琴的工作原理是使用PCM或AWM的采样音源的方式来模仿传统乐器的音色,一般原理是采样录制乐器的声音[8],然后将其数字化后的存在ROM中,然后按下键盘依靠CPU来回放该音,再加上滤波器和振荡器来制造和编辑各种音色。
基于单片机的MIDI工电子琴设计原理图如图2所示:
图2基于单片机的MIDI电子琴设计原理图
电子琴经过几十年的发展其技术己经相当成熟,己经到了一个崭新的阶段,
随着科学技术的不断创新和人们对乐器的需求,市场上出现了各式的不同功能的乐器,由于在原理上有相同的地方,通过技术手段,使得微型电子琴的诞生也变得顺理成章。
微型电子琴的实现是通过单片机自带的频率产生的,由于功能方面有着其他乐器无法比拟的出色效果,越来越多的人开始选择功能全面的微型电子琴。
其中电子琴的微小化是一个主要的发展方向,微小化的电子琴可以应用到各种小型儿童玩具、小型工艺等中,使得人们的生活更加丰富多彩。
通过键盘控制来实现声音的演奏,其主要原理可见图3所示:
图3微型电子琴原理图
电子琴的设计以AT89C51单片机为核心控制元件,设计中应用中断系统和定时/计数原理控制演奏器发声,对音乐发生所必须确定的音符和节拍分别用程序语言实现。
通过调试微型电子琴的核心模块,来使电子琴达到我们想要得到的效果。
扬声器,键盘等固件是重要的组成部分是通过软件的编写设计和硬件电路来实现。
最后通过不断地调试,运行达到可以实现不同的功能。
它的特点是设计思路简单、清晰,成本低。
单片机因体积小、功能强、价格低廉而得到广泛应用。
AT89C51单片机设计微型电子琴的方法,仅需AT89C51最小系统,扩展一组矩阵键盘,再接一组发光二极管用来指示电子琴的工作状态[17]。
本系统可以分为两个部分,一个是音乐;
另一个就是电子琴。
音乐播放部分:
乐音实际上是有固定周期的信号。
本文介绍用AT89C51的两个定时器(如T0,T1)控制,在P3.7脚上输出方波周期信号,产生乐音,通过矩阵键盘按键产生不同的音符,由此操作人员可以随心所欲的弹奏自己所喜爱的乐曲,当不想弹奏时通过按放歌键可以演奏事先存放在单片机中的几首动听的曲子供消遣。
当歌曲演奏完时,通过按复位键便可回到初始状态,这样就做出了一台微型电子琴。
由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,乐曲中,每一音符对应着确定的频率,我们将每一音符的时间常数和其相应的节拍常数
作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。
根据单片机的功能特性,我们利用它可以产生不同频率,通过计数器/定时功能从而得到方波信号。
这就需要我们把最重要的部分即音阶和频率一一对应。
而对于实用部分,我们可以通过计算处理后把不同按键的对应部分通过软件传达给微型电子琴的大脑,再以指针的形式表现出来即可得到我们想要的。
2.2系统需求目标
2.2.1主要芯片介绍[7]
AT89C51是一个低功耗的,高性能的CMOS8位单片机,片内包含有4kBytesISP的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89c51可为许多嵌入式控制应用系统提供高性价比的解决方案。
电子元器件AT89c51的最大的特点是:
拥有16位的可以编程的定时计数器2个,外部双向输出/输入口端32个,引脚40个,内程序储存器,全双工穿行通信口2个,片内时钟振荡器,随机存取数据存储器[9]。
此外,AT89C51的设计和配置了振荡频率可为0Hz并可通过软件设置省电模式的。
当机器停下的时候,中央处理器就会暂时的停止工作,但是随机存取存储器的定时计数器,外中断系统以及串行口可以继续工作,停止芯片直到硬件复位直至外中断激活状态,模式化掉电的冻结振荡器就保存随机存取存储器的数据上。
为了能够满足市场对产品的不同需求,设计了三种不同的封装形式,有PLCC,PDIP以及TQFP。
图4AT89C51的引脚排列
2.2.2主要的功能及特性[5]
(1)32可编程I/O线;
(2)4K字节可编程闪存存储器;
可编程串行通道;
(3)寿命:
1000写/擦循环;
(4)两个16位定时器/计数器;
(5)全静态工作:
0Hz-24MHz;
(6)三级程序存储器锁定;
(7)与MCS-51兼容;
(8)128×
8位内部RAM;
(9)数据保留时间:
10年;
(10低功耗的闲置和掉电模式;
(11可编程串行通道;
4K字节可编程闪存存储器;
(12)5个中断源;
(13)片内振荡器和时钟电路。
本次设计主要针对玩具琴的、音乐转盘的以及音乐童车等,实现电子琴的微型化,因此对音色的要求不高,设计中使用单片机控制的,实现简单音乐的发声,键盘采用16个的音节,用户可以通过键盘随意演奏然后通过扬声器将音乐播放出来,达到较为理想的音质。
2.3系统功能需求[10]
本次设计作为研究性的课题,对微型电子琴系统的功能和性能都没有极其完整和精确的要求,本系统的功能需求有自动播放功能、基本琴键功能、音量调节功能共3种。
图5系统功能需求
2.3.1基本琴键功能[11]
当键盘的形式是矩阵时,在形成交叉的垂直线和每条的水平线是不存在直接连通的,它是通过一个按键连接。
有许多情况是,有键盘有许多的按键,通常的做法是把它们排成矩形,这是为了使I/O口占用的情况得到减少。
因此,矩阵的方式应用到键盘上,是在键盘要很多的键的时候,这样做比较好。
而且,端口有16个按键,就比以前的方法多了许多。
为了让区别的更为明显,线数也就变多了。
键盘采用的是矩阵形式的需要的比较复杂,而且识别也不存在简单,输入是
通过列线的I/O口来连接,输出端则是将行线接的I/O口也就是单片机的。
电阻是通过列线连接电源的正极。
低电平时行线来输出,如果输入线有被拉低的情况发生,就是有键位被按下了。
因此,通过这种方法就能判按键的状态。
高电平时输出端,意思就是键位没有被按下去,但是,如果有按键被按下去,就会发现它的输入线拉低了,即低电平就是行线输出的。
2.3.2自动播放乐曲功能
我们本次设计的简易电子琴另外还有音乐存储功能,能自动演奏歌曲。
我们首先通过编程把几首曲子写入到系统中。
当要播放音乐时,按下音乐播放按键,系统就会识别按顺序播放音乐,当一首音乐结束了按下下一键就会播放下一首歌曲。
2.3.3音量调节功能
这次设计还考虑到乐曲在播放的状态中的音量的问题。
我们需要根据演奏者和听众对音量的需求来进行音量的高、低的调节。
音量的实现原理是通过数字功率放大器对音频信号进行处理,在发送可以调节的大小连续的音频信号至扬声器。
2.4系统性能需求
我们对于本系统设计的微型电子琴的性能要求不高,主要是针对音乐转盘、玩具琴和音乐童车等等,因此本系统的性能要求如下图6所示:
图6系统性能规格要求
2.5开发环境
本系统的开发环境如下图7所示:
图7系统性能规格要求
3微型电子琴设计
3.1设计原理
由于歌曲的不同是由于音阶的组成不同,可以通过改变不同的频率组合来产生不同的音乐,这包含了一定的道理,因为频率和音阶是互相对应的。
不同的频率可以用单片机来实现,即单片机的计数器/定时来实现方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。
半周期的时间的计算可以利用公式得到,通过先算出要得到的音频周期除以2就可以的到音频脉冲。
重复计算定时器半周期时间。
P3.0反向输出。
计时反向。
就可在P3.0脚上得到此频率的脉冲[12]。
通过改变计数值TL0和TH0以产生不同频率的方法产生不同音阶,利用的是AT89C51内部定时器使其工作计数器模式。
比如,频率为523Hz,周期为T=1/523=1912μs,所以令计数器计时956μs/1μs=956,每计数956次时将I/O反相,便可得到中音DO。
计数脉冲值与频率的关系式是:
N=fi/2/fr
式中,N是计数值;
fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);
fr是想要产生的频率。
其计数初值T的求法如下:
T=K-N=K-fi/2/fr
式中K是单片机的16位定时器最大计数值,K=216=65536;
fi是机器频率,fi=1MHz,例如低音DO(262Hz)、低音RE(294Hz)、中音DO(523Hz)、中音RE(587Hz)、高音DO(1046Hz)、高音RE(1175Hz)的计数值如下:
T=65536-N=65536-fi/2/fr=65536-1000000/2/fr=65536-500000/fr
低音DO的T=65536-500000/262=63628
低音RE的T=65536-500000/294=63835
中音DO的T=65536-500000/523=64580
中音RE的T=65536-500000/587=64684
高音DO的T=65536-500000/1046=65058
高音RE的T=65536-500000/1175=65110
通过对歌曲的乐理知识的了解,会有不同的理解。
所以有不同的频率产生音乐也是能够得到的,而且不同的脉冲有不同的频率。
这样的计数器/定时会产生不同的信号如方波频率信号。
所以需要知道其中不同的关系。
程序设计内容包括按键识别和音符产生,这里重点描述关于音符的产生方法。
每个不同的音符对应着不同的频率,利用单片机内部定时器T0结合I/O端口来产生不同频率的方波信号,改变T0的计数值即可改变不同的音符。
当单片机采用12MHz晶振时,高、中、低音符与单片机定时器T0计数值的关系如下图8所示。
音符
频率(HZ)
简谱码(T值)
低1 DO
262
63628
#4FA#
740
64860
#1 DO#
277
63731
中5SO
784
64898
低2 RE
294
63835
#5SO#
831
64934
#2RE#
311
63928
中6LA
880
64968
低3M
330
64021
#6#LA
932
64994
低4FA
349
64103
中7SI
988
65030
370
64185
高1DO
1046
65058
低5SO
392
64260
#1DO#
1109
65085
415
64331
高2RE
1175
65110
低6LA
440
64400
#2RE#
1245
65134
#6
466
64463
高3M
1318
65157
低7SI
494
64524
高4FA
1397
65178
中1DO
523
64580
1480
65198
554
64633
高5SO
1568
65217
中2RE
587
64684
1661
65235
622
64732
高6LA
1760
65252
中3M
659
64777
1865
65268
中4FA
698
64820
高7SI
1967
65283
图8高、中、低音符与单片机定时器T0计数值的关系
3.2系统控制模块分析
方案一:
把带有220V的交流电通过变压器进行降压,然后通过滤波、整流,就能够得到一个直流的电压,大小为13.5v。
制作电子琴的过程可以采用可控的硅。
将单向可控硅SCR和电阻、电容组成驰张振荡器电路。
但该设计方案制作成本高且复杂。
方案二:
用AT89C51的单片机对其进行把握,但是AT89C51本身是没有ISP
级别的,所以说Atmel的停产以及几乎消失不见踪影,而且只读内存只有4K,并不存在升级的可能。
方案三:
运用AT89C51的单片机来操控,因为它物美价廉,十分符合对智能化的需求,并且内部程序的空间存储为8K,本身内存较大使用需求方便快捷,以后还有足够空间进行升级,它的抗干扰性能很强,使用起来也很便捷。
选择方案:
鉴于上述对比与分析,AT89C51单片机设计微型电子琴的方法,仅需AT89C51的最小系统,扩展一组矩阵键盘,再接一组发光二极管用来指示电子琴的工作状态。
所以,我们本次的设计采用方案二。
3.3微型电子琴的系统原理框图
根据设计所需要的条件,本系统是采用的硬件部分是把AT89C51单片机为重点,并且列出其他部分所需要的各个元器件,最后根据设计原理,最终设计系统的原理框图[13]。
AT89C51单片机工作环境是需要在时钟频率在12MHZ的条件下进行,这次为了能够让设计出的微型电子琴能顺利实现各部分功能,需要得到频率不同的脉冲信号,通过定时/计数器来得到。
在使用过程中,弹奏音乐先可以按下键盘上的按钮来的得到,然后系统里的AT89C51单片机根据按键感应,通过查到对应的频率,从而得到不同的声音,最后从扬声器里发出我们想要得到的声音。
这次得到的系统功能是不需要由程序来掌控,而是根据使用者的需求自主的掌握,其中的原因是主要是AT89C51单片机本身不具备驱动,需要通过借助外部的力量,通过音频脉冲驱动再经扬声器发出声音,才能实现这部分的功能。
本系统的各个部分在下面将一一介绍。
图9系统原理框图
3.4系统硬件需求
3.4.1管脚功能[14]
VCC:
供电的电压。
GND:
接地。
P0口:
P0口的特性是具有8位漏级开路双向I/O口一个,并且用来吸收8TTL门的电流的是它的每一个脚。
P0作为外部的程序数据存储器,地址/数据的第八位就是它。
当进行FLASH编程的时候,原码输入口是P0,在开始FLASH校验的时候,输出原码是P0,P0的外部一定被拉高。
当P1口的管脚用来第一次写1时,高阻输入于是就被这样判定。
P1口:
P1口则是电阻上拉的拥有8位的双向I/O口,P1口收到输出的4TTL门电流是来自缓冲器。
当P1口被外部的下拉成低电平的时候,电流会被输出,P1口的管脚写进1,被内部上拉为高,能够当做是输入,因为内部的上拉。
当进行FLASH校验和编程,用来接收第八位地址的是P0口。
P2口:
P2是内部上拉电阻的双向8位I/O口,P2口缓冲器能够接收,4个输出TTL门电流,P2运用在16位地址外部数据存储器进行存取口或外部程序存储器时,P2口输出地址的高八位。
当P2口被写1时,它的管脚被内部上拉电阻拉高,并且当作输入。
并因此作为输入时,P2口的管脚被外部拉低,能够输出电流。
究其原因跟内部上拉的缘故。
P2口在FLASH编程和校验时控制信号和接收高八位地址信号。
在给出地址“1”的时候,利用内部上拉特点的方法,对外部八位地址数据存储器进行读写时,P2口输出它的特殊功能寄存器的内容。
P3口:
P3口的管脚是由带内部上拉电阻的8个双向I/O口,并且能够收到输出TTL门电流4个。
P3口写入“1”之后,其被内部上拉成为高电平,能够用作输入。
由于输入,是因为它的外部下拉成为低电平,P3口会输出电流是因为上拉的原因。
P3口的其他特殊的功能:
P3口管脚备选功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INTO(外部中断0)
P3.3/INT1(外部中断1)
P3.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 微型 电子琴 研究 设计