嵌入式电子琴设计

  • 格式:doc
  • 大小:1.60 MB
  • 文档页数:21

前言现代的流行音乐离不开电子琴,键盘手一般是现代电声乐队的中坚力量。

(单排键)电子琴、电吉他、架子鼓是流行音乐的三项主流乐器。

电子琴的发明使人们可以演奏出未曾拥有的音色,丰富了人们情感的表现;电子琴创造出了许多其他乐器无法演奏出的音色,甚至自然不存在的音色,这些音色帮助了人们通过音乐表现自己的情感,在很多电视节目或者音乐作品中都有运用。

电子琴的发明推动了音乐的普及,它让音乐真正成为了大众的音乐,成为了人类社会不可缺少的东西。

电子琴是目前用于音乐普及教育和音乐素质培养最多的乐器,它的经济性为他在普通家庭中的普及带来了可能。

本文主要介绍的是使用LM3S8962来实现基于Cortex-M3简易电子琴系统设计的方法,本设计由嵌入式芯片LM3S8962、音乐播放、单音节按键和数码管显示为核心,辅以必要的电路,构成了一个简易的电子琴。

当程序开始执行后,播放梁祝音乐,按下功能键后,切换至单音节演奏。

本设计的主要内容:了解嵌入式技术的发展现状,熟悉电子琴各模块的工作原理;选择适当的芯片和元器件,确定系统电路,绘制电路原理图,尤其是各接口电路;熟悉嵌入式使用方法和编程规则,编写出相应模块的应用程序;分别在各自的模块中调试出对应的功能,并使用真实器件播放音乐,实现功能切换,验证程序的正确性。

1.课题知识介绍1.1 Cortex-M3概述ARM Cortex-M3处理器结合了多种突破性技术,令芯片供应商提供超低费用的芯片,仅33000门的内核性能可达1.2DMIPS/MHz。

该处理器还集成了许多紧耦合系统外设,令系统能满足下一代产品的控制需求。

Cortex-M3内核主要是应用于小管脚数、低成本和低功耗的场合,并且具有极高的运算能力和极强的中断响应能力。

Cortex-M3采用了新型的单线调试(Single Wire)技术,专门拿出一个引脚来做调试,从而节约了大笔的调试工具费用。

同时,Cortex-M3中还集成了大部分存储器控制器,这样工程师可以直接在MCU外连接Flash,降低了设计难度和应用障碍。

CM3是一个32位处理器内核,内部数据路径是32位,寄存器是32位,存储器接口也是32位。

CM3采用哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。

这样一来,数据访问不再占用指令总线,从而提升了性能。

为了实现这个特性,CM3内部含有好几条总线接口,每条都为自己的应用场合优化过,并且可以并行工作。

但是,指令总线和数据总线共享同一个存储器空间,一个统一的存储器系统。

也就是说,不是因为有两条总线,可寻址空间就变成了8G。

1.2 LM3S8962概述LM3S8962微控制器的优势还在于能够方便的运用多种微控制器的优势还在于能够方便的运用多种ARM的开发工具和片上系统(SoC)的底层IP应用方案,以及广大的用户群体。

另外,该微控制器使用了兼容ARM Thumb®的Thumb2指令集来减少存储容量的需求,并以此达到降低成本的目的。

最后,LM3S8962微控制器与tellaris®系列的所有成员是代码系列兼容的,这为用户提供了灵活性,能够适应各种精确的需求。

图1 LM3S89621.3 keil软件Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

2009年2月发布Keil μVision4,Keil μVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。

新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来发应用程序。

新版本支持更多最新的ARM芯片,还添加了一些其他新功能。

2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM器件的最完美匹配。

最新的Keil μVision4 IDE旨在提高开发人员的生产力,实现更快,更有效的程序开发。

Keil μVision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。

Keil uVision4在Keil μVision3 IDE的基础上,增加了更多大众化的功能。

