简易电子琴设计实验报告文档格式.docx

上传人:b****4 文档编号:8077178 上传时间:2023-05-10 格式:DOCX 页数:16 大小:252.47KB
下载 相关 举报
简易电子琴设计实验报告文档格式.docx_第1页
第1页 / 共16页
简易电子琴设计实验报告文档格式.docx_第2页
第2页 / 共16页
简易电子琴设计实验报告文档格式.docx_第3页
第3页 / 共16页
简易电子琴设计实验报告文档格式.docx_第4页
第4页 / 共16页
简易电子琴设计实验报告文档格式.docx_第5页
第5页 / 共16页
简易电子琴设计实验报告文档格式.docx_第6页
第6页 / 共16页
简易电子琴设计实验报告文档格式.docx_第7页
第7页 / 共16页
简易电子琴设计实验报告文档格式.docx_第8页
第8页 / 共16页
简易电子琴设计实验报告文档格式.docx_第9页
第9页 / 共16页
简易电子琴设计实验报告文档格式.docx_第10页
第10页 / 共16页
简易电子琴设计实验报告文档格式.docx_第11页
第11页 / 共16页
简易电子琴设计实验报告文档格式.docx_第12页
第12页 / 共16页
简易电子琴设计实验报告文档格式.docx_第13页
第13页 / 共16页
简易电子琴设计实验报告文档格式.docx_第14页
第14页 / 共16页
简易电子琴设计实验报告文档格式.docx_第15页
第15页 / 共16页
简易电子琴设计实验报告文档格式.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

简易电子琴设计实验报告文档格式.docx

《简易电子琴设计实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《简易电子琴设计实验报告文档格式.docx(16页珍藏版)》请在冰点文库上搜索。

简易电子琴设计实验报告文档格式.docx

还常作为独奏乐器出现,具有鲜明时代特色。

但电子琴的局限性也是十分明显:

旋律与和声缺乏音量变化,过于协和、单一;

在模仿各类馆、弦乐器时,音色还不够逼真,模仿提琴类乐器的音色时,失真度更大,还需要不断改进。

单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。

以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。

本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。

利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。

并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

这次的电子琴是由4*4组成16个按钮矩阵,设计成16个音。

然后再用一个音频放大模块来使音乐播出的声音变大。

通过这16个键的随意组合可随意弹奏想要表达的音乐,使用很简单。

2,本实验中电子琴的设计思路

单片机因体积小、功能强、价格低廉而得到广泛应用。

AT89C51单片机设计微型电子琴的方法,仅需AT89C51最小系统,扩展一组矩阵键盘,再接一组发光二极管用来指示电子琴的工作状态。

本系统分为两个部分,一个是音乐,另一个就是电子琴。

音乐播放部分:

乐音实际上是有固定周期的信号。

本文介绍用AT89C51的两个定时器(如T0,T1)控制,在P3.7脚上输出方波周期信号,产生乐音,通过矩阵键盘按键产生不同的音符,由此操作人员可以随心所欲的弹奏自己所喜爱的乐曲,当不想弹奏时通过按放歌键可以演奏事先存放在单片机中的几首动听的曲子供消遣。

当歌曲演奏完时,通过按复位键便可回到初始状态,这样就做出了一台微型电子琴。

由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

乐曲中,每一音符对应着确定的频率,我们将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。

电子琴弹奏部分:

实际上就是把每个按键所对应的值经过处理后发给单片机,再在单片机内把数字当作指针指向所对应的音符。

本设计要实现的功能有:

由4X4组成16个按钮矩阵,设计成16个音。

可随意弹奏想要表达的音乐。

详细过程:

当系统扫描到键盘上有键子被按下,则快速检测出是那一个键子,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。

假如在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序,发出后按的键的音。

二、系统分析

1、系统的组成

该系统通过电子琴按键随意键入所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。

通过这样可以不断的弹奏音乐。

嵌入式电路,按键电路,LED显示电路和两个功能键组成,通过功能键可以选择播放音乐。

其主要模块由五个部分组成,具体关系如图2.1所示。

图2.1系统组成框图

本系统的电路基本模块:

51单片机中心、矩阵键盘模块、显示模块、发音模块、功能选择模块。

2、系统工作原理

工作原理描述如下:

打开电子琴电源开关后,电子琴默认为弹奏状态,弹奏显示灯点亮,数码管显示为0。

按下矩阵键盘中的任意键,扬声器发相应的音调,数码管显示对应的数字。

按下播放按钮,电子琴处于自动播放状态,播放显示灯点亮,此时,按下矩阵键盘中的任意键,扬声器发出存储在单片机内部的对应的乐曲,数码管显示对应的按键数字。

再按弹奏/停止键,音乐停止。

弹奏显示灯点亮。

此时系统又处于弹奏状态。

三、系统的硬件设计

1、系统硬件总的设计

将设计的电子琴硬件部分进行模块化设计,主要分以下模块:

(1)矩阵键盘模块:

系统采用4*4矩阵键盘。

(2)显示模块:

系统采用LED显示管显示。

(3)功能显示模块:

采用发光二极管显示弹奏、播放两种状态。

(4)发音模块:

采用扬声器发音。

