1、参考文献:.12致 .13附录:.14外文页:.23电子音乐发生器的设计摘 要 电子音乐发生器的设计以STC89C52单片机作为系统的核心控制部分,由按键电路、时钟与复位电路、音频功放电路、扬声器和LCD液晶显示电路五部分组成。各部分电路协调工作,然后进行软硬件的调试运行,最终达到设计电路的乐器演奏、播放乐曲及显示功能。设计中应用中断系统和定时/计数原理控制演奏器发声,对音乐发生所必须确定的音符和节拍分别用程序语言实现。可以用它来弹奏和播放乐曲。特点是设计思路简单、清晰,成本低。关键词 音乐发生器 单片机 音符 节拍1序言1.1音乐发生器的现状与发展除了PC和大型计算机系统以外,今天每一个人都
2、很熟悉的嵌入式电子设备如电饭褒、空调、洗衣机、热水器、遥控多功能风扇、冰箱、电视、DVD播放机、MP3播放机、充电器、手机、汽车、电动自行车、电梯、飞机、火车等都采用了不同性能档次、不同温度围和不同成本等级的单片机。基于单片机的设计创新和产品创新看起来似乎永无止境,而且它们也的的确确在方方面面日益完善和丰富着我们每个人的日常生活和工作。电子音乐发生器是现代电子科技与音乐结合的产物,它在现代音乐扮演者重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已融入现代人们的生活中,成为不可替代的一部分。1.2课题的设计任务本文的主要容是用STC89C52单片机为核心控制元件,设计一个电子音乐发
3、生器。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控制模块上设有11个按键和扬声器。本文主要对使用单片机设计简易电子音乐发生器进行了分析,并介绍了基于单片机电子音乐发生器硬件系统组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图、主要芯片、各模块原理及各模块的程序的调试来详细阐述。一首音乐是由许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了。当然对于单片机来说,产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样频率的方波信号,因此,我们只要
4、把一首歌曲的音阶对应频率关系弄正确即可。 2 硬件系统设计2.1系统结构和工作原理2.1.1系统结构该设计以STC89C52单片机为控制核心,时钟与复位电路、功能键盘、LM386驱动电路、1602液晶显示电路以及电源等部分组成。系统结构框图如图1所示。 图1 系统结构框图2.1.2工作原理声音是通过振动产生的。单片机对某一I/O引脚以一定的频率循环置一清零,这一引脚便产生一定频率的方波,该方波通过放大后作用于扬声器便产生一定频率的声音。若改变输出方波的频率,产生的声音也就改变了。通过控制输出方波的时间长短,声音的长短也就得到控制。因此,根据乐谱,单片机就可产生电子音乐。音乐中最关键的两个要素就
5、是音符和节拍。每个音符对应一特定固定的频率,同时为了编程的方便,给每个音符设置简谱码,简谱码以十六进制数表示,音符的频率确定后,其倒数就是周期,该周期可用单片机的定时器实现。在每个周期,高、低电平的时间各占一半,因此,输出脚在每个方波周期要动作两次,一次为高电平,一次为低电平。音符频率和简谱码的对应关系如表1所示,音符和时间常数对应关系如表2所示。表1 音符频率和简谱码对应关系音符低5SO低6LA低7SI中1DO中2RE中3MI中4FA中5SO中6LA中7SI频率(HZ)390440494523578659698784880988简谱码123456789AN642606440064524645
6、80646846477764820648986496865030表2 音符和时间常数对应关系将表中N的值送给定时器,启动定时后,在输出脚上便可产生对应的音符频率。通过建立节拍码和节拍数的对应关系,然后在软件中利用延时便可实现相应的节拍。节拍码用十六进制数表示,节拍码和节拍数的对应关系如表3表3 节拍码和节拍数的对应关系节拍码CF节拍数1/42/43/45/43/25/215/42.2系统硬件设计2.2.1单片机控制电路STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51核,但做了很多的改进使得
7、芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,置4KB EEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,
8、RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选 。 图2 STC89C52单片机芯片2.2.2时钟与复位电路STC89C52中有一个用于构成部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或者瓷谐振器一起构成自然振荡器。外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性 。在此设计中选取:12MHZ
9、时钟频率。 图3 单片机振荡电路与其他计算机一样,MCS-51单片机系统的复位方法有上电自动复位、手动复位以及“看门狗”复位等。此最小系统采用手动复位电路。在系统运行过程中,有时可能对系统需要进行复位,为避免对硬件经常加电和断电造成的损害,我们可以采用手动复位。这种方法是将一个开关串联一只电阻后,再并联于电容C的两端,在系统运行过程中需要复位时只要使开关闭合,在RST引脚上就会出现一定时间的高电平信号,从而使单片机实现复位。图4复位电路2.2.3功能键盘本系统中用到11个独立按键完成对整个硬件电路系统的控制,其中,P3.2口完成发生器的工作模式选择功能。在乐曲播放模式下,P3.3口实现乐曲的选
10、择,P3.5口按键实现乐曲的暂停与播放功能。在乐曲演奏模式下,设P1.3、P1.6、P1.7、P2.0-P2.3这7个按键,分别代表7个音符,包括中音段的全部音符。用单片机的I/O口接独立键盘即可满足需要,软件消除抖动处理,并能准确判断所需执行的相应程序。通过软硬件设计,按键触发外部中断(按键P3.2),中断使程序跳转,实现模式转换,启动电子琴。P2.4按键是用来选择音调(低音-中音-高音)的。然后通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现各种琴键的声音 。表4 键盘基本功能表(1)(哆)(2)(嘞)(3)(咪)(4)(发)(5)(唆)(6)(啦)(7)(嘻)(
11、8)(换音调)11个按键与单片机的连接电路图如下:图5独立键盘模块2.2.4LM386驱动电路LM386是美国半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值直至 200。输入端以地为参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。LM386是一种低电压通用型音频集成功率放大器,广泛应用于收音机、对讲机和信号发生器中; LM386的外形与管脚图如图6所示,它采用8脚双列直插式塑料封装。静态功耗低,约为4
12、mA,可用于电池供电。工作电压围宽,4-12V or 5-18V。外围元件少。电压增益可调,20-200。低失真度。LM386有两个信号输入端,2脚为反相输入端,3脚为同相输入端;每个输入端的输入阻抗均为50 k,而且输入端对地的直流电位接近于零,即使输入端对地短路,输出端直流电平也不会产生大的偏离。 图6 LM386外形与管脚分配用LM 386组成的OTL功放电路如图7所示,信号从3脚同相输入端输入,从5脚经耦合电容(47F)输出。当1脚和8脚之间不介入任何器件时,电路的放大增益为20。 图7 音乐发生器音频功放电路图2.2.5 1602液晶显示电路1602液晶也叫1602字符型液晶,它是一
13、种专门用来显示字母、数字、符号等的点阵型液晶模块。1602LCD是指显示的容为162,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。1602采用标准的16接口,其中:第1脚:VSS为电源地。第2脚:VDD接5V电源正极。第3脚:VEE液晶驱动电压。第4脚:RS为寄存器选择,高电平1时选择数据寄存器,低电平0时选择指令寄存器。 图8 液晶显示接口电路第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。第6脚:E端为使能端,高电平时读取信息,负跳变时执行指令。第714脚:D0D7为八位双向数据端。第1516脚:15脚背光正极,16脚背光负极 。LCD1602接口如图8所
14、示。3 软件系统设计3.1主程序功能:图9 主程序流程图3.2音乐发生程序设计音乐演奏控制器是通过单片机部的定时器T0来产生不同频率的方波,驱动喇叭发出不同音节的声音,再利用延迟来控制发音时间的长短,即可控制音调中的节拍。把乐谱中的音符对应的频率转换为定时常数,把相应的节拍变换为延时常数,然后作成表格存放在存储器中,由程序查表得到定时常数和延时常数,分别用以控制定时器产生方波的频率和该方波的持续时间。当延时时间到时,再查下一个音符的定时常数和延时常数。依次下去,就可演奏悦耳动听的音乐 。其具体流程图如下图10所示。 图10 音乐发生程序流程图3.3发生器演奏功能下按键程序设计判断是否有按键按下
15、,没有则不停查询,如有则喇叭发出声调。按键使用流程图如下: 图11 按键扫描流程图3.4LCD显示程序设计LCD显示程序开始后首先设置LCD显示模式和输入方式,同时还要设置显示开关及光标位置,接着写入清屏命令并取预定义字符串,最后在写入DDRAM地址和显示字符的ASCII码程序返回。这样每当按键按下一个功能键时,在LCD显示屏上就能显示相应歌曲的名称。其流程图如下图12所示。 图12 液晶显示流程图4 结束语本文设计的以STC89C52单片机为控制核心的电子音乐发生器,在软硬件有机结合下,可以实现手动弹奏和音乐播放的双功能,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,
16、改变计数值TH0和TL0可以产生不同频率的脉冲信号。该设计用8个按钮,设计成21个音,可以实现音阶在低音-中音-高音的变化。比传统音阶变化围大,弹奏效果好。用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。用单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。同时,用户还可以选择音乐播放模式,从而欣赏预先存储的乐曲。该发生器还可以通过液晶屏显示出正在播放乐曲的曲名以及次序。该发生器具有设计简单、操作方便、价格
17、低廉的特点,对于现代人们的生活具有广阔的应用前景和实用价值。1 忠平,单片机原理及接口M.清华大学,2007。2 凤强,单片机语言C51应用实践集锦M.电子工业,2006。3 毅刚,单片机原理及应用M.高等教育,2010。4 徐爱卿,单片微型计算机应用和开发系统M.航空航天大学,2008。5 广弟,朱月秀,王秀山,单片机基础M. 航空航天大学,2006。6 吴金戌, 8051单片机实践与应用M.清华大学大学,2003。7 V.Yu.Teplov,A.V.Anisimov.Thermostatting System Using a Single-Chip Microcomputer and Th
18、ermoelectric Modules Based on the Peltier EffectJ.2002. 致 经过一个多月的毕业设计,我从中受到很大的教育和启迪。不仅将大学所学的知识进行了实际应用,还学到了很多书上学不到的知识。开阔了视野,增长了知识,积累了经验。在本文即将完成之际,我要在此向所有关心过我,帮助过我的老师、同学和朋友们说一声衷心的我的毕业论文(设计)撰写工作自始至终是在老师全面、具体的指导下进行的。丽飞老师渊博的学识、敏锐的思维、而严谨的作风,使我受益匪浅,终生难忘。老师严谨的治学态度和对工作兢兢业业、一丝不苟的精神将永远激励和鞭策我认真学习、努力工作。源程序代码:#in
19、clude intrins.h#define uchar unsigned char#define uint unsigned int/*液晶显示数组表*/uchar code table816=song 1 ,song 2 song 3 song 4 tong yi shou ge song bie sheng ri kuai leyueliangdaibiaow;/*子函数声明*/void PlayMusic();void Run();void PlayKey();void KeyScan();void Display();void KeyScan1();/uchar KeyScan2()
20、;/*手动弹奏按键定义*/sbit Beep=P27;sbit key1=P13;sbit key2=P16;sbit key3=P17;sbit key4=P20;sbit key5=P21;sbit key6=P22;sbit key7=P23;sbit key8=P24;/*播放模式下按键定义*/sbit s3=P35;/暂停/播放键/sbit s2=P35;/上一曲/sbit s3=P36;/下一曲/*液晶控制端口定义*/sbit lcden=P12;sbit lcdrw=P11;sbit lcdrs=P10;uchar Th0,Tl0;uchar key=0;/按键代号uchar y
21、infu,jiepai,i,j,m;uchar gaodi=0;uchar flag=0;/模式,0表示音乐,1表示按键uchar flag1=0;uchar num;/全局变量uchar s1num;/暂停/播放键按下的次数/歌曲音符/*uchar code MusicCode=0xfc,0x0b,0xfc,0x43,0xfc,0xab,0xfd,0x08,0xfd,0x33,0xfd,0x81,0xfd,0xc7,0xfe,0x05,0xfe,0x21,0xfb,0x8f,0xfb,0x03;*/uchar code MusicCode=0xfc,0x44,0xfc,0xac,0xfd,0
22、x09,0xfd,0x34,0xfd,0x82,0xfd,0xc8,0xfe,0x06,0xfb,0x04,0xfb,0x90,0xfc,0x0c,0xfe,0x22,0xf9,0x5b,0xfa,0x15;/按键音符uchar code KeyCode=0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,0xfb,0x03,0xfb,0x8f,0xfc,0x0b,/*低音*/0xfc,0x43,0xfc,0xab,0xfd,0x08,0xfd,0x33,0xfd,0x81,0xfd,0xc7,0xfe,0x05,/*中音*/0xfe,0x21,0xfe,0x55,0xfe,0x84,0xfe,0x99,0xfe,0xc0,0xfe,0xe3,0xff,0x02/*高音*/;/*模式选择外部中断*/void interrupt0() interrupt 0 /外部终端0 flag=flag;/*曲目选择外部中断*/void interrupt1() interrupt 2/外部终端1 flag1=1;/*延时子程序*/void delay_1ms(uint i)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1