模拟电子琴发声控制系统摘要本设计是用AT89S52单片机为核心控制元件,设计一个模拟电子琴发声控制系统。
以单片机作为主控核心,与键盘、扬声器、LED显示器等模块组成核心主控制模块。
在主控模块上设有11个按键,其中7个按键控制7个音符,1个作为功能转换键使用,具有手动随意弹奏和自动播放乐曲的功能,另外3个按键用来实现高、中、低音的音符发音。
下面具体介绍一下单片机各端口的分配功能:单片机的P2.0-P2.6为输入端口,用来控制7个音符的选择弹奏;P2.7为功能转换键,它能切换手动随意弹奏和自动播放乐曲的功能;P2.0-P2.2为单片机控制电子琴实现弹奏高、中、低的功能切换键;P0端口通过上拉电阻接到+5V上,然后接LED共阴数码管;P1.0为单片机的输出端口,它通过限流电阻R与三极管级基极相接,三极管的集电极接有接蜂鸣器。
本设计通过控制单片机定时器的定时时间产生不同频率的音频脉冲,经三极管放大信号后驱动蜂鸣器发出不同音节的声音。
要实现7个音符的各自的高、中、低音,需要建立三个表,分别存储高音、中音和低音的频率值;当三个拨码开关中某一个按下,通过软件选择相应的音频。
按下弹奏键就可弹奏出不同的声音。
另外用软件延时来控制发音时间的长短,来控制节拍。
通过把乐谱中的音符和相应的节拍变换为定时常数和延时常数,作为数据表格存放在存储器中。
由程序查表得到定时常数和延时常数,分别用来控制定时器产生的脉冲频率和发出该音频脉冲的持续时间,这样就可以实现乐曲的演奏。
为了实现按键的准确判断和完善电子琴发声的效果,本设计采用了软件防抖的方法,有效的解决了按键抖动的问题。
另外当按下功能切换键,切换至音乐自动播放功能时,本系统能实现七首歌曲的有选择播放,另附带数码管显示提醒。
这样使得电子琴的功能变的更加强大。
本设计为实物电路板设计开发,报告中详细的阐述了电子琴设计的方法和过程。
并经过软硬件的调试,该音乐发生器不但能通过键盘弹奏出很好的音调,而且还可以通过键盘选择播放不同的音乐。
除此之外,本电子琴还带有显示功能,能显示哪个按键按下,而且相当准确。
本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
目录1 概述 (3)1.1 引言 (3)1.2 设计思路 (4)1.3 方案论证 (4)2 系统总体方案及硬件设计 (4)2.1 系统组成及总体框图 (4)2.2 元件介绍 (5)2.2.1 AT89S52 (5)2.2.2 三极管 (5)2.2.3 LED数码管 (6)2.3 按键选择方案 (6)2.4各功能模块原理图 (6)2.4.1 AT89S52模块电路原理图 (6)2.4.2 键盘扫描模块电路原理图 (7)2.4.3 数码管显示模块电路原理图 (7)2.4.4 音频处理模块电路原理图 (7)3 软件设计 (8)3.1 音乐相关知识 (8)3.2 如何用单片机实现音乐的节拍 (8)3.3 如何用单片机产生音频脉冲 (8)3.4 系统总体功能流程图 (10)4 Proteus软件仿真 (11)4.1 ISIS软件介绍 (11)4.2 仿真图介绍 (11)5 系统调试 (12)5.1 硬件调试 (12)5.2 软件调试 (12)6课程设计体会 (12)参考文献 (12)附1:源程序代码 (22)附2:系统原理图 (23)概述1.1 引言电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
目前市场上各种品牌、型号的电子琴有上百种,由几十块的玩具电子琴到几百,几千的学习、演奏用琴真是琳琅满目,电子琴能够模仿各种音色和具有自动伴奏功能,这些是电子琴最基本的特征。
档次的高低无非是音色模仿的是否逼真,自动伴奏设计的是否丰富,或者增加了其他制作,编曲功能的。
本设计主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴系统硬件组成。
利用单片机产生不同频率来获得我们要求的7个音符,最终可随意弹奏想要表达的音乐。
并且本设计分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
1.2设计思路从系统实现的功能上来看,电子琴的设计主要分为手动弹奏乐曲和自动播放音乐两大部分组成。
手动弹奏乐曲是根据具体的硬件键盘设置了7个音符按键,3个高、中、低音模式切换键和1个功能转换键,自动播放音乐是在单片机的存储器中通过软件编程的方法放置音乐代码和相关播放程序来实现。
从系统硬件结构上来看,主要使用到52系列单片机、7个键输入电路、LED 数码管显示电路、扬声器以及电源电路等等。
将这些硬件电路有机地结合起来使之满足电子琴设计的基本硬件要求。
从系统软件设计角度来看,将电子琴的设计采用程序模块化设计方法,将程序分为主程序、键盘扫描程序模块、数码显示模块、转换控制模块、音乐产生模块等等。
此外,采用程序设计思想,将中断定时方式与外部按键查询方式相结合,实现手动弹奏乐曲到自动播放音乐的切换。
从音乐产生原理方面来看,通过控制单片机的定时器的定时时间产生不同频率的音频脉冲,经放大后驱动扬声器发出不同音乐的声音。
用软件延时来控制发音时间的长短,控制节拍。
把音乐的音符和相应的节拍变换为定时常数和延时常数,作为数据表格存放在程序存储器中,由程序查表得到定时常数和延时常数,分别用来控制定时器产生的脉冲频率和发出音频脉冲的持续时间。
因此,我们可以综合上述的不同角度的方案设计原理,主要从软件和硬件两部分进行有计划有步骤的系统分析与设计,最终确立总体的设计方案。
1.3 方案论证采用AT89C51单片机进行控制,由于它不具备ISP 功能,而且其ROM 只有4K ,系统在将来升级方面没有潜力。
采用AT89S52单片机进行控制,由于其性价比高,完全满足了本系统设计的要求,它的内部程序存储空间达8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。
系统总体方案及硬件设计2.1 系统组成与总体框图硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具有确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。
该设计要实现一种有单片机控制的电子琴,单片机工作于12MHZ 时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号.该设计具有11个音节键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来,本设计可以实现用户自由弹奏音乐。
用单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大器,本设计采用三极管就可以实现信号放大功能。
基于单片机系统的电子琴的基本结构如图(1)所示:图(1)2.2 元件介绍2.2.1 AT89S52功能特性:AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器,使用Atmel公司高密度非易失存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下便准功能:8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8 位微控制器 8K 字节在系统可编程 Flash AT89S52。
主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33Hz 、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。
2.2.2三极管晶体三极管也称三极管,是通过一定的工艺,将两个PN结结合在一起的器件.由于PN结之间的相互影响,使三极管变现出不同于单个PN结的特性而具有电流放大功能,从而使PN结的应用发生了质的飞跃。
本设计采用了S8050三极管,它是小功率、NPN型的信号放大器。
它的外型与封装如下图所示:2.2.3 LED数码管本次设计的显示电路采用LED数码管显示,LED(Light-Emitting Diode)是一种外加电压从而渡过电流并发出可见光的器件。
LED是属于电流控制器件,使用时必须加限流电阻。
LED有单个LED和八段LED之分,也有共阴和共阳两种。
常用的七段显示器的结构如图下图所示。
发光二极管的阳极连在一起的称为共阳极显示器(如图b所示),阴极连在一起的称为共阴极显示器(如图c所示)。
1位显示器由八个发光二极管组成,其中七个发光二极管a~g控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。
此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。
才能显示出正确的数字来。
(a)外形(b)共阳极 (C)共阴极图3-6 数码管引脚2.3 按键选择方案传统电子琴可以用键盘上的“1”到“A”键演奏从低So到高Do等11音。
该设计有11个按钮矩阵,设计成21个音阶,可以实现音阶在低音1-高音7之间。
比传统音阶范围大,弹奏效果好。
2.4 各功能模块原理图2.4.1 AT89S52模块电路原理图2.4.2 键盘扫描模块电路原理图2.4.3 数码管显示模块电路原理图2.4.4 音频处理模块电路原理图软件设计3.1 音乐相关知识乐音听起来有的高,有的低,这就叫音高,音高是由发音物体振动频率的高低决定的,频率高声音就高,频率低声音就低,不同音商的乐音是用C、D、E、F、G、A、B表示的,这7个字母就是乐音的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,这是唱曲时乐音的发音,所以叫唱名。