《基于at89c52单片机的简易电子琴设计》由会员分享,可在线阅读,更多相关《基于at89c52单片机的简易电子琴设计(29页珍藏版)》请在金锄头文库上搜索。
1、滨江学院题 冃简易电子琴设计滨江学院专 业电子信息工程学生姓名张盛杰20092305017指导教师吴大中二0三年五月二十五日声明本人郑重声明:持以“求实、创新”的科学精神从事研宄工作。本论文是我个人在导师指导下进行的研究工作和取 得的研宄成果。本论文中除了引文外,所有实验、数据和相关材料 均是真实的。本论文中除引文和致谢的内容外,没有抄袭其他人 或其他机构已经发表或撰写过的研宄成果。其他同志对本研究所做的贡献均已在论文中作了声 明并表示了谢意。作者签名:日 期:1.引言 1(1) 工作原理12.1电子发音原理 12.1.1音调22.1.2节拍42.2设计可行性42.3设计指标5(2) 硬件电路
2、53.1简易电子琴的组成框图53.2芯片选用63.4键盘设计74.软件设计84.1主程序流程图 84.2程序设计内容 91. 调试11 5.1 Proteus 简介 115.2 keil 简介 115.3仿真步骤122. 总结14 致谢14 附录16简易电子琴设计张盛杰南京信息工程大学滨江学院09电子信息工程专业,南京210044摘要:本论文主要基于AT89C52单片机进行的简易电子琴设计。通过LCD显示屏、喇叭、键盘等外部器件,使用按键实现各 种音调和音符的输入,LCD显示屏进行被操作的按键显示,用放大电路实现低音频信号的功率放大,最后经过调试用喇叭播 放相关音乐。本设计的优点是安全,硬件电
3、路比较简单,缲作起来便捷容易上手。关键词:单片机;电子琴;LCD显示屏1.引言电子技术伴随着现代社会科学技术的快速发展,它己经改变了人们生活的各个方而,电子琴作为一种新型 的的键盘乐器是音乐与现代电子科学技术发展相结合的产物,虽然没有其它乐器那么多鲜明的特点,但是 它的简单易学已经让它在现代咅乐中占到了一个很重要的位置。而单片机具有强大的编程实现特性和灵活 的控制功能,它成为了电子琴中不可替代的重要一部分,本设计的主要任务是用AT89C52单片机作为核心 控制元件,设计一个简易电子琴,主要介绍了电子琴硬件系统的组成并对相关软件程序方面做了相关的分 析研究和调试。虽然单片机产生的时间并不是太长,
4、但它的发展速度令人惊讶,它的髙水平发展在集成度、可靠性、速度、 应用等领域表现的淋漓精致。随着单片机性能的不断提高,它的应用变得更加广泛,目前它已用于工业控 制、机电一体化设备、仪器仪表、信号处理、现代兵器、交通能源、商用设备、医疗设备及家用电器等多 个领域。单片机技术的发展速度非常之快,R前的产品都致力于在各个功能方面进行更加企面的设计研宂; 在社会消费的需求竞争之下,尽可能地利用单片机的最新技术来研制其应用系统,再利用单片机灵便、性 价比高等特点,来确保所设计出来的产品能够具有强大的竞争力和存活力。在社会活动的各个方而中, 始终都有单片机的身影;从简易的到复杂的,各个地点,凡是能看到的地方
5、几乎都有使用单片机的需求。 里然现在单片机供应的应用已经普及开来了,但还是有许多单片机尚未涉足到的地方,因此,单八机的应 用和需求在现在现代社会的运用中还是有发展的。电子琴在当前的咅乐玩具市场上是一个非常好的应用方而。单片机技术使我们可以利用软硬件开发山电子 琴功能,从而实现电子琴的微型化,可以用作教学琴、玩具琴等。还可以对相关功能作出一些拓展。参照 传统电子琴可以用键盘上的“k0”到“k8”键演奏从低So到高DO等8个音,从而可以用来弹奏喜欢的乐 曲。工作原理声音是周围空气的震动,音调取决于震动的频率,频率越高音调越高。电子琴按下不同的琴键就会发出不 同音调的声音,其实就是产生不同频率的震动
6、。单片机电子琴就是利用单片机产生不同频率的电压波形, 推动扬声器或蜂鸣器來发出不同音调的声音。假设电子琴有八个音阶,就对应8个不同的频率,频率越高 音调就越高。单片机很容易输出方波信号,那么只要让它产生不同频率的方波就可以了,然后用这个方波 信号驱动扬声器就可以了。单片机的按键可以模拟琴键,按下不同的按键就对应不同的频率的方波,就能 发出不同频率的声音。2.1电子发音原理由于单片机的强大功能,除了在测试控制领域中有着广泛的运用外,还有一些简单而有趣的应用。比如, 驱动单片机可以使蜂呜器和扬声器发出声咅,还可以控制其发出不同的声调,从而连接起来构成一个曲子。0前,市场上有很多种音乐模块和音乐芯片
7、,可以直接产生各种曲子,但是,这种模块价格比较昂贵,电路结构比较复杂,如果系统中仅需要产生简单的咅符或者简单的曲子,可以使用单片机配合扬声器产生 需要的音乐效果。一般来说,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐波频率。单片机 演奏的音乐基本上都是单音频率。因此单片机演奏音乐比较简单,只耑要清楚“音调”和“节拍”。在这 两个当中,音调表示某个音符所表现的频率的高低程度;节拍表示某个音符所表现的时间长久。音乐播放 在本系统中,一般只需按顺序播放音符即可。用单片机播放音乐的方法如下:复位单片机定时器将乐谱中的各个音符的音调及节拍转换成各个对应的音调和节拍参数将乐谱中音符
8、的参数做成数据表格存放在存储器中(4)通过程序取出一个音符的相关参数如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。2.1.1音调音调是音乐学中的名词,与平时所说的音高十分相似。在音乐中标准音高为中音(:上方的A音,它的频率 是f = 440Hz,把其它的音和它进行比较。/,和/,为两个不同的音符,如果其中一个音符的频率是另外一个音符的两倍时,即/、二/,2时,则称/比/,要高出一个倍频程。在音乐中音符1 (do)与音符i之间其中一个的频率正好是另外一个音符频率的两倍,它在音乐学中被称 为相差一个八度音。在一个八度音里,有12个半音。以1-i八音区为例。12个半音是:1-#1
9、, #1-2, 2#2, #23, 34, 4#4, #45, 5#5, #56, 6#6, #67, 7 i o 由于人耳的听觉效果,这 12 个音 节的分度基本上都是以对数关系来划分它们的。因此,只需要知道这12个音符的音高,也就是它们基本 的咅乐的频率,就可以根据咅符之间的倍频程关系得到其他音符基本的音调频率。在知道了一个音符的频率后,就可以让单片机发出相应的频率所对应的的振荡信号,从而产生相应的音符 声音。常采用的方法是通过单片机的定时器进行定时中断,在中断服务子程序中将单片机上外界扬声器的 I/O 口来回置高电平或置低电平,从而让扬声器发出声音。为了让单片机发出不同频率音符的声音,只
10、需 将定时器预置不同的定时值來实现。以标准音高A为例:标准音高A的频率f=440Hz,其对应的周期为:7 = 1/ f ms(2-1)因此需要在单片机T/0 口输出周期为T=2272us的方波脉冲,如图2-1所示图2-1单片机控制音调示意图由上图可知:单片机输出高电平和低电平信号均为:r = 772 = 1136奶(2-2)也就是说,单片机上定时器的中断触发时间为1136ns。如果单片机采用定时器工作方式1,它的U数脉冲 为振荡器的十二分频信号。如果外接晶振的振荡器频率为fO,那么定时器的预置初值由下式來显示:t = 12x (Count - 7T) +(2-3)式中,Count = 216
11、=65536,是定吋器将要确定的计数初值。所以定吋器的高低计数器的初值为:77/二 777 256 二(Count - Z x/12) + 256(2-4 )TL = 7T%256 = (Count-txfjl 2)%256(2-5)如果单片机外接12MHz的晶振,则f二12MHz,把t=1136us和f二代入上而的两式,随之可 J oJ 0以求出标准音高A在单片机定时器工作方式1下的定时器高低计数器的初值为:jy4 = 7T/256 = (65536-1136x12/12)-256(2-6)THa = 7T%256 = (65536-1136xl2/12)%256 = 90H(2-7)参考以
12、上的求法,我们就可以得出其他音调相应的计数器的预置初值。在单片机的晶振频率二12M/Z,定时器在工作方式1下定时器计数初值见表2-1音符频率/Hz计数初值音符频率/Hz计数初值低丨DO26263628# 4 FA #74064860#1 DO#27763731中5 SO78464898低2 RE29463835# 5 SO#83164934#1 RE#31163928中6 LA88064968低3 MI33()64021#6 LA#93264994低4 FA34964013中7 SI98895030#4 FA#37064185高1 DO104665058低5 SO39264260# 1 DO#
13、110965085#5 SO41564331高2 R E117565110低6 LA44064400#2 RE#124565134#6 LA#46664463ini 3 MI131865157低7 SI49464524高4 FA139765178中1 DO52364580#4 FA#148065198# 1 DO#55464633(nJ 5 SO156865217中2 RE58764684#5 SO#166165235#2 RE#62264732高6 LA176065252中3 MI65964777#6 LA#186565268中4 FA69864820局7 SI196765283表2-1晶振
14、频率/( = 12从/2定时器在工作方式1下定时器计数初值表2.1.2节拍43在一张完整乐谱开头,都有如1=C s 1=G等等的标识。这里1=C, 1=G标识乐谱的曲调,简单433的说就是跟音调有关系:这里的:r、ir用来表示节拍。对于音符的节拍,以ir为例。它表示乐谱中以四分音符为节拍,每一小节有三拍。1= GT的节拍示意图,见图1-2。在图中,总共有三拍:1、2为一拍,3、4、5为一拍,6为一拍。从时长角度看,1、2的时长为四分音的 一半,即为八分音符长;3、4的时长为八分音符的一半,即为十六分音符长;5的时长为四分音符的一半, 即为八分音符长;6的时长为四分音符长。34图2-2节拍示意图对于一拍的发音时间,如果乐曲没有特殊说明,一般说来,一拍的时长大约为40(f450mS。如果这里规定 拍的吋长为400ms,那么以叫分咅符为节拍吋,卩4分音符的吋长为400ms,八分咅符的吋长为200ms, 十六分音符的时长为100ms。从而,在单片机上可采用循环延时的办法来实现控制一个音符唱多长时间。首先要编写一个精确的基 本时长的延时程序,比如说以八分咅符的时长为基本延时时间,那么对于一个咅符,如果它是四分咅符, 只需调用四次延时程序,如果它是二分音符,则只需调用八次延时程序,以此类推。单片机电子琴演奏咅乐的方法:步骤一:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍数