简易电子琴设计实验报告

  • 格式:doc
  • 大小:431.50 KB
  • 文档页数:14

简易电子琴设计实验报告

指导老师:谭建军老师

班 级:0309409

姓 名:周 博

学 号:030940913

2011-12-7

摘要:电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,它在音乐演奏中已成为不可缺少的一部分。单片机是一个具有功能强大和编程灵活性的控制器,它已广泛应用于现代人们的生活中,扮演着重要的角色。本设计主要是使用AT89C51单片机及单片机C语言,在PROTEUS仿真平台上实现以单片机为核心控制元件的一个具有16个按键的电子琴,同时还增加了音乐播放功能。本文中给出了该系统设计的硬件电路,软件设计等。其次,详细阐述了程序的各个模块和实现过程。本设计具有硬件电路简单、功能完善、控制可靠、运行稳定等特点,具有一定的实用性和参考价值。

关键词: 单片机;电子琴;PROTEUS;C语言

一、电子琴的相关介绍

1,电子琴的应用背景

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

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

本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。这次的电子琴是由4*4组成16个按钮矩阵,设计成16个音。然后再用一个音频放大模块来使音乐播出的声音变大。通过这16个键的随意组合可随意弹奏想要表达的音乐,使用很简单。

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

单片机因体积小、功能强、价格低廉而得到广泛应用。AT89C51单片机设计微型电子琴的方法,仅需AT89C51最小系统,扩展一组矩阵键盘,再接一组发光二极管用来指示电子琴的工作状态。

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

音乐播放部分:乐音实际上是有固定周期的信号。本文介绍用AT89C51的两个定时器(如T0,T1)控制,在P3.7脚上输出方波周期信号,产生乐音,通过矩阵键盘按键产生不同的音符,由此操作人员可以随心所欲的弹奏自己所喜爱的乐曲,当不想弹奏时通过按放歌键可以演奏事先存放在单片机中的几首动听的曲子供消遣。当歌曲演奏完时,通过按复位键便可回到初始状态,这样就做出了一台微型电子琴。

由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。乐曲中,每一音符对应着确定的频率,我们将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。

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

本设计要实现的功能有:

由4X4组成16个按钮矩阵,设计成16个音。可随意弹奏想要表达的音乐。

详细过程:当系统扫描到键盘上有键子被按下,则快速检测出是那一个键子,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。假如在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序,发出后按的键的音。

二、系统分析

1、系统的组成

该系统通过电子琴按键随意键入所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。通过这样可以不断的弹奏音乐。嵌入式电路,按键电路,LED显示电路和两个功能键组成,通过功能键可以选择播放音乐。其主要模块由五个部分组成,具体关系如图2.1所示。 晶振电路AT89C51供电及复位电路弹奏/播放指示4*4矩阵键盘LED显示扬声器

图2.1 系统组成框图

本系统的电路基本模块:51单片机中心、矩阵键盘模块、显示模块、发音模块、功能选择模块。

2、系统工作原理

工作原理描述如下:

打开电子琴电源开关后,电子琴默认为弹奏状态,弹奏显示灯点亮,数码管显示为0。按下矩阵键盘中的任意键,扬声器发相应的音调,数码管显示对应的数字。按下播放按钮,电子琴处于自动播放状态,播放显示灯点亮,此时,按下矩阵键盘中的任意键,扬声器发出存储在单片机内部的对应的乐曲,数码管显示对应的按键数字。再按弹奏/停止键,音乐停止。弹奏显示灯点亮。此时系统又处于弹奏状态。

三、系统的硬件设计

1、系统硬件总的设计

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

(1)矩阵键盘模块:系统采用4*4矩阵键盘。

(2)显示模块:系统采用LED显示管显示。

(3)功能显示模块:采用发光二极管显示弹奏、播放两种状态。

(4)发音模块:采用扬声器发音。

(5)控制中心模块:AT89C51单片机。 硬件整体电路图如图3.1所示。

图3.1 硬件整体电路图

2、AT89C51单片机介绍

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Flash

Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C51它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3.2所示。

图3.2 AT89C51引脚分布图 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:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。

·EA/VPP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。