基于51单片机的电子琴课程设计.doc
《基于51单片机的电子琴课程设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机的电子琴课程设计.doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要本设计主要研究基于AT89C52单片机的简易电子琴设计。它是以单片机作为主控核心,设置键盘、蜂鸣器等外围器件;另外还用到一些简单器件如:NPN型三极管及电阻等。利用按键实现音符和音调的输入;用NPN型三极管8550实现低音频功率放大;最后用蜂鸣器进行播放“送别。本设计硬件局部主要由最小系统,按键系统模块和蜂鸣器模块组成。其软件局部主要有主程序模块、定时中断程序、定时计数程序。1最小系统:它是单片机应用系统的设计根底。它包括单片机的选择、时钟系统设计、复位电路设计、简单的I/O口扩展、掉电保护等。2按键系统模块:本设计采用10个按键,其中7个按键用来显示7个音调,其它3个按键可以进行上下中音
2、的切换,并自动播放已存歌曲。3蜂鸣器模块:此电子琴发音电路是通过三极管驱动蜂鸣器发音,经过上拉电阻提高驱动能力。本次设计首先对单片机设计简易电子琴仔细分析,接着制作硬件电路和编写软件的程序,最后进行软硬件的调试运行。并且从原理图,主要芯片,各模块的原理和各个模块的程序调试来阐述。利用单片机产生不同频率来获得我们要求的音阶,实现高、中、低共21个音符的发音和音乐播放时的控制,并且能自动播放程序中编排的音乐。系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比高等,具有一定的使用和参考价值。仅供学习参考目录1.概述11.1设计背景11.2设计意义11.3 设计任务12.系统总体方
3、案及硬件设计22.1总体设计2方案一:采用单个的逻辑器件组合2方案二:用VHDL语言编程来实现22.2单片机选型32.3单片机的最小工作系统32.3.1 时钟电路32.3.2复位电路42.4 原理框图42.5 按键局部设计52.5.1操作键设计52.5.2键盘设计52.5.3去抖动62.6发音局部设计73.系统软件设计73.1系统分析73.1.1系统软件的组成73.1.2 系统总体功能流程图83.2 参数计算93.2.1发音原理93.2.2 计算举例93.2.3 计算结果93.3程序设计113.3.1 判断音阶高中低音子程序113.3.2 播放子程序包括自动播放存储音乐和按键发音124. Pr
4、oteus软件仿真144.1硬件调试144.2 软件调试144.3 仿真结果任举一例154.4 结果分析155. 课程设计体会16参考文献17附1 源程序代码18附2 系统原理图261.概述1.1设计背景随着电子科学技术的飞速开展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们带来更多的生活乐趣。基于当前市场上的玩具需求量增大,其中电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件来实现电子琴的功能,从而可以实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。并且可以进行一定的功能扩展。鉴于传统电子琴可以用键盘上的“1到“A键演奏从低So到高DO
5、等11个音,从而也可以通过单片机实现对十个按键的扩展,实现七个音符键的高、中、低21个音调的显示播放和任意音乐的自动播放。该设计将十个音键制作成独立键盘,其中七个为音符键,三个为控制键,使电子琴的功能更加完美。不但可以实现对按键的控制,而且可以实现对音乐的自动存储和播放,使该设计功能更加完善。1.2设计意义该设计具有以下优点:可以方便更换音符和音调;比传统电子琴功能更完善;制作简单,本钱低;1.3 设计任务 实现电子琴发声控制系统;要求电路实现如下功能:利用蜂鸣器作为发声部件,设置10个按键,实现高音、中音、低音的1、2、3、4、5、6、7的发音。并在存储一首歌曲的内容,可以实现自动播放。用P
6、ROTEUS实现的电子琴仿真设计说明:单片机的工作时钟频率为11.0592MHz。2.系统总体方案及硬件设计2.1总体设计实现本次设计的方案有多种,下面比拟说明一下最正确方案的选择。方案一:采用单个的逻辑器件组合音乐是有由不同的音阶组成的,而不同的音阶又是由不同的频率发出的,那么利用不同的频率,就可以发出不同的音乐了。我们知道计数器8253可以产生任意频率的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率与计数器的频率对应起来就可通过计数器产生音乐了。根据本实验要求,采用8279将键扫得到的键值通过查表得到相应的8253的频率值,将从8253得到相对应的按键弹奏信号经过LM386进行放大,
7、再用喇叭输出,就实现了简易电子琴的根本功能,也就完成了实验的要求。方案二:用VHDL语言编程来实现系统整体根本原理图如下:图1、系统整体根本原理图利用我们实验室先进的数字电路实验设备,我们可以采用VHDL语言编程来实现。我们可以通过VDHL语言,对实验原理图的各个局部进行设计,通过编译,可以在计算机上下载此实验原理图,利用电路学习机上的芯片。我们很快就可以设计出一个简单的电子琴。并实现其功能。方案三:采用AT89S52单片机作为主控芯片,设置键盘、蜂鸣器等外围器件,另外还用到一些简单器件如:NPN型三极管及电阻等。利用按键实现音符和音调的输入;用NPN型三极管8550实现低音频功率放大;最后用
8、蜂鸣器发音。三种方案的比拟:方案一采用单个的逻辑器件组合实现。这样虽然比拟直观,逻辑器件分工鲜明,思路也比清晰,一目了然,但是由于元器件种类、个数繁多,而过于复杂的硬件电路也容易引起系统的精度不高、体积过大等不利因素。例如七个不同的音符是由七个不同的频率来控制发出的,所用仪器之多显而易见。方案二采用VHDL语言编程来实现电子琴的各项功能。系统主要由电子琴发声模块、选择控制模块和储存器模块组成。和方案一相比拟,方案二就显得比拟笼统,虽然我们可以看到用超高速硬件描述语言VHDL的优势,但本质上它只是把整个系统分为了假设干个模块,而不牵涉到具体的硬件电路。方案三与前两种方案相比,主控芯片采用AT89
9、S52单片机,它是大规模集成电路技术开展的产物,具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。同时具有强大的控制功能和灵活的编程实现特性,由于本设计主要用于人们娱乐方面,因此在设计上尽量使其平安以及简单易操作。而第三种方案具有经济可行性、技术可行性、实物应用性。综上所述,本次课程设计采用第三种方案。2.2单片机选型硬件电路要以单片机作为主控芯片,实现按键输入音符和音调,两位数码管的显示以及低音频功率放大和蜂鸣器发音。针对本设计的功能和用途,采用AT89S51单片机更好,实现功能完全,性价比拟高,更适合本设计。2.3单片机的最小工作系统单片机加上适当的外围器件和应用程序,构成的
10、应用系统称为最小系统。2.3.1 时钟电路 单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,结构图2 中X1、C1、C2。可以根据情况选择6MHz、12MHz或24MHz等频率的石英晶体,补偿电容通常选择30pF左右的瓷片电容。图2、时钟电路2.3.2复位电路 单片机小系统常采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。其结构如下列图。上电自动复位通过电容C3充电来实现。手动按键复位是通
11、过按键将电阻R1与VCC接通来实现。图3、复位电路2.4 原理框图本系统有主控芯片89S52、发音单元、显示模块、按键模块组成。图4、原理框图2.5 按键局部设计2.5.1操作键设计常用的按键有三种:机械触点式按键、导电橡胶式和柔性按键又称触摸式键盘。机械触点式按键是利用机械弹性使键复位,手感明显,连线清晰,工艺简单,适合单件制造。但是触点处易侵入灰尘而导致接触不良,体积相对较大。导电橡胶按键是利用橡胶的弹性来复位,通过压制的方法把面板上所有的按键制成一块,体积小,装配方便,适合批量生产。但是时间长了,橡胶老化而使弹力下降,同时易侵入灰尘。柔性按键是近年来迅速开展的一种新型按键,可以分为凸球型
12、和平面型两种。柔性按键最大特点是防尘、防潮、耐蚀,外形美观,装嵌方便。而且外形和面板的布局、色彩、键距可按照整机的要求来设计。但是由于客观条件与经济能力有限,本系统采用机械触点式按键。2.5.2键盘设计键盘在单片机应用系统中是一个关键的部件,它能实现向计算机输入数据,传送命令等功能,是人工干预计算机的主要手段。键盘可以分为2类:独立连接式键盘和矩阵式键盘。(1)矩阵式键盘单片机系统中,假设按键较多时,通常采用矩阵式也称行列式键盘。矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。矩阵式键盘中,行、列线分别连接到按键开
13、关的两端,行线通过上拉电阻接到+5V上当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。(2)独立连接式键盘独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,然而,在按键较多时,I/O口线浪费较大,不宜采用。独立式按键软件常采用查询式结构。先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,那么可确认该I/O口线所对应的按键已按下,然后,再
14、转向该键的功能处理程序。由于本程序较为简单,为了使用方便及节省资源,选择独立式键盘。下列图为独立式键盘电路图: 图6、独立式键盘电路图2.5.3去抖动键盘编程中主要考虑去抖动的问题。当测试说明有键被按下之后,紧接着就进行去抖动处理。因为键是机械开关结构,由于机械触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖动。为保证键识别的准确,在电压信号抖动的情况下不能进行行状态输入。为此需进行去抖动处理。去抖动有硬件和软件两种方法。硬件方法就是加去抖动电路,从根本上防止抖动的产生。软件消抖,在第一次检测到有键按下时,执行一段延时程序之后,再检测此按键,如果第二次检测结果仍为按下状态,CPU
15、便确认此按键己按下,消除了抖动。2.6发音局部设计如下列图所示,发音电路是由蜂鸣器、三极管、上拉电阻构成。由三极管来驱动扬声器发音的,同时加上拉电阻增强驱动电流,提高驱动能力。图7、发音局部电路图3.系统软件设计3.1系统分析3.1.1系统软件的组成 1键盘扫描程序:检测是否有按键按下,有按键按下那么记录按下键的键值,并跳转至功能转移程序;无按键按下,那么返回键盘扫描程序继续检测。 2功能转移程序:对检测到的按键值进行判断,是琴键那么跳转至琴键处理程序,是功能键那么跳转至相应的功能程序,我们设计的功能程序有两种,即音色调节功能和自动播放乐曲的功能。 3琴键处理程序:根据检测到的按键值,查询音调
16、表,给计时器赋值,使发出相应频率的声音。 4自动播放歌曲程序:检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有按键按下。3.1.2 系统总体功能流程图判断p0口输入,设定键值得到高中低三种方式键值不为0关闭声音根据7个键值和工作方式确定T0音乐播放启动T0音阶键按下播放内部存储音乐B0/2=0b0+自动播放键按下初始化T0开始键盘扫描程序N N NYYY3.2 参数计算3.2.1发音原理假设要产生音频脉冲,只要算出某一音频的周期1/频率,再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 电子琴 课程设计
限制150内