2.总体设计方案2.1 设计任务本次课程设计的主要设计任务是设计一个简易的电子琴,其中设有功能切换键,一个功能是播放梁祝音乐,另一个功能是在做好的矩阵键盘上通过按键播放DO、RE、MI 等8个单音节。

2.2 总体方案设计图2 电子琴总体设计框图本次方案设计按照系统设计的要求和功能,将系统分为主控制器模块、显示模块、按键模块、蜂鸣器电路模块。

系统框图如图2所示,主控制模块采用图1的芯片LM3S8962为控制中心,显示模块采用数码管显示,播放时使用蜂鸣器电路模块,设置功能切换键,实现对音乐播放和单音节演奏的功能切换。

3.硬件设计3.1显示模块概述3.1.1 数码管显示数码管是一种半导体发光器件,其基本单元是发光二极管。

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二级管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。

其图如图3所示。

图3 数码管引脚图3.1.2 数码管引脚说明动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

3.1.3 数码管注意事项使用数码管时应注意以下几点:(1)检查时若发光暗淡,说明器件已老化,发光效率太低。

假如显示的笔段残缺不全,说明数码管已局部损坏。

(2)对于型号不明、又无管脚排列图的led数码管,用数字万用表的h距挡可完成下述测试工作:①判定数码管的结构形式(共阴或共阳);②识别管脚;③检查全亮笔段。

预先可假定某个电极为公共极,然后根据笔段发光或不发光加以验证。

当笔段电极接反或公共极判定错误时,该笔段就不能发光。

3.2 复位电路复位电路由电阻和极性电容组成,如图4所示,通过高电平时单片机复位,在时钟电路开始工作后,当高电平的时间超过大约5ms的时候,即可实现复位。

此复位电路同时具备了上电自动复位和按键人工复位的功能,上电复位发生在开机加电时,由系统自动完成,按键人工复位通过一个按键来实现在程序运行时,若遇到死机或死循环等情况时,通过手动复位就可以实现重新启动的操作。

按键人工复位需要认为在复位输入端RST 上加入高电平。

图4 复位电路3.3 蜂鸣器电路蜂鸣器电路由一个220欧的电阻,三极管及蜂鸣器组成,如图5所示。

通过控制三极管的导通和截止来实现蜂鸣器的响与不响。

图5 蜂鸣器原理图3.4 矩阵键盘在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图6所示。

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

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

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

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

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

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

图6 4×4矩阵键盘电路图4.软件设计4.1 流程图图7 流程图根据以上流程图设计的程序见附录3。

4.2 Keil详细过程在图8界面下单“Project”中的“New uVision Project…”命令,弹出图9所示的创建新工程界面。

这时要设定该工程的路径和名称,要将存储工程的文件夹名称与工程项目的名称设为同一名字。

图8 创建工程图9 设置工程保存路径和名称点击保存按钮,弹出图10 对话框。

该对话框要求选择芯片型号,找到LM3S8962,并且点击选择。

图10 选择芯片选择好芯片后,需要新建一个空白文件,用来放置程序代码。

图11新建文件在Source Group上点右键,弹出快捷菜单。

如图12所示。

点击“Add Files to Group”选项,弹出添加源文件对话框,选择相应的需添加的文件即可。

图12 添加源文件快捷菜单这里仅对基本选项进行设置,以满足工程可编译、仿真、下载的要求。

在图13中,首先要设置晶振的频率。

由于开发板上使用的是6MHz的晶振,因此,这里需要将晶振频率设置为6MHz。

图13 晶振及程序下载地址设置完成相关设置后,即可进行编译,如图14所示。

图14 编译程序点击debug按钮,即可进入到软件仿真界面,课通过看到的结果进行调试,若不对可返回原界面进行修改。

图15 仿真界面5. 设计结果根据以上设计过程和原理可设计得到一个简易的电子琴,该电子琴可以在两个功能之间进行切换,一个是播放音乐梁祝,另一个是通过按键进行单音节播放,并且显示对应的音节,任何时刻都能进行复位操作。