简易电子琴设计实验报告.doc

上传人:laozhun 文档编号:2603083 上传时间:2023-02-20 格式:DOC 页数:14 大小:417.50KB
返回 下载 相关 举报
简易电子琴设计实验报告.doc_第1页
第1页 / 共14页
简易电子琴设计实验报告.doc_第2页
第2页 / 共14页
简易电子琴设计实验报告.doc_第3页
第3页 / 共14页
简易电子琴设计实验报告.doc_第4页
第4页 / 共14页
简易电子琴设计实验报告.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《简易电子琴设计实验报告.doc》由会员分享,可在线阅读,更多相关《简易电子琴设计实验报告.doc(14页珍藏版)》请在三一办公上搜索。

1、简易电子琴设计实验报告指导老师:谭建军老师班 级:0309409姓 名:周 博学 号:030940913 2011-12-7摘要:电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,它在音乐演奏中已成为不可缺少的一部分。单片机是一个具有功能强大和编程灵活性的控制器,它已广泛应用于现代人们的生活中,扮演着重要的角色。本设计主要是使用AT89C51单片机及单片机C语言,在PROTEUS仿真平台上实现以单片机为核心控制元件的一个具有16个按键的电子琴,同时还增加了音乐播放功能。本文中给出了该系统设计的硬件电路,软件设计等。其次,详细阐述了程序的各个模块和实现过程。本设计具有硬件电路简单、功能

2、完善、控制可靠、运行稳定等特点,具有一定的实用性和参考价值。关键词: 单片机;电子琴;PROTEUS;C语言一、电子琴的相关介绍1,电子琴的应用背景随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。并且可以进行一定的功能扩展。鉴于传统电子琴可以用键盘上的“k0”到“k16”键演奏从低So到高DO等16个音,从而可以用来弹奏喜欢的乐曲。电子琴是现

3、代电子科技与音乐结合的产物,是一种新型的键盘乐器,它在现代音乐扮演着重要的角色。简易电子琴是电声乐队的中坚力量,常用于独奏主旋律并伴以丰富的和声。还常作为独奏乐器出现,具有鲜明时代特色。但电子琴的局限性也是十分明显:旋律与和声缺乏音量变化,过于协和、单一;在模仿各类馆、弦乐器时,音色还不够逼真,模仿提琴类乐器的音色时,失真度更大,还需要不断改进。单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按

4、键和扬声器。本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。这次的电子琴是由4*4组成16个按钮矩阵,设计成16个音。然后再用一个音频放大模

5、块来使音乐播出的声音变大。通过这16个键的随意组合可随意弹奏想要表达的音乐,使用很简单。2,本实验中电子琴的设计思路单片机因体积小、功能强、价格低廉而得到广泛应用。AT89C51单片机设计微型电子琴的方法,仅需AT89C51最小系统,扩展一组矩阵键盘,再接一组发光二极管用来指示电子琴的工作状态。本系统分为两个部分,一个是音乐,另一个就是电子琴。音乐播放部分:乐音实际上是有固定周期的信号。本文介绍用AT89C51的两个定时器(如T0,T1)控制,在P3.7脚上输出方波周期信号,产生乐音,通过矩阵键盘按键产生不同的音符,由此操作人员可以随心所欲的弹奏自己所喜爱的乐曲,当不想弹奏时通过按放歌键可以演

6、奏事先存放在单片机中的几首动听的曲子供消遣。当歌曲演奏完时,通过按复位键便可回到初始状态,这样就做出了一台微型电子琴。由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。乐曲中,每一音符对应着确定的频率,我们将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。电子琴弹奏部

7、分:实际上就是把每个按键所对应的值经过处理后发给单片机,再在单片机内把数字当作指针指向所对应的音符。本设计要实现的功能有:由4X4组成16个按钮矩阵,设计成16个音。可随意弹奏想要表达的音乐。详细过程:当系统扫描到键盘上有键子被按下,则快速检测出是那一个键子,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。假如在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序,发出后按的键的音。二、系统分析1、系统的组成该系统通过电子琴按键随意键入所要表达的音符,作为电平送给主体电路,中央处理器通过识别,

8、解码输出音符,在扬声器中发出有效的声音。通过这样可以不断的弹奏音乐。嵌入式电路,按键电路,LED显示电路和两个功能键组成,通过功能键可以选择播放音乐。其主要模块由五个部分组成,具体关系如图2.1所示。图2.1 系统组成框图本系统的电路基本模块:51单片机中心、矩阵键盘模块、显示模块、发音模块、功能选择模块。2、系统工作原理 工作原理描述如下:打开电子琴电源开关后,电子琴默认为弹奏状态,弹奏显示灯点亮,数码管显示为0。按下矩阵键盘中的任意键,扬声器发相应的音调,数码管显示对应的数字。按下播放按钮,电子琴处于自动播放状态,播放显示灯点亮,此时,按下矩阵键盘中的任意键,扬声器发出存储在单片机内部的对

