嵌入式简易电子琴系统设计报告Word文件下载.docx
- 文档编号:17586694
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:49
- 大小:454.10KB
嵌入式简易电子琴系统设计报告Word文件下载.docx
《嵌入式简易电子琴系统设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《嵌入式简易电子琴系统设计报告Word文件下载.docx(49页珍藏版)》请在冰豆网上搜索。
3硬件方案5
3.1系统硬件的构成与原理5
3.2ARM2110开发板原理与应用5
3.2.1LM3S2110特性概述5
3.2.2LM3S2110的GPIO特性6
3.3独立按键6
3.4矩阵键盘7
3.5蜂鸣器8
3.6LED灯应用方式9
3.71602字符液晶屏10
4软件方案11
4.1设计原理框图11
4.2程序流程图11
4.3导线连接方案12
4.4调试过程13
5结束语14
5.1设计总结与感想14
5.2答谢词14
参考文献15
附录一ARM2110芯片16
附录二4×
4矩阵键盘16
附录三蜂鸣器模块17
附录四LCD显示屏17
附录五LED灯模块18
附录六实验成果图18
附录七程序清单19
1.头文件19
2.定义LED19
3.定义KEY19
4.LCD模块使能19
5.LCD显示20
6.LED灯模块21
1绪论
1.1综合设计目的
通过本次综合设计,运用已学的课程知识,根据题目要求进行软硬件系统的设计和调试,对《嵌入式系统原理与应用》课程中涉及的芯片结构、控制原理、硬件和编程等方面有一定的感性认识和实践操作能力,从而加深对本课程知识点的理解,使应用知识能力、设计能力、调试能力以及报告撰写能力等方面有显著提高。
1.2简易电子琴简介
电子琴是现代电子科技与音乐结合的产物,它在现代音乐中扮演着重要角色。
1.2.1电子琴在中国的发展
在中国,1958年北京邮电学院研制了一台电子管单音电子琴。
由于种种原因,至1977年后,我国才大批生产电子琴。
1989年,我国年产儿童电子琴200万台,并出口39万台。
中国的电子琴事业正在迅速发展。
电子琴发展很快,琴的各项功能日趋完善。
音色和节奏有最初的几种发展到现在的几百种。
除寄存音色外,还可通过插槽外接音色卡。
合成器的某些功能,如音色的编辑修改、自编节奏、多轨录音、演奏程序记忆等也运用到电子琴上。
1.2.2电子琴发明的意义
电子琴的发明具有重大的意义:
(一)电子琴的发明极大地推动了流行音乐的发展;
现代的流行音乐离不开电子琴,键盘手一般是现代电声乐队的中坚力量。
(单排键)电子琴、电吉他、架子鼓是流行音乐的三项主流乐器。
(二)电子琴的发明使人们可以演奏出未曾拥有的音色,丰富了人们情感的表现;
电子琴创造出了许多其他乐器无法演奏出的音色,甚至自然不存在的音色,这些音色帮助了人们通过音乐表现自己的情感,在很多电视节目或者音乐作品中都有运用。
(三)电子琴的发明推动了音乐的普及,它让音乐真正成为了大众的音乐,成为了人类社会不可缺少的东西。
电子琴是目前用于音乐普及教育和音乐素质培养最多的乐器,它的经济性为他在普通家庭中的普及带来了可能。
电子琴作为科技与音乐的产物,在信息化和电子化的时代,为音乐的大众化做出了不可磨灭的贡献,现代歌曲的制作,很多都需要电子琴才能完成,然后才通过媒介流传开来,电视剧电影插曲、电视节目音效、甚至你的手机铃声,都很可能包含电子琴的身影。
1.2.3电子琴的电学原理
现在的电子琴一般使用PCM或AWM采样音源。
所谓采样就是录制乐器的声音,将其数字化后存入ROM里,然后按下键时CPU回放该音。
甚至有一些高级编曲键盘可以使用外置采样。
现代电子琴并非“模仿”乐器音色。
它使用的就是真实乐器音色。
当然,现在力度触感在电子琴里是必备的。
而且现代电子琴还加上了老式电子琴的滤波器,振荡器,包络线控制来制造和编辑音色。
甚至也带上了老式电子琴的FM合成机构。
1.3芯片简介
1.3.1LM3S2110微控制器
本次设计任务所要使用到的微控制器是德州仪器(TI)公司提供的LM3S2110微控制器,这款微控制器是基于ARMCortex-M3内核的微控制器,它为对成本尤其敏感的嵌入式微控制器应用方案带来了高性能的32位运算能力。
该Stellaris系列芯片能够提供高效的性能、广泛的集成功能以及按照要求定位的选择,适用于各种关注成本并明确要求具有的过程控制以及连接能力的应用方案。
1.3.2ARMCortex-M3处理器内核
Cortex-M3内核主要是应用于小管脚数、低成本和低功耗的场合,并且具有极高的运算能力和极强的中断响应能力。
Cortex-M3采用了新型的单线调试技术,专门拿出一个引脚来做调试,节约了大笔的调试工具费用。
同时,Cortex-M3可以直接在MCU外连接Flash,降低了设计难度和应用障碍,因此其发展趋势亦不容小觑。
1.3.3通用输入/输出端口(GPIO)
GPIO模块由8个物理GPIO模块组成,每个对应一个独立的GPIO端口(端口A,端口B,端口C,端口D,端口E,端口F,端口G,和端口H)。
GPIO模块遵循FiRM规范,并且支持11-40个可编程的输入/输出管脚,具体取决于正在使用的外设。
1.3.4脉宽调制器(PWM)
脉宽调制(PWM)是一项功能强大的技术,它是一种对模拟信号电平进行数字化编码的方法。
在脉宽调制中使用高分辨率计数器来产生方波,并且可以通过调整方波的占空比来对模拟信号电平进行编码。
PWM通常使用在开关电源和电机控制中。
StellarisPWM模块由1个PWM发生器模块1个控制模块组成。
PWM发生器模块包含1个定时器,2个PWM比较器,PWM信号发生器,死区发生器和中断选择器。
而控制模块决定了PWM信号的极性,以及将哪个信号传递到管脚。
PWM发生器模块产生两个PWM信号,这两个PWM信号可以是独立的信号,也可以是一对插入了死区延迟的互补信号。
PWM发生模块的输出信号在传递到器件管脚之前由输出控制模块管理。
PWM模块具有极大的灵活性。
它可以产生简单的PWM信号,如简易充电泵需要的信号;
也可以产生带死区延迟的成对PWM信号,如供半-H桥驱动电路使用的信号。
2综合设计内容
2.1综合设计题目
简易电子琴
2.2综合设计要求
2.2.1主要内容
利用实验资源实现简易电子琴的功能:
(1)用蜂鸣器发出不同声音;
(2)使用LCD显示器来显示音阶输入的相关信息;
(3)当按下键盘组相对按键,蜂鸣器会发出相对音阶单音,共有两个8度音阶;
(4)至少可以输入16个单音,可以一起演奏出来;
(5)演奏时可以按键中断;
(6)可以实时显示目前演奏的单音码。
2.2.2主要技术指标、要求
(1)充分利用自己设计的开发板的硬件的资源进行设计;
(2)通过调整PWM的周期,改变占空比生产不同频率的信号;
(3)实现按键发出相对音阶单音;
(4)利用1602A动态显示音阶消息。
2.2.3所用设备与器材
(1)ARM2110芯片
(2)4×
4矩阵键盘
(3)单片机/嵌入式实践平台的功放模块(即蜂鸣器)
(4)1602LCD液晶显示屏
(5)LED灯模块
3硬件方案
3.1系统硬件的构成与原理
本次设计的简易电子琴系统主要使用到的硬件有LM3S2110微控制器、独立按键、4×
4矩阵键盘、LED灯模块、蜂鸣器、LCD液晶显示屏、电源等。
该系统的原理框图如图4.1所示,利用LM3S2110微控制器驱动液晶显示屏、蜂鸣器和LED灯模块;
使用独立按键来跳出、停止或开启蜂鸣器播放音乐;
使用矩阵键盘来实现简易电子琴的演奏功能;
使用LED灯来显示音阶。
3.2ARM2110开发板原理与应用
ARM2110开发板中包含一块LM3S2110微控制器,另外主要可以使用的元器件有:
1个RST键,4个独立按键,通用输入/输出端口(GPIO)。
该开发板的原理电路图见附录一。
3.2.1LM3S2110特性概述
LM3S2110微控制器是针对工业应用方案而设计的,包括远程监控、电子贩售机、测试和测量设备、网络设备和交换机、工厂自动化、HVAC和建筑控制、游戏设备、运动控制、医疗器械、以及火警安防。
除此之外,该LM3S2110微控制器的优势还在于能够方便的运用多种ARM的开发工具和片上系统(SoC)的底层IP应用方案,以及广大的用户群体。
另外,该微控制器使用了兼容ARM的Thumb指令集的Thumb2指令集来减少存储容量的需求,并以此达到降低成本的目的。
LM3S2110微控制器与Stellaris系列的所有成员是代码兼容的,这为用户提供了灵活性,能够适应各种精确的需求。
与此同时,它还提供出色的计算性能和优越的系统中断响应能力。
总的来说,其特性包括:
(1)紧凑的内核;
(2)Thumb-2指令集,在通常与8位和16位设备相关的存储容量中,特别是在微控制器级应用的几千字节存储量中,提供ARM内核所期望的高性能;
(3)高速的应用通过Harvard结构执行,以独立指令和数据总线为特征;
(4)优越的中断处理能力,通过执行寄存器操作来实现,这些寄存器操作在处理硬件中断时使用;
(5)存储器保护单元(MPU)为复杂的应用提供特权操作模式;
(6)从ARM7™控制器系列中移植过来,以获得更好的性能和电源效率;
(7)功能齐全的调试解决方案有:
串行线JTAG调试端口(SWJ-DP);
Flash修补和断点(FPB)单元,用于实现断点操作;
数据观察点和触发(DWT)单元,用于执行观察点、触发源和系统性能分析;
仪表跟踪宏单元(ITM),用于支持printf型调试;
跟踪端口接口单元(TPIU)用作跟踪端口分析仪的桥接。
3.2.2LM3S2110的GPIO特性
GPIO模块具有以下的特性:
(1)可编程控制GPIO中断:
屏蔽中断发生;
边沿触发(上升沿,下降沿,上升、下降沿);
(高或低)电平触发。
(2)输入/输出可承受5V电压。
(3)在读和写操作中通过地址线进行位屏蔽。
(4)可编程控制GPIO引脚配置。
本次设计使用的开发板上的微控制器LM3S2110上可使用的引脚有PA0~PA6(7个)、PB0~PB6(7个)、PC4~PC7(4个)、PD0~PD7(8个)、PE0~PE1(2个)、PF0~PF2(3个)、PG0~PG1(2个)、PH0~PH1(2个)。
3.3独立按键
ARM2110开发板中有4个独立按键,其原理电路图如图3.1所示。
这四个独立按键——KEY1~KEY4各自的一端依次连接在微控制器LM3S2110上的PH1、PB6、PB5、PB4四个引脚上。
图3.14个独立按键电路图
根据图3.1可以看出,当这四个引脚中的某个引脚得到低电平时,代表其相连的按键被按下,如:
引脚PB4得到低电平就代表KEY4被按下。
3.4矩阵键盘
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图3.2所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,行线通过电阻接正电源,并将列线所接的单片机的I/O口作为输出端,而行线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。
列线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
图3.24×
4矩阵键盘电路图
3.5蜂鸣器
蜂鸣器的原理电路图如图3.3所示,控制蜂鸣器的端口为PB1引脚,当PB1引脚输入低电平时,蜂鸣器会鸣叫。
由于蜂鸣器的工作电流一般比较大,以致于MCU的I/O口是无法直接驱动的,所以要利用放大电路来驱动,如图3.3所示,其中的三极管Q1(8050)就是用来放大电流以驱动蜂鸣器的。
图3.3蜂鸣器电路图
在嵌入式应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。
一般驱动蜂鸣器的方式有两种:
一种是PWM输出口直接驱动,另一种是利用I/O定时翻转电平产生驱动波形对蜂鸣器进行驱动。
本设计中就是使用了PWM输出口直接驱动的方式来驱动蜂鸣器,以此来实现电子琴的发音功能。
PWM输出口直接驱动是利用PWM输出口本身可以输出一定的方波来直接驱动蜂鸣器。
只要打开PWM输出,PWM输出口就能输出该频率的方波,这个时候利用这个波形就可以驱动蜂鸣器了。
3.6LED灯应用方式
LED即发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。
LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。
半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。
但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。
当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。
而光的波长决定光的颜色,是由形成P-N结材料决定的。
图3.4LED灯电路图
本设计实验中,有8个LED小灯,其原理电路图如图3.4所示。
这8个小灯——LED1~LED8各自的负极连接了一个4.7K的电阻后依次连接在微控制器LM3S2110上的PA4、PA5、PA6、PG0、PF2、PG1、PE0、PE1这8个引脚上,当这8个引脚中的某个引脚得到低电平时,其相连的LED小灯就会亮起。
3.71602字符液晶屏
1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
1602LCD特征及应用微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。
因为1602识别的是ASCII码,实验可以用ASCII码直接赋值。
如“1”的ASCII码值为“49”,可以直接赋值“49”到显示数字“1”的效果。
(a)(b)
图3.5(a)LCD液晶屏排针接口(b)实验中用到的对应ASCII码值
4软件方案
4.1设计原理框图
根据本次设计的要求和设计方案,需要实现简易电子琴系统必须在ARM2110芯片的基础上加上电源电路、时钟电路、复位电路、矩阵键盘等外设,通过LM3S2110微控制器写入程序控制蜂鸣器、LCD显示屏、LED灯模块根据音阶发音或显示。
设计原理框图如图4.1所示
图4.1简易电子琴系统原理框图
4.2程序流程图
根据本次设计的要求和设计方案,最终实现了简易电子琴系统如下功能:
(1)独立按键KEY1控制音乐播放的停止和播放音乐与矩阵按键演奏之间转换的功能。
(2)独立按键KEY2开启音乐1(一分钱)
(3)独立按键KEY3开启音乐2(理发师)
(4)独立按键KEY4开启音乐3(梁祝)
(5)矩阵键盘实现电子琴演奏功能,16个按键依次通过蜂鸣器发出:
M1、M2、M3、M4、M5、M6、M7、L5、H1、H2、H3、H4、H5、H6、L6、L7等音阶,并将音阶对应显示在LCD显示屏上。
(6)使用程序定义使得LED灯模块根据不同音阶亮不同灯的个数,实现LED灯跳跃显示功能。
(7)通过ARM2110芯片复位键初始化程序,重新开始简易电子琴系统。
程序流程图如图4.2所示。
图4.2程序流程图
4.3导线连接方案
实验过程中需要连接以下导线:
(1)矩阵键盘由上至下、由左向右依次连接:
VCC、PA0、PA1、PA2、PA3、悬空、PC4、PC5、PC6、PC7。
(2)LCD显示屏由上至下依次连接:
PD0~PD7,使能端连接PB0,写入端连接PB2。
(3)LED灯模块依次连接:
PA4、PA5、PA6、PG0、PF2、PG1、PE0、PE1,电源连接3V。
(4)蜂鸣器模块信号输入管脚连接PB1,GND管脚连接ARM2110实验板的地端。
4.4调试过程
在调试过程中,首先要做好硬件调试,然后再进行软硬件共同调试。
所以第一步需要检查各硬件的完好性,其次检测各芯片的电源线和地线是否接触良好,接好电源后用万用表检测各电源端、地端的状态是否正常。
检查无误后通过烧写工作程序,根据显示现象调试程序直至成功。
在编写程序前,首先应该将各部分硬件原理全部理解,尤其重要的是要掌握各元件的使能方式,是低电平使能还是高电平使能。
当这些基础问题都不再出错的时候,然后才能逐步编写程序。
软件调试时,必须先编写一些简易程序来熟悉和掌握微控制器和开发板的使用方式。
在此过程中编写的简易程序有:
单个按键控制单个LED灯、矩阵键盘控制蜂鸣器、LED灯闪烁、LCD显示字符等。
通过这些简单功能的实现,可以掌握ARM2110开发板的各种功能的实现方法和使用方法,如GPIO输入输出的定义方式、写入读出的方式、使能和关闭使能的方式,从而掌握了编程的基础,再根据平时C语言的基础,继续逐步编写程序。
在完成上述的软硬件调试后,逐步进行系统软件设计。
在整体的软件设计时采用模块化的设计,首先加入矩阵键盘控制蜂鸣器模块发音功能,然后根据音阶在LCD显示屏上显示所需字符,接着加入独立按键播放音乐与停止、转换等功能,再后来添加LED灯模块使得电子琴功能更具有特色,最后综合所有模块,最终完成整个简易电子琴系统的设计。
5结束语
5.1设计总结与感想
本次基于ARM2110的简易电子琴系统的设计最终做到了使用矩阵键盘演奏16个音阶,使用独立按键播放音乐,并用KEY1键实现停止、转换功能,同时加入LCD显示屏、LED灯的特色。
本次设计是一个简易的、较为完善的电子琴系统,其操作方法简单,显示效果简洁、明了而合理,成本较低,它将适合于大众化的使用。
我从本次嵌入式综合设计中学到了很多,对于嵌入式系统有了更深入的了解与应用。
通过模块化的设计过程我对ARM2110芯片的知识有了了解,并且能在原始程序的基础上做小的改动,使其更适用于简易电子琴系统,对于课本知识也有了实战性操作,在此过程中我的应用知识能力、设计能力、调试能力以及报告撰写能力等方面有了显著提高。
5.2答谢词
在几个星期的学习和实践中,起初我对简易电子琴系统的概念一无所知,在XX老师、XXX老师的讲解与指导下,我参考了了大量的资料和程序,并开始尝试一次一次的实验。
在XX同学的帮助下,我慢慢开始了解整个设计的重点知识,并且有了初步的实验成果。
在完成简易电子琴系统基本功能的时候我感觉自己已经达到了要求,但是在XX老师与其他同学的支持下,又开始了拓展功能的开发,使得自己的电子琴更加独具特色。
在本次设计制作的期间,XX老师和XXX老师给予了我很大的帮助,如果没有他们的谆谆教导和循循善诱,我可能会一筹莫展许久,但是有了他们的引导,使我能在毫无基础的情况下,用短短几周的时间不仅实现了简易电子琴系统的基本功能,并使其拥有属于自己的亮点。
除此之外,还有XXX同学也给予我很大的帮助,,他们身体力行帮我解决困难,及时地帮我指出错误,让我少走很多弯路。
在此,我要对他们表达真挚的谢意:
谢谢你们!
参考文献
[1]周立功.ARM嵌入式系统基础教程(第2版)[M].北京:
北京航空航天大学出版社,2008
[2]姚文详.ARMCortex-M3权威指南[M].北京:
北京航空航天大学出版社,2009
[3]陈明荧.8051单片机课程设计实训教材[M].北京:
清华大学出版社,2008
[4]魏洪兴.周亦敏.嵌入式系统设计与实例开发实验教材II[M].北京:
清华大学出版社,2007
[5]江力.单片机原理与应用技术[M].北京:
[6]LuminaryMicro公司.LM3S1138微控制器数据手册[M].2008/2010
[7]王福瑞等.单片微机测控系统设计大全[M].北京:
北京航空航天大学出版社,2007
[8]赵星寒.从51到ARM:
32位嵌入式系统入门[M].北京:
北京航空航天大学出版社,2008
[9]彭伟等.单片机典型系统设计实例精讲[M].北京:
清华大学出版社,2009
[10]XX百科.电子琴[DB].
附录一ARM2110芯片
附录三蜂鸣器模块
附录四LCD显示屏
附录五LED灯模块
附录六实验成果图
附录七程序清单
1.头文件
#include"
systemInit.h"
buzzer.h"
music.h"
#definelcdenGPIO_PIN_0//PB0;
#definelcdrsGPIO_PIN_2//PB2;
2.定义LED
#defineLED1_PERIPHSYSCTL_PERIPH_GPIOA
#defineLED1_PORTGPIO_PORTA_BASE
#defineLED1_PINGPIO_PIN_4
3.定义KEY
#defineKEY_PERIPH2SYSCTL_PERIPH_GPIOB
#defineKEY_PORT2GPIO_PORTB_BASE
#defineKEY_PIN2GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4
4.LCD模块使能
voidwrite_com(unsignedcharcom)//写命令
{GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,0x00);
//lcdrs=0;
GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,com);
SysCtlDelay(5*(TheSysClock/4000));
//延时5ms
GPIOPinWrite(GPIO_PORTB_BASE,lcden,0xFF);
//lcden=1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 简易 电子琴 系统 设计 报告