简易电子琴的设计.doc_第1页
简易电子琴的设计.doc_第2页
简易电子琴的设计.doc_第3页
简易电子琴的设计.doc_第4页
简易电子琴的设计.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子系统设计简易电子琴设计院 系: 信息工程学院专 业: 电子信息科学与技术学生姓名: 郭涛梅学 号: 030941214指导老师: 谭建军 2011年12月摘要:介绍了一种基于AT89C51单片机的电子琴的电路设计方法。该方法是用AT89C51单片机为核心控制器件,与键盘、蜂鸣器等模块构成控制模块。通过8个不同的按键来取出产生好的单片机内定时器的8种不同频率的方波脉冲来推动喇叭发出旋律,产生电子基音音阶(do,re,mi,fa,so,la,si,高音do),从而实现简易电子琴设计。还有扩展的两个功能,一是先自动顺序播放do,re,mi,fa,so,la,si,高音do,然后倒序播放do,re,mi,fa,so,la,si,高音do;二是播放一首简单的生日歌。该系统运行稳定,硬件电路简单,软件功能完善,控制系统可靠,性价比高,能够达到预期目的。关键字:AT89C51 单片机 555定时器 脉冲触发 电子琴一、设计任务及要求1、要求有7个音阶,可以用数字芯片构成,也可以用单片机构成2、用EWB仿真或其他软件仿真3、搭建实体电路4、打印出实验报告,并分析实验结果二、系统方案与论证2.1 系统总体方案方案一:采用555定时器构建电路, 采用一个555集成定时器组成简易电子琴。整个电路由主振荡器,颤音振荡器,扬声器和琴键按钮等部分组成。主振荡器由555定时器,电阻,按键及电容组成。系统框图如图2-1所示:图2-1 方案一系统框图典型电路图如图2-2所示: 图2-2 方案一电路图555定时器电路电路较为简单,但得到的效果不怎么好,无法得到标准的频率。而且电阻必须要非常精确,一般无法达到。方案二:采用AT89C51单片机为核心,通过按键控制单片机的P30口产生一定频率的方波,从而驱动扬声器发声。系统方框图如图2-3所示:图2-3 方案二系统框图系统电路图如图2-4所示:图2-4 方案二电路图电路较为简单,而且程序易编写,输出的波形稳定,产生的频率准确,容易控制,能够达到预期效果。综上所述,选择方案二。程序流程图如图2-5所示:图2-5 方案二程序流程图2.2 按键开关控制部分 采用查询加中断的方式, 共8个按键,先对8个按键进行扫描,若有键按下则产生该键值对应的频率的方波,来推动扬声器发音。这8个按键为8个音符即do,re,mi,fa,so,la,si和高音do。2.3 扬声器驱动部分2.3.1 扬声器选择方案一:压电式蜂鸣片:片状发声元件。有普通型(厚度0.4毫米)、薄型(厚度0.2毫米)、超薄型(厚度0.1毫米以下)和偏心、方形、唤醒、双面形、反馈形等各种异型产品。能满足500Hz20kHz不同频率发生的要求,可开发厚度3毫米的卡片式扬声器。方案二:小型扬声器(喇叭):是动圈式发生器件,其构造有外磁、内磁、塑架、铁架、纸盒、膜片、大磁、薄型等不同类别。音频电能通过电磁、压电或静电效应,使其纸盒或膜片振动周围空气造成音响。按换能机理和结构分动圈式(电动式)、电容式(静电式)、压电式(晶体或陶瓷)、电磁式(压簧式)、电离子式和气动式扬声器等,电动式扬声器具有电声性能好、结构牢固、成本低等优点,应用广泛;按声辐射材料分纸盆式、号筒式、膜片式;按纸盆形状分圆形、椭圆形、双纸盆和橡皮折环;按工作频率分低音、中音、高音,有的还分成录音机专用、电视机专用、普通和高保真扬声器等;按音圈阻抗分低阻抗、高阻抗;按效果分直辐和环境声等。经过综合比较,电子琴用扬声器为保证其优质的重放效果,不仅要满足其较高的技术性能指标,而且更要注重其实际试听效果,选择了动圈式发生器件,0.5W的扬声器,在空旷的房间里一般能够听得到。2.3.2 扬声器驱动选择采用双晶体管串联驱动扬声器,电路简单,无噪声。三、理论分析与计算3.1 按键模块设计中共用到了10个按键,其中八个(K1到K8)与单片机的P2口相连,分别是产生do,re,mi,fa,so,la,si和高音do,另外两个(K9、K10)分别接P3.2和P3.3,其中K10是自动连续播放do,re,mi,fa,so,la,si和高音do,si,la,so,fa,mi,re,do;K9为自动播放生日歌。 他们的另一端都接地,电路图如图3-1所示: 图3-1 按键部分电路3.2 扬声器驱动模块 扬声器接单片机的P10口,通过在P10口产生一定频率的方波,电路图如图3-2所示:图3-2 扬声器驱动电路要想产生方波信号,需要算出某一音频的周期,然后将此周期除以2,即半周期的时间。利用单片机定时器定时这个半周期的时间,每当计时时间到后将输出脉冲的I/O口反相,然后重复计时半周期时间再次反相,这样就可以在I/O口得到此频率的方波。产生的中音频率如下表所示:音调DORIMIFASOLASI频率(Hz)523587659698784880987定时时间64580644846477764820648986496865030 设计中,利用8个按键控制单片机的输出口产生不同频率的方波;利用定时器0使其工作在工作模式1下,改变计数初值TH0和TL0来产生不同频率的方波。初值的计算方法如下:计数脉冲值与时钟的关系为 式中,为机器频率,其中,为想要产生的频率。其计数初值的求法如下: 假设外部晶振为12M,则时钟周期为1us,则上式可以化为: 对于频率为523Hz的方波, 对于频率为587Hz的方波, 对于频率为659Hz的方波, 对于频率为698Hz的方波, 对于频率为784Hz的方波, 对于频率为880Hz的方波, 对于频率为987Hz的方波,接下来就是将T值赋给TH0和TL0,计算公式如下: 四、测试结果分析与总结4.1 测试结果分析 每按下一个键,会听到扬声器发出一定频率的声音,而且7种声音各不相同,频率越小,周期越大,信号宽度越大。用示波器在P30口测每个按键按下后的波形,如下图4-1所示。由于本设计的仿真效果主要靠耳朵来听,所以很难较好的表达成可以看出的现象,在这里用所对应的频率来表示该音阶。图4-1 第一阶do测出波形的频率为523.23Hz图4-2 第二阶re 测出波形的频率为587.47Hz图4-3第三阶mi 测出波形的频率为659.43Hz图4-4 第四阶fa 测出波形的频率为698.32Hz图4-5 第五阶so 测出波形的频率为784.62Hz图4-6第六阶la 测出波形的频率为880.85Hz 图4-7 第七阶si 测出波形的频率为987.54Hz 4.2 实验总结设计中用独立按键设置7种不同的频率,模拟7种音阶,电路简单,达到了实验的预期效果。在设计过程中遇到了一些的问题,例如在写程序的过程中出现多次编译错误,经过了很多次的调试,问了很多同学和参考了很多资料后才调好。虽然程序没有问题了,但是仿真的效果不是很理想,音质没有想象中那么清晰。时间间隔控制的挺慢的。不过总的来说这个设计还是到达并超过了设计要求。参考文献:【1】新概念51单片机C语言程序教程 郭天祥编:哈尔滨工业大学出版社【2】农业装备技术(Agricultural Equipment & Technology)第36卷第5期2010年10月【3】中国高新技术企业2010年第36期(总第171期)【4】单片机开发与应用,刘建超:【用单片机制作简单电子琴】附录: 源程序代码#include #define shumaguan P0 /定义数码管段码输出 sbit LED =P11;sbit SPK =P10; /定义方波输出口unsigned int tone1,tone2;/*标准音符表*/用于使定时器初值变化以产生相应频率的定时unsigned char code yinfu=0xfb,0xe9, /Do 0xfc,0x5c, /Re 0xfc,0xc1, /Mi 0xfc,0xef, /Fa 0xfd,0x45, /So 0xfd,0x92, /La 0xfd,0xd0, /Si 0xfd,0xee, /高音Do 0x00,0x00 ;/音符之间的间隔,只要间隔时间小于65ms时,喇叭不会发出声音,用作拍子之间的短暂停顿 /*生日快乐歌音调表*/unsigned char code shengri_tone=1,0,1,2,1,4,3,0, 1,0,1,2,1,5,4,0, 1,0,1,8,6,4,3,2,0, 7,0,7,6,4,5,4,0 ;/0代表不发声,即停顿;数字即为音调 /*生日快乐歌节拍表*/unsigned char code shengri_beat=24,1,24,48,48,48,72,5, 24,1,24,48,48,48,72,5,24,1,24,48,48,48,48,72,5,24,1,24,48,48,48,72,5 ;/节拍,即tone表各音调的延时 /*自动演示音调表*/unsigned char code yanshi_tone=1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,8,0,7,0,6,0,5,0,4,0,3,0,2,0,1,0; /*自动演示节拍表*/Unsigned char code yanshi_beat= 48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,2, 48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,2 ;/*15ms延时子程序,用于节拍*/void delay(void) unsigned char n=15; while(n-) unsigned char i; for(i=0;i=33) return; /数值是shengri相关表中的元素数量 /*演奏子程序2*/void play2(void) unsigned char m=0; unsigned char s; unsigned char a=1; while(1) EA=0; LED=0; a=yanshi_tonem; shumaguan=a; s=yanshi_beatm; tone1=yinfu2*a-2; tone2=yinfu2*a-1; EA=1; while(s-) delay(); LED=1; m+; if(m=32) return; /*按键检测*/void check_key(void) P2=0xff; P3=0xff; /设置为输入状态 switch(P2) /检测按键,输出数码管、载入定时器初值、允许中断 case 0xfe:shumaguan=0x1;tone1=0xfb;tone2=0xe9;EA=1;break; case 0xfd:shumaguan=0x2;tone1=0xfc;tone2=0x5c;EA=1;break; case 0xfb:shumaguan=0x3;tone1=0xfc;tone2=0xc1;EA=1;break; case 0xf7:shumaguan=0x4;tone1=0xfc;tone2=0xef;EA=1;break; case 0xef:shumaguan=0x5;tone1=0xfd;tone2=0x45;EA=1;break; case 0xdf:shumaguan=0x6;tone1=0xfd;tone2=0x92;EA=1;break; case 0xbf:shumaguan=0x7;tone1=0xfd;tone2=0xd0;EA=1;break; case 0x7f:shumagua

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论