摘要随着电子技术的发展,电子技术正在逐渐改善着人们的学习、生活、工作,电子技术与音乐的结合正在不断加深。
因此开发本系统希望能够给人们多带来一点生活上的乐趣。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。
本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
关键词:AT89C51矩阵键盘,LED显示管,扬声器。
目录摘要 (I)目录 (II)1 引言 (1)1.1 研究背景及意义 (1)1.2 研究现状和发展趋势 (1)2 硬件设计 (2)2.1 总体设计方案 (2)2.2 电子琴组成原件的概述 (2)3 软件设计 (4)3.1 keil 软件的任务 (4)3.2 proteus的界面实现 (6)4 系统调试与实验 (7)4.1 程序调试 (7)4.2 硬件调试 (7)5 总结 (8)参考文献 (9)1 引言1.1 :研究背景及意义基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。
单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。
鉴于传统电子琴可以用键盘上的“kO”到“k16”键演奏从低So到高DO等16个音,从而可以用来弹奏喜欢的乐曲。
该设计具有以下优点:(1)可以随意弹奏想要表达的音乐;(2)制作简单,成本低。
(3)比传统电子琴功能更完善。
1.2 研究现状和发展趋势单片机出现的历史并不长,但发展十分迅猛,在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。
目前单片机已用于工业控制、机电一体化设备、仪器仪表、信号处理、现代兵器、交通能源、商用设备、医疗设备及家用电器等各个领域,随着单片机性能的不断提高,它的应用将会更加广泛。
随着社会的进步,音乐逐渐成为我们生活中很重要的一部分。
电子琴及其音乐播放器是自弹音乐和播放储存音乐为一体。
我们对于电子琴如何实现其功能,如音乐选择、声音强弱控制、自动放音功能等等也很好奇。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演者重要的角色。
随着发展我们对电子琴的要求越来越高,而随之诞生的便是电子琴与音乐播放器集一体的新型电子琴。
2硬件设计2.1总体方案设计本系统设计制作一个可演奏的电子琴。
综合应用了两项设计。
(1)键盘矩阵识别。
即矩阵扫描,显示当前按键。
(2)不同频率音符播放。
可以通过按键控制16种发音。
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器TO来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。
方案设计如图所示。
开姑TD叨给化芥开中断允的TO中斯根畫按寵欧能,哽人盲符TIE到TO中解盘按;融成功聲A-*停止TD工作~'h _______________ ___________________ JL -------------------- ——图2-1方案设计流程2.2电子琴组成原件的概述:2.2.1 AT89C51 :AT89C51 是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory 的低电压,高性能CMOS位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 勺AT89C51是一种咼效微控制器,AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图 2-2-1 AT89C51 结构2.2.2矩阵式键盘:首先判断键盘有无键按下,即把所有的行线均置为低电平,然后再检查各列 线的状态,若列线不全为高电平,则表示键盘中有键被按下;若列线全为高电平, 则表示键盘中无键被按下。
在确认有键被按下后,即可进入确定具体闭合键的过程。
判断闭合键的位置,其 方法是依次将行线置于低电平,在逐行检查各列线的电平状态。
若某列为低,则 该列线与行线交叉处就是闭合的按键。
」土」U2>KTAL1XTAL2RSTPO.Q/ADOPO.1/AD1P0.2/AD2 P0.3/AD3P0.4/AD4PO.5JVi.D5PO.5^06 P0.7/AD7PSEN ALE EAP2J0/A8P2.1/A9P2.2/A10 P2.3/A11 P2.4/A12P2.S/A13 P2.6/A14P2.7/A1SP3.0JRXTP3.1 fTXDP3.2*JT0 P3.31NTTP3.4H0P3£/T1_P3.&/歴psiypo -4 3 i 1-2345G ir2i±^豆丄 :一::;一■--- .........P1.0 P1.1Pl 6AT69C51223硬件总体设计图:3软件设计3.1.1 keil 软件的任务若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2, 即为半周期的时间。
利用定时器计时半周期时间,每当计时终止后就将 P1.2反 相,然后重复计时再反相。
就可在 P1.2引脚上得到此频率的脉冲。
利用STC89C51的内部定时器使其工作计数器模式(MODE1下,改变计数值 THO 及TL0以产生不同频率的方法产生不同音阶,例如,频率为 524Hz 其周期 T = 1/524 = 1912卩s ,因此只要令计数器计时 956卩s/1卩s = 956,每计数956次 时将I/O 反相,就可得到中音DO(524Hz )。
计数脉冲值与频率的关系式是: N = fi - 2-fr式中,N 是计数值;fi 是机器频率(晶体振荡器为12MHZ 寸,其频率为1MHZ ; fr 是想要产生的频率。
其计数初值T 的求法如下:T = 65536- N= 65536- fi - 2-fr例如:设 K = 65536,fi = 1MHz 求低音 DO(262HZ )、中音 DO(524HZ 、 高音DO( 1046HZ )的计数值。
T = 65536- N= 65536- fi - 2-fr = 65536- 1000000- 2-fr=65536- 500000/fr低音 DO 的 T = 65536- 500000/262 = 63628 中音 DO 的 T = 65536- 500000/524 = 64580 高音 DO 的 T = 65536- 500000/1046 = 65058单片机12MHZ 晶振,高中低音符与计数T0相关的计数值如表所示巴口 LibE-E ■■I' B- ■F=:UiTtC»IF :,QF22M FZ30M1 尸? u K-5fet3 S r 1-1FZ70MB3 '扌~ir~RPITE4T图2-2-3 电路原理图rm心—左! □<= 6・・ FFFBFF FFFI1乩_ IC◎車丄 PS j.CTTF-3 4JTD0 1ETF~=- 0TE- ■ pl E -T表3-1-1音符频率表音符频率(HZ简谱码(T值)音符频率(HZ简谱码(T值)休止00中4 FA69864820低1 DO26263628中5 SO78464898低2 RE29463835中6 LA88064968低3 M33064021中7 SI98865030低4 FA34964103高1 DO104665058低5 SO39264260高2 RE117565110低6 LA44064400高3 M131865157低7 SI49464524高4 FA139765178中1 DO52464580高5 SO156865217中2 RE58864684高6 LA176065252中3 M66064777高7 SI1967652833.1.2 Keil 程序编译界面如图:闯I 段二彗pVi5icn4fill Ed ft View Ptojed; F鄭h Dtbuq Penp-Mrifs Todis WCS Windw Hdp>图3-1-2 keil程序编译界面旦tj Tirg#t 1til f_i Source Group 1> 上M- n JJcamilina 4.^FS.c.*.l&nn^g ・・ *Fiomwi Sisc; da^a-13^0 xdflta-O code-8^2 cxe^ui^gHex CXle 工E*”电子琴■电+ —■电二-Q Errcr (a t r 3Waimiiata).3.2 Proteus的界面实现.图3-2 Proteus 的界面实现按键显示KEY 0键按下,播放DO低音;(相应频率:262)KEY 1键按下,播放RE低音;(294)KEY 2键按下,播放Ml低音;(330)KEY 3键按下,播放FA低音;(349)KEY 4键按下,播放SO低音;(392)KEY 5键按下,播放LA低音;(440)KEY 6键按下,播放#6LA# (466)KEY 7键按下,播放SI低音;(494)KEY 8键按下,播放DO中音;(524)KEY 9键按下,播放RE中音;(588)KEY A键按下,播放MI中音;(660)KEY B键按下,播放FA中音;(698)KEY C键按下,播放SO中音;(784)KEY D键按下,播放LA中音;(880)KEY E键按下,播放#6LA;(932 )KEY F键按下,播放SI中音(988)4系统调试与实验4.2硬件调试:(3)按任意键盘,数码管显示所按下的键盘数,扬声器发出相应的音符:将程序生成的HEX文件导入硬件电路中的单片机中,进行调试,随着按下不同的键,单片机发出不同的声音,并且LED显示所按下的键的号码。
如图:图4-2电路实际调试4.1程序调试:(1)Keil下编译,生的HEX文件。
(2)开启本系统,数码管显示产生目标HEX文件,Proteus下Programme Files选择产该程序中设定LED灯的初始显示为0x40,如下图,图4-1 LED初始化1U2HUE輕pz'ixvP7JAQ niA,r 田貝PZ JiAQE•■昌存耳1小罗AUnrFUJI JUDnw ■ ■n-mjjmFMA»RXalAaPTUIJUB!ra- iif¥ZU9B■ ■;oi ■71丙少・rv>Mv^nn^~5 总结将程序导入AT89C51芯片,调试成功后,可任意弹奏自己想要的旋律。