9、应的乐曲,数码管显示对应的按键数字。再按弹奏/停止键,音乐停止。弹奏显示灯点亮。此时系统又处于弹奏状态。三、系统的硬件设计1、系统硬件总的设计将设计的电子琴硬件部分进行模块化设计,主要分以下模块:(1)矩阵键盘模块:系统采用4*4矩阵键盘。(2)显示模块:系统采用LED显示管显示。(3)功能显示模块:采用发光二极管显示弹奏、播放两种状态。(4)发音模块:采用扬声器发音。(5)控制中心模块:AT89C51单片机。硬件整体电路图如图3.1所示。图3.1 硬件整体电路图2、AT89C51单片机介绍图3.2 AT89C51引脚分布图AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM

10、Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C51它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3.2所示。 AT89C51主要特性与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作

11、:0Hz-24MHz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路AT89C51管脚说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门

12、电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内

13、容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于

14、定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。EA/VPP:当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,将内部锁定为RESET;当端保持高电平时,此间内部程序存储器。在FLASH编程

15、期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。另外,P3口也可作为AT89C51的一些特殊功能口,如下所示。l 口管脚 备选功能l P3.0 RXD(串行输入口)l P3.1 TXD(串行输出口)l P3.2 /INT0(外部中断0)l P3.3 /INT1(外部中断1)l P3.4 T0(记时器0外部输入)l P3.5 T1(记时器1外部输入)l P3.6 /WR(外部数据存储器写选通)l P3.7 /RD(外部数据存储器读选通)l P3口同时为闪烁编程和编程校验接收一些控制信号。3、矩阵式键盘的结

16、构与工作原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,本系统中的矩阵键盘中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这

17、样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。矩阵式键盘如图3.3所示。 图3.3 矩阵式键盘4、按键显示模块显示模块如图3.4所示。 图3.45、功能显示模块当按下弹奏/停止功能键时,D1灯点亮,此时,电子琴系统处于弹奏状态;当按下播放键时,D2灯点亮,此时,电子琴系统处于自动播放内置音乐状态。此系统的功能显示模块如图3.5所示 如图3.55、音乐播放设置利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,

18、例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式是: Nfi2fr 式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T65536N65536fi2fr例如:设K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。T65536N65536fi2fr6553610000002fr65536500000/fr低音DO的T6553650

19、0000/26263628中音DO的T65536500000/52364580高音DO的T65536500000/104665058单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表2所示。表2 音符频率表音符频率(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 LA

20、44064400高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580高 5 SO156865217中 2 RE58764684高 6 LA176065252中 3 M65964777高 7 SI196765283我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据。uint code tab=0,63628,63835,64021,64103,64260,64400,64524, 64580,64684,64777,64820,64898,64968,65030, 65058,65110,65157,65178,652

21、17,65252,65283音符的节拍我们可以举例来说明。在一张乐谱中,我们经常会看到这样的表达式,如1=C 、1=G 等等,这里1=C,1=G表示乐谱的曲调, 、就是用来表示节拍的。以为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。四、系统软件设计1、系统整体程序处理流程图系统整体程序处理流程图4.1所示。图4.1 整体程序处理流程图在电子琴开始工作时,系统默认电子琴处于弹奏状态,歌曲选择功能键的目的是赋予矩阵键盘第二功能,即对系统内置的歌曲进行选择,在放歌时能且只能通过弹奏/停止键来结束放歌,选歌时必须先按下歌曲选择功能键,在通过矩阵键盘来选择和切换曲目。2、系统整体程序处理流

22、程图系统整体程序处理流程图4.1所示。图4.1 整体程序处理流程图在电子琴开始工作时,系统默认电子琴处于弹奏状态,歌曲选择功能键的目的是赋予矩阵键盘第二功能,即对系统内置的歌曲进行选择,在放歌时能且只能通过弹奏/停止键来结束放歌,选歌时必须先按下歌曲选择功能键,在通过矩阵键盘来选择和切换曲目。3、音乐播放设计在音乐播放程序中用到了两个定时/计数器。其中T0用来产生音符频率,T1用来产生音拍。音乐播放流程图如图4.2所示。图4.2 音乐播放流程图4、放歌子程序流程图放歌子程序流程图如下图4.3所示。图4.3 放歌子程序流程图该程序实现的是单首曲目循环播放,无法在程序内部实现歌曲的切换。只能通过外

23、部功能键来实现曲目及功能的切换,是该电子琴设计的一个缺憾。相信如果有更多的时间来进行调试和设计,这个设计会更加好。五、实验心得:将程序导入AT89C51芯片,调试成功后,可任意弹奏自己想要的旋律。本实验通过制作电子琴,将几个模块很好的融合起来,对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。于是我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可,然后我们利用功放电路来将音乐声音放大,同时通过显示模块来确知自己所弹的音符。通过这次实验设计,我感觉收获了很多:首先,通过实践,加深对单片机系列知识及其系统的认识。这个设计实验并不是新的,但从中能体现到一个系统开发设计的过程,足于让我们受益。第二,通过设计学习到了很多软件的使用。本次设计,软件部分用到了protues进行硬件设计,用keil进行程系编译。最后,我们在以后的学习中要多加注意自己的动手能力,争取在以后的课题实验设计中能够做出更多优秀的作品。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号