滨江学院微机原理与接口技术综合实验报告题目简易电子琴设计学号学生姓名王兴江院系滨江学院专业指导教师二O一二年月日1【摘要】.......................................................2一、引言.......................................................21.1电子琴设计的背景........................................21.2电子琴设计的意义........................................21.3电子琴设计的目标........................................2二.系统整体设计...............................................31.设计任务..................................................32.功能描述..................................................33.软硬件描述................................................34.模块描述..................................................4三.硬件电路设计及描述........................................51.4x4矩阵键盘控制模块.....................................52.发声模块.................................................83.显示模块.................................................9四.软件设计思想及流程........................................13五.硬件的调试过程及调试方法..................................14六.重要程序及源代码..........................................15七.课程设计体会..............................................17八.参考文献...................................................182【摘要】由于音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用单片定时/计数器T产生不同的频率的组合,从而构成音乐。本次设计实现的大体功能:当系统扫描到键盘上有键子被按下,则快速检测出是那一个键子,然后单片机的定时就会发出相应的音调。定时器被启动,发出一定频率的脉冲,该频率的脉冲通过P3串口并驱动喇叭发音。同时键值显示在LED显示器上。【关键词】单片机电子琴AT89C51一、引言1.1电子琴设计的背景随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。并且可以进行一定的功能扩展。鉴于传统电子琴可以用键盘上的“k0”到“k16”键演奏从低So到高DO等16个音,从而可以用来弹奏喜欢的乐曲。1.2电子琴设计的意义该设计具有以下优点:(1)可以随意弹奏想要表达的音乐;(2)制作简单,成本低。(3)比传统电子琴功能更完善。1.3电子琴设计的目标由于本设计主要用于人们娱乐方面,因此在设计上尽量使其安全以及简单易操作。其次,在这次设计可行性上进行分析如下:31、经济可行性:所谓经济可行性,即在这次设计上需要投入资金的多少,由于课程设计是提高我们的动手能力以及资金有限。因此在经济上必须能够承受,比较理想化的对于我们课程设计来说是不可行的。通过分析后,无论是在器件价格或是常见度上均是可行的。2、技术可行性:技术可行性主要是分析技术条件上是否能够顺利开展并完成课程设计的主要问题,硬件、软件能否满足设计者的需要等。通过分析各种软件环境,硬件仿真环境等均已经具备。综上所述,本系统设计目标已经明确,在经济与技术上均可行,因此本系统的开发是完全可行的。二.系统整体设计1.设计任务基于MCS系列单片机AT89C51。设计一个简易电子琴2.功能描述1)利用所给键盘的1,2,3,4,5,6,7,8八键,能够发出8个不同的音符。2)并且要求按下按键发声,松开延时一段时间停止,中间再按别的键则发出另一音符的声音。3)使用LED数码管显示8个不同的音调。4)如果在一个按下的键发声的同时有另一键被按下,前面键的发音停止,转到后按的键的发音。5)@增加变调钮“UP1”,“UP2”,“DN1”,“DN2”,在按下“0—8”音符时,变调键,产生相应的变调,使用LED数码管显示变调情况。6)☆其它功能3.软硬件描述该课题主要由软件及其硬件两个基本部分共同完成。硬件主要部分:4x44矩阵式键盘(主要用于音符的输入以及变调的键值输入,其与单片机的P0口连接).MCS51-AT89单片机芯片.两位LED数码管显示器.以及一些基本外围电路。软件主要部分:运用c语言进行相应的编程,其主要包括控制按键扫描程序,发声主程序,以及显示程序。4.模块描述总体方案:本系统采用单片机AT89C51为电子琴的控制核心,系统主要包括播放模块.按键控制模块以及显示模块。电路设计总体框图2步骤:A.根据设计题目的具体要求及题目的设计提示,B.利用Proteus软件来画原理图(硬件)。C.利用Keil软件进行程序的编写,执行,及仿真。从而生成HEX文件调D.将HEX文件导入原理图的AT89C51中进行仿真AT89C51矩阵式按键输入电路LED数码管扬声器电源时钟电路5E.试并实现相应的功能三.硬件电路设计及描述总体原理图:P10P11P12P13P14P15P16P17P17P16P15P1415623P1047P118P12P13XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C120pFC220pFR110kX1CRYSTALC310uFA02A14A26A38OE1Y018Y116Y214Y312U2:A74HC244LS1SOUNDERVCC234567891RP1RESPACK-8VCC1.4x4矩阵键盘控制模块其与单片机的具体连接方式如下:6P10P11P12P13P14P15P16P17P17P16P15P1415623P1047P118P12P13(1)矩阵式键盘的结构与工作原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口P1就可以构成4*4=16个按键。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。具体的识别及编程方法如下所述。(2)矩阵式键盘的按键识别方法行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。a.判断键盘中有无键按下将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电7平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。b.判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。程序扫描法就是调用键盘扫描程序,查询键盘并给予处理的方法。1)查询是否有键盘按下2)延时去除抖动3)确定下来按键所在的行.列位置具体框图如下82.发声模块扬声器与单片机的连接方式如图开始判断是否有键按下?确定按下哪个键否是确定键值调用显示程序调用发声程序9P3.0A02A14A26A38OE1Y018Y116Y214Y312U2:A74HC244LS1SOUNDER扬声器连接在P3.0口,当有键盘按下时候,单片机会通过程序调用相应键值,由P3.0输出对应的频率信号,从而驱动扬声器发声。具体框图如下:3.显示模块2位LED数码管与单片机的连接图P3.0检测到频率信号扬声器发声驱动10VCC图中:1、2是公共端,控制位码,控制那个数码管亮(左右),如果是共阴的则接低电平,若为供阳的则相反。,a-g、dp是控制断码,控制9个二极管的亮暗,可以直接接51的输出口(P0要加上拉电阻),如果是共阴的则接高电平来使数码管亮,若为供阳的则相反。用8位码控制,用16进制表示!二极管从最上面顺时针分别为a,b,c,d,e,f中间横线为g,点为dp。4设计的核心部件及其外围基本电路P10P11P12P13P14P15P16P17P17P16P15P1415623P1047P118XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C120pFC220pFR110kX1CRYSTALC310uFA02A14A26A38OE1Y018Y116Y214Y312U2:A74HC244LS1SOUNDERVCC234567891RP1RESPACK-8AT89C51简介AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只11读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C