版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一种由STM32控制的电子琴设计目录TOC\o"1-3"\h\u23891关键词: 23279Abstract 228772引言 2166981.设计要求与工作原理 399601.1研究现状 3195871.2设计指标及要求 4312811.3设计说明 4282521.4设计原理介绍 4205252.设计方案论证 535722.1设计方案 541892.2方案选择 5260023.硬件系统设计 6249823.1硬件结构 620053.2核心控制器硬件电路 7242293.3数码管电路 7297553.4蜂鸣器驱动电路 8167263.5按键电路 8237114.软件系统设计 9159784.1软件系统框图 930104.2主程序流程图 10252154.3数码管显示相关段选的计算: 1174654.4发声原理 11325064.5PWM输出频率计算 12309265.仿真与调试 12285235.1设计结果 12229045.2调试 157856.结束语 15摘要:本方案设计了一种由STM32控制的电子琴。该设计由硬件电路与软件编写实现,硬件电路部分由转压、蜂鸣器驱动、按键、数码管显示以及STM32单片机等组成,通过keil软件调试控制PWM输出频率,进而控制蜂鸣器发音,实现按下八个不同按键可以发出八个不同音符的弹奏效果,同时音符对应的数字会在数码管上显示出来。所设计的电子琴音调比较准确、耗电量少、易携带,不仅可以弹奏简单的曲子,而且可以播放三首具有层次性的音乐。关键词:STM32单片机;PWM;电子琴;数码管DesignofElectronicPianoBasedonSTM32Abstract:Inthisproject,anelectronicorgancontrolledbySTM32isdesigned.Writethedesignbythehardwarecircuitandsoftwareimplementation,thehardwarecircuitpartdrivenbyrolling,buzzer,keys,digitaltubedisplayandSTM32microcontroller,etc,thehardwaredesigniscompletedthroughkeilsoftwaredebuggingcontrolPWMoutputfrequency,andthencontrolbuzzerpronunciation,implementpresseightdifferentbuttoncanplaytheeffectofeightdifferentnotes.Atthesametimethecorrespondingnumberofnoteswillbedisplayedonthedigitaltube.Theelectronicorgandesignedisaccurateintone,lowinpowerconsumptionandeasytocarry.Itcannotonlyplaysimplesongs,butalsoplaythreepiecesofhierarchicalmusic.KeyWords:STM32MCU;PWM;Electronicorgan;Nixietube引言电子琴是一种键盘式乐器,其内部元器件有键盘、功放、声音产生器、节奏、音响等。有些还会有内存、音源芯片、MIDI、CPU控制芯片等[1]。电子琴也被称为电子键盘,因为不同音量的发音不同,所以实现的音调也是不同的,通过电子琴发出的音调有较高的可控性,宽阔的音域,多样的和声等特点。此外,它的表现力非常突出,仅凭它自己就能够完成一个管弦乐队的全部演奏。除了以上功能外,电子琴还可以对不同的音色进行模仿学习,它可以用于产生传统乐器都没有办法产生的声音,比如,风雨雷电声,大合唱,宇宙的声音等等。不仅如此,电子琴如果要单独表演的话,键盘还可以配备与打击乐相适配的伴奏器件,因而它可以广泛应用于元素较多且灵活多变的现代音乐之中。此外,电子琴也可以与现代科技相结合来使用,目前通过此应用已经实现了多种模式,它们分别是回声、混响、延音、震音轮等等。有了这些科学技术的支撑,电子琴的功能变的更加丰富多样,能够随意的展示出丰富饱满的情感内容。电子琴的设计使用STM32F103C8T6内部相关定时器TIM3来输出PWM,每个按键都将对应不同频率的PWM波,再让蜂鸣器执行命令[2]。接通电源后,发送扫描码并一直对电子琴进行按键扫描,直到获取到有按键按下后,才开始进行下一步的操作。设计要求与工作原理在本章节中会对电子琴的研究现状、设计指标及要求、设计说明几个模块进行介绍,同时简要阐述一下电子琴的工作原理。1.1研究现状现在的电子琴通常选择PCM和AWM两种采样源。采样的定义其实无非是记录乐器音调,然后对它进行数字化操作,接着把它存储到ROM内,最后按下播放按键,CPU就会播放录制的音调[3]。目前出现的Tyros3键盘是一种级别较高的键盘,这种键盘的音色较好。更让人出乎意料的是,它同样也可以使用外置采样。现在的电子琴选择的不是单纯去的“模仿”乐器声,而恰恰选择的是原生态真实的乐器音色。除了以上介绍的,当今的电子琴还在原有基础上添加了旧键盘上的滤波器、振荡器、信封控件与包络线控制,新添加的包络线控制可以用来制造和编辑音色。现在有的一些器件都已经携带了旧式电子琴的器件,比如说FM器件,当然除了FM器件以外还有其他的器件也已经带上了旧式电子琴的器件,这里我们就不再一一介绍了。图1电子琴原理图关于电子琴的价格,对于一台88键的电子琴来说,便宜的大概在1000元左右,偏贵的有4000多的,儿童电子琴61键的最便宜的需要200元。当然如果我们可以只利用一个鼠标键盘就能够实现弹奏的话,它是可以为大多数人节约一笔相当大的费用的。我选择进行此次设计的主要目的是利用STM32这款芯片可以实现通过简易键盘能够唱歌的功能,键盘上的8个按键分别代表8种不同的音符,当按下键盘上的8个不同的按键时就可以产生DO、Rai、Mi、Fa、So、La、Xi、高音DO这8种不同的音符,这些音符对应的数字都会在数码管上显示。此外可通过按下歌曲播放键播放三首不同的音乐。1.2设计指标及要求设计选用STM32F103C8T6芯片,实现按下不同按键后,发出DO、Rai、Mi、Fa、So、La、Xi和高音调的DO共八个各不相同的音符。通过对外部按键的输入进行读取来改变定时器内相应寄存器的值,从而输出不同频率的PWM来产生不同的音调,且与它们对应的数字会在数码管上显示。同时要完成硬件电路的焊接与制作,程序仿真,并用keil软件进行调试。此次项目的设计要求我们熟悉各个硬件模块的组成部分并掌握实现方法,同时需掌握基于STM32的电子琴的工作原理,多阅读相关文献,并认真完成此次设计。1.3设计说明单片机又称微控制器,是集成式电路芯片的一种。在时代科技的推动下,科技与工程范畴应用中已经越来越离不开单片机这个重要的角色了,同时单片机的研究与应用也逐渐成为人们关注的热门课题[4]。单片机凭借着优越的控制功能和较强的编程可控性早已走进人们的视野之中,是现代科技不可或缺的一部分。此次设计的核心是以STM32F103C8T6单片机为重点去设计一个电子琴,把STM32F103C8T6单片机控制芯片放在至关重要的中心位置。除此之外,主控制模块部分包括8个不同按键、1个手动复位键、1个总开关按键、1个歌曲播放键、驱动器、扬声器等模块,它们和STM32F103C8T6单片机一起构成了电子琴的核心部分。1.4设计原理介绍本次设计的主要原理是通过STM32内部的定时器来改变PWM的频率,随后对蜂鸣器发出命令。接下来发送扫描码获取外部按键是否被按下,如果被按下就发送给相关定时器从而对PWM的频率进行调整,让PWM的频率在数值上产生不同的变化,最后驱动蜂鸣器就可以在扬声器端听到不同种类的音乐。2.设计方案论证本章节将会详细介绍此次设计所选用的芯片STM32F103C8T6以及设计需要用到的各部分硬件电路模块,同时在设计方案上对MCS-51类型的单片机和STM32类型的单片机进行了对比,最终选择了用STM32来完成本次设计。下面会讲述选择STM32这款单片机的原因。2.1设计方案方案一:选用MCS-51类型的单片机来实现本次设计。MCS-51系列的单片机有很多产品,其中最基本的三个产品分别是8031,8051和8751。在其他方面上它们基本没有什么大的区别,只是在制造片内程序存储器的方法上略有不同。8051系列单片机内部的片内存储器ROM是一种在芯片制造时就固化好应用程序的掩模型ROM,这种独特的制造方法使它具备了某种特殊的功效。8位CPU拥有片内震荡器及时钟电路;32根I/O线;2个16位的定时器/计数器;5个中断源,2个中断优先级等[5];8051的中央处理器CPU的构成一般划分为以下主要模块:一个是运算器模块,另一个是控制逻辑模块,这种组建的单片机属于单片机中基础的类型[6]。输入输出端的I/O引脚彼此之间离得非常近,同时它制作起来比较容易,成本也相对较低。虽然它可实现的功能相对简单一些,但是也可以满足各种不同程度的应用要求。方案二:选用最高工作频率可达72MHz的STM32F103C8T6微控制器来完成此次设计。其内部含有八个定时器,且它的内部功能十分丰富,主要是它可以输出不同频率的PWM。本设计的单片机具有16KB~1MB的闪存、多种控制外设、USB全速接口和CAN[7]。此方案包括众多外部中断,多种定时器可实现不同的功能,整个器件包含引脚数目48个,拥有基本的I/O口、复用和较好的外设功能,其特点是易于操作且功能较多,而且可以对相关寄存器直接进行操作[8,9]。方案选择经过对以上两种方案比较后,我们选择了用STM32F103C8T6作为控制芯片。对于51单片机而言,它的I/O端口数量较少,同时它内部含有的中断源数量也不多,仅仅只有5个,因此51系列的单片机可实现的功能较为单一不够丰富,不过在价格方面51单片机还是比较低廉的。相比较而言,STM32F103C8T6的引脚数量很多,其内部共有48个引脚。最独特的是STM32能够实现PWM输出功能。为了完成本次设计的设计指标,需要用到1个蜂鸣器和8个按键,与此同时需要使用的I/O口数量就不能少于15个。因此,选择具有更多I/O端口的STM32F103C8T6作为控制芯片更为合理[10]。硬件系统设计此部分会一一向大家介绍本次设计所用到的硬件模块,并对用到的主要硬件模块及它们能够运行的条件进行详细的阐述。3.1硬件结构硬件系统中使用主控制芯片STM32F103C8T6。除此以外,它还包含有转压电路模块、按键、晶振、蜂鸣器、数码管显示模块等。STM32F103C8T6芯片的引脚数量很多。此外,其相关外围电路主要包括DMA、温度传感器和PWM,PWM在本次设计中发挥了重要的作用。图2STM32f103C8T6引脚图图3硬件系统图3.2核心控制器硬件电路核心控制器主要由两部分组成,一部分是核心控制芯片STM32F103C8T6,一部分是相关外围电路,如图4所示。STM32F103C8T6的程序存储器可以容纳64KB内存,它工作的温度在-40°C~85°C之间,且要给其提供2V到3.6V的电压[11]。此外,在STM32处理器内部嵌入的有闪存存储器,它们允许在电路中编程和在应用中编程。在电路中编程能够对闪存的全部内容进行更新。芯片安装在用户应用板上后,ICP通过JTAG协议对闪存微控制器中的存储器进行编程[12]。这种编程方法使用起来既快速又高效,同时它还消除了管座和封装带来的困扰。当运行用户程序时,IAP便发挥作用,它会重新对闪存微控制器中的存储器进行编译,这种方法使用起来不仅方便而且成本较低。图4核心控制器外围电路3.3数码管电路此设计用到一位数码管,在平时应用中只选用com4位选端口和5、6、7、8、9、10、11接口作为段选就可以。图5数码管显示电路3.4蜂鸣器驱动电路在蜂鸣器上选用有源蜂鸣器。相比较无源蜂鸣器,有源蜂鸣器的发声原理是让电流通过一定匝数的电磁线圈,让电磁线圈在周围产生磁场来驱动振动膜发音,但需要一定的电流。单片机本身带有I/O引脚电流就很低,所以相对的TTL电平几乎不能满足蜂鸣器的要求,因此要选择合适的电流放大器件,这次设计选择的是PNP三极管以此满足电流放大的要求[13]。图6蜂鸣器驱动电路3.5按键电路此次设计在按键上选择的全部是上拉电阻,在按键不被触碰的情况下,连接单片机一端的输入电平为高,相反情况下,如若按键被触碰,输入信号端则显示低电平。图7按键电路图4.软件系统设计此次设计是通过TIM3定时器来调整PWM的输出频率从而对扬声器进行控制,在优先级设置方面采用NVIC中断。4.1软件系统框图图8软件流程图本文选择STM32F103C8T6作为主要核心,其核心配置分为三个部分:时钟配置部分、I/O口配置部分、定时器配置部分[13]。软件设计的主函数部分是对PWM的输出频率进行调整,其具体流程图中如图8所示。4.2主程序流程图本次设计的主要步骤是先在单片机内部对各个模块初始化处理,随后向外部按键发送扫描码获取其有没有被按下。当有按键被按下的时候就对它进行扫描,然后启动定时器TIM3让它开始工作,通过改变它内部相应寄存器的数值对PWM的输出频率进行调整,最后驱动蜂鸣器产生不同的音符。当然如果没有按键被按下的话,蜂鸣器是不会正常工作的,也就是说扬声器不会播放任何音乐。除此之外,程序设计中还设置了时间为10ms的延时。它的作用是为了消除抖动,能够有效避免按下一个按键发出多次声音的情况,但是对于同一个按键按多次发出相同音调的这种情形是没有影响的,以下图9是系统的主程序流程图。图9系统主程序流程图4.3数码管显示相关段选的计算:数码管选用的是共阴极数码管,位选是低电平有效,段选是高电平有效。选用STM32F103C8T6的PB15作为数码管的位选位,PB0、1、2、11、12、13、14为段选位,分别对应数码管的h、g、f、e、d、c、b、a段。图10一位数码管引脚图显示0时,选中a、b、c、d、e、f段,相应十六进制数为:0x7c04;显示1时,选中b、c段,相应十六进制数为:0x7c04;
显示2时,选中a、b、g、e、d段,相应十六进制数为:0x7c04;显示3时,选中a、b、g、c、d段,相应十六进制数为:0x7c04;
显示4时,选中f、g、b、c段,相应十六进制数为:0x7c04;显示5时,选中a、f、g、c、d段,相应十六进制数为:0x7c04;显示6时,选中a、f、e、g、d、c段,相应十六进制数为:0x7c04;显示7时,选中a、b、
c段,相应十六进制数为:0x7c04;4.4发声原理本次设计的发声装置主要是由PWM和蜂鸣器驱动电路两部分组成。其中蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。前者内部自带震荡电路,它的特点是只要接上电源它就能发声。相比较而言,它的优点是程序控制起来比较方便,而缺点则是它的成本要高出许多。与之对立,后者内部不自带震荡电路,所以让它工作起来是有一定的条件的,这个条件就是只有外部提供的方波范围在2-5KHz以内才能够驱动它正常工作,它的优点是声音频率可控且成本较低。本次设计采取的是有源蜂鸣器,必须给系统提供合适的电流后,系统才能正常运行。单片机本身带有I/O引脚电流就非常低,所以相对的TTL电平很大程度上不能满足蜂鸣器的要求[14]。本次设计中为了满足电流放大的要求,选用的是PNP三极管,它能够很好的起到放大电流的效果。然后将它分别与+5V的VCC电源和三极管的发射极进行正确对接,三极管的基极B先从限流电阻R1端流入,随之由单片机引脚接管并对其进行处理。若单片机引脚输出高电平,三极管T1会被截止,线圈内部不会出现电流,蜂鸣器不工作;如果是低电平的情况,这时候三极管才会正常工作,此时电路才会出现电流,构建完整的系统,系统正常工作发出声音[15]。按照此原理,我们可以编写相应程序来对引脚的高低电平进行设置,从而实现对蜂鸣器声音的自由调整。4.5PWM输出频率计算数字电路中使用计数器完成分频,分频可分为二分频、四分频、八分频等等。不管是几分频,信号经过分频后涵括大部分低电平。由于高电平信号的生命周期十分短暂,而仅仅只用这短暂的高电平信号去驱动蜂鸣器使其发声是不太现实的,所以应该先将此信号2倍频,然后再2分频,其实得到的最终频率与该音符的发声频率等同。从这可以了解到只有将发声信号的占空比设置为50%才能够驱动蜂鸣器正常工作。TIM_Period属于内部芯片,它能够对寄存器周期的值进行设置,当下一个更新事件装配工作时,它就会重新对其数据进行自动装载。TIM_CounterMode采用的计数模式是向上的模式[16]。TIM_Pulse对准备放入到捕获比较寄存器中的脉冲和TIM_Period的数据一起进行设置,这样做能够既方便又准确的对占空比进行调整。TIM_OCMode用于选择定时器模式。根据上述设置不难得到(1)(2)在系统的主函数设计中,通过扫描按键获取外部按键是否被按下后,再来确定是否要执行下一步的操作。5.仿真与调试本章节介绍的是在示波器上观察不同PWM频率下输出的波形图,并对这些波形图的数据和结果进行分析总结。5.1设计结果此次设计制作的电子琴能够完成简易电子琴所能完成的东西。当按下不同的按键时,由于不同的PWM频率产生的音符也不同,所以在扬声器端可以发出8种不同的音符,此外只有把PWM占空比设置为50%时蜂鸣器才可以正常工作。虽然七种音符的占空比均设置为50%,但是它们的PWM频率是不同的,所以产生的音乐自然也就不同。产生的8种音符从DO到高音DO的频率呈现逐渐升高的趋势,于是它们发出的音调也逐渐升高。示波器上PWM输出波形图:DO:图11DoPWM输出波形Rai:图12RaiPWM输出波形Mi:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓储物流系统温控设备运行规范手册
- 危险化学品事故紧急恢复工作方案
- 企业员工职业素养培训计划方案
- 传统技艺传习弘扬承诺书5篇范文
- 智慧园区设施维护周期标准操作手册
- 严谨生产安全责任保证承诺书4篇
- 医院医疗质量安全承诺书范文3篇
- 企业固定资产盘点与处置方案模板
- 2026学年七年级语文上册第三单元第十一课第一次月考含答案及解析
- 现代服务业发展与创新手册
- 2026年青山湖区住房和城乡建设局下属事业单位招聘工作人员8人笔试备考题库及答案解析
- 2026年新版事故应急处置卡模板(新版27类事故分类依据YJT 32-2025要求编制)
- GB/T 214-2026煤中全硫的测定方法
- 2026年公共营养师三级月技能真题(附答案)
- 水泥基渗透结晶防水涂料安全交底
- 2026年上海市徐汇区高三下学期二模化学试卷和答案
- 会诊转诊服务中心工作制度
- 银川市、石嘴山市、吴忠市三市2026年高三年级学科教学质量检测语文
- 2026届广东省汕头市金平区~中考数学全真模拟试卷含解析
- 20S515 钢筋混凝土及砖砌排水检查井
- 烧伤整形科质控课件
评论
0/150
提交评论