1、 日期: 摘 要电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89c51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。Abstract Electronic organ is a modern electronic music technol
2、ogy and the product is a new type of keyboard instruments. It played an important role in modern music. SCM has powerful control functions and flexible programming characteristics. It has converged with modern peoples lives, become an irreplaceable part. The main content is AT89C51 control of the co
3、re components, design of a electronic organ. SCM as a host to the core, with the keyboard, speaker and other core modules. In the main control module has 16 keys and a speaker. The system is steady, its simple hardware circuits, software functions, reliability of control system and high cost perform
4、ance is its advantages. It also has certain practical and reference value. 目录 摘 要1Abstract11 系统概述31.1 课程设计的目的和意义31.2 本系统主要研究内容31.3 本系统主要研究目标41.4主要芯片简介42 方案论证42.1 控制模块选择方案42.2 按键模块选择方案53 方案的实现53.1系统实现的具体措施53.2系统硬件设计63.2.1 系统硬件总体设计63.2.2子系统(模块)一63.2.3子系统(模块)二73.2.4 子系统(模块)三83.3系统软件设计93.3.1系统软件总体设计93.3
5、.2子程序(模块)一:LED显示93.3.3子程序(模块)二:扬声器103.3.4子程序(模块)三:矩阵键盘114 系统调试124.1 Proteus 简介124.2 keil 简介124.3 Proteus和Keil的联调135 设计心得14参考文献15附录1:16 1 系统概述 1.1课程设计的目的和意义 单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新
6、型的键盘乐器。本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。 本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。本系统是简易电子琴的设计,按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放器对应的音符。通过设计本系统可了解单片机的基本功能。对单片机的了解有一个小的飞跃。1.2 本系统主要研究内容本系统设计制作一个可演奏的电子琴。综合应用了两项设计。(1)键盘矩阵识别。即矩阵扫描,显示当前按
7、键。(2)不同频率音符播放。可以通过按键控制16种发音。1.3 本系统主要研究目标 本系统的设计是为了实现按下矩阵键盘中的按键会使数码管显示当前按键,扬声器播放对应音符的目标。1.4主要芯片简介 AT89c51简介AT89c51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89c51可
8、为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89c51具有如下特点:40个引脚(引脚图如图1-2所示),4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89c51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位
9、。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。2 方案论证2.1 控制模块选择方案方案一:用可控硅制作电子琴。将220V交流电经变压器降压,再经过整流、滤波,获得+13.5V直流电压。将单向可控硅SCR和电阻、电容组成驰张振荡器电路。但该设计方案制作成本高且复杂。 方案二: 采用AT89C51单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到4K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。 选择方案:鉴于上述对比与分析,AT89C51单片机设计微型电子琴的方法,仅需AT89C51最小系
10、统,扩展一组矩阵键盘,再接一组发光二极管用来指示电子琴的工作状态。所以,本设计采用方案二。2.2 按键模块选择方案传统电子琴可以用键盘上的“1”到“A”键演奏从低SO到高DO等11音。该设计有16个按钮矩阵,设计成16个音,可以实现音阶在低音4-高音5之间。比传统音阶范围大,弹奏效果好。3 方案的实现3.1系统实现的具体措施 键盘接口必须具有的4个基本功能。(1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为520mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决
11、。(2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。(3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两
12、次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。(4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。用AT89C51的并行口P0接44矩阵键盘,以P0.0P0.3作输入线,以P0.4P0.7作输出线;在数码管上显示每个按键的“0F”序号。3.2系统硬件设计3.2.1 系统硬件总体设计本系统由键盘矩阵、LED显示管、扬声器这几个部分组成,LED显示管显示当前按键,扬声器发出对应音符。硬件总体设计图如下: 图13.2.2子系统(模块)一LED显示模块如图2-2所示,利用AT89c51单片机的P0端口的P0.0P0.
13、7连接到一个七段数码管的ah的笔段上,数码管的公共端接电源。矩阵扫描显示当前按键模块如下: 图23.2.3子系统(模块)二矩阵扫描扬声器发出对应音符模块如下:图33.2.4 子系统(模块)三矩阵键盘模块如下:图4矩阵式键盘的结构与工作原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。具体的识别及编程方法如下所述。3.3系统软件设计3.3.1系统软件总体设计本系统的软件总的流程图如下:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1