(5)控制中心模块:

AT89C51单片机。

硬件整体电路图如图3.1所示。

图3.1硬件整体电路图

2、AT89C51单片机介绍

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

AT89C51它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

外形及引脚排列如图3.2所示。

AT89C51主要特性

·

与MCS-51兼容

4K字节可编程闪烁存储器

寿命:

1000写/擦循环

数据保留时间:

10年

全静态工作:

0Hz-24MHz

三级程序存储器锁定

128×

8位内部RAM

32可编程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门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次

有效。

但在访问外部数据存储器时,这两次有效的

信号将不出现。

EA/VPP:

保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,

将内部锁定为RESET;

端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

另外,P3口也可作为AT89C51的一些特殊功能口,如下所示。

●口管脚备选功能

●P3.0RXD(串行输入口)

●P3.1TXD(串行输出口)

●P3.2/INT0(外部中断0)

●P3.3/INT1(外部中断1)

●P3.4T0(记时器0外部输入)

●P3.5T1(记时器1外部输入)

●P3.6/WR(外部数据存储器写选通)

●P3.7/RD(外部数据存储器读选通)

●P3口同时为闪烁编程和编程校验接收一些控制信号。

3、矩阵式键盘的结构与工作原理

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。

在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。

这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。

由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,本系统中的矩阵键盘中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。

这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。

行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。

矩阵式键盘如图3.3所示。

图3.3矩阵式键盘

4、按键显示模块

显示模块如图3.4所示。

图3.4

5、功能显示模块

当按下弹奏/停止功能键时,D1灯点亮,此时,电子琴系统处于弹奏状态;

当按下播放键时,D2灯点亮,此时,电子琴系统处于自动播放内置音乐状态。

此系统的功能显示模块如图3.5所示

如图3.5

5、音乐播放设置

利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。

计数脉冲值与频率的关系式是:

N=fi÷

fr

式中,N是计数值;

fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);

fr是想要产生的频率。

其计数初值T的求法如下:

T=65536-N=65536-fi÷

fr

例如:

设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。

fr=65536-1000000÷

=65536-500000/fr

低音DO的T=65536-500000/262=63628

中音DO的T=65536-500000/523=64580

高音DO的T=65536-500000/1046=65058

单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表2所示。

表2音符频率表

音符

频率(HZ)

简谱码(T值)

休止

中4FA

698

64820

低1DO

262

63628

中5SO

784

64898

低2RE

294

63835

中6LA

880

64968

低3M

330

64021

中7SI

988

65030

低4FA

349

64103

高1DO

1046

65058

低5SO

392

64260

高2RE

1175

65110

低6LA

440

64400

高3M

1318

65157

低7SI

494

64524

高4FA

1397

65178

中1DO

523

64580

高5SO

1568

65217

中2RE

587

64684

高6LA

1760

65252

中3M

659

64777

高7SI

1967

65283

我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据。

uintcodetab[]={0,63628,63835,64021,64103,64260,64400,64524,

64580,64684,64777,64820,64898,64968,65030,

65058,65110,65157,65178,65217,65252,65283}

音符的节拍我们可以举例来说明。

在一张乐谱中,我们经常会看到这样的表达式,如1=C

、1=G

……等等,这里1=C,1=G表示乐谱的曲调,

就是用来表示节拍的。

为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。

四、系统软件设计

1、系统整体程序处理流程图

系统整体程序处理流程图4.1所示。

图4.1整体程序处理流程图

在电子琴开始工作时,系统默认电子琴处于弹奏状态,歌曲选择功能键的目的是赋予矩阵键盘第二功能,即对系统内置的歌曲进行选择,在放歌时能且只能通过弹奏/停止键来结束放歌,选歌时必须先按下歌曲选择功能键,在通过矩阵键盘来选择和切换曲目。

2、系统整体程序处理流程图

3、音乐播放设计

在音乐播放程序中用到了两个定时/计数器。

其中T0用来产生音符频率,T1用来产生音拍。

音乐播放流程图如图4.2所示。

图4.2音乐播放流程图

4、放歌子程序流程图

放歌子程序流程图如下图4.3所示。

图4.3放歌子程序流程图

该程序实现的是单首曲目循环播放,无法在程序内部实现歌曲的切换。

只能通过外部功能键来实现曲目及功能的切换,是该电子琴设计的一个缺憾。

相信如果有更多的时间来进行调试和设计,这个设计会更加好。

五、实验心得:

将程序导入AT89C51芯片,调试成功后,可任意弹奏自己想要的旋律。

本实验通过制作电子琴,将几个模块很好的融合起来,对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。

于是我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可,然后我们利用功放电路来将音乐声音放大,同时通过显示模块来确知自己所弹的音符。

通过这次实验设计,我感觉收获了很多:

首先,通过实践,加深对单片机系列知识及其系统的认识。

这个设计实验并不是新的,但从中能体现到一个系统开发设计的过程,足于让我们受益。

第二,通过设计学习到了很多软件的使用。

本次设计,软件部分用到了protues进行硬件设计,用keil进行程系编译。

最后,我们在以后的学习中要多加注意自己的动手能力,争取在以后的课题实验设计中能够做出更多优秀的作品。

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2