多功能电子琴.doc_第1页
多功能电子琴.doc_第2页
多功能电子琴.doc_第3页
多功能电子琴.doc_第4页
多功能电子琴.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

多功能电子琴作品简介:漂亮的外观,清澈洪亮的声音,闪闪发亮的彩灯,相信早已吸引住你的眼球!这是一款纯手工打造的电子琴,实为接近MM、生日礼物必备佳品。其成本不会超过20元。作品功能:通过8个按钮可以演奏出基本的8种音调:Do、Re、Mi、Fa、SO、La、Si、高音Do;演奏的同时会以数字显示出当前的音调,利于培养乐感;可以自动演示这8个音调;可以演奏内置生日快乐歌。自动演奏时,LED进行节拍指示。使用方法:通过按下方的8个音调键演奏乐曲;按演示按钮可以自动演奏这8种音调;按奏乐按钮可以演奏生日快乐歌;在自动演示和奏乐的过程中按停止键则中断演奏;音量调节按钮可以选择音量大和小。基本原理:一定频率产生声音,频率高低决定音调。利用单片机输出脉冲信号经放大后送给喇叭,便可发出声音。本制作中巧妙地利用了单片机的定时器,让定时器中断一次就对改变喇叭的状态一次,即形成矩形方波,这也是数字电路产生声音的方法。本作品使用AT89S52型单片机,ISP在线下载使得修改芯片里面的内容相当简单,便于作品的升级与优化。硬件电路:51单片机最小系统部分:8颗独立按键加上两颗功能键,按键需接上拉电阻。S1S8为音调按钮,S9、S10为演奏按钮:喇叭驱动电路,speaker接单片机的P1.0口,喇叭安装在箱体中:LED电路,led接单片机的P1.1口。注意,这里的LED是那种通电自己会闪的,这样才能有视频中的效果:数码管电路,选用共阳数码管,ADP依次接单片机P0.0P0.7:软件设计:/*程序名称:多功能电子琴简要说明:P1.0口输出各音调的频率方波 本程序可方便地更改内置音乐的内容编 写:JiangX.net更新时间:08/10/18晚*/#include#define SPK P1_0 /定义方波输出口#define LED P1_1#define shumaguan P0 /定义数码管段码输出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; 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=0xF9;tone1=0xfb;tone2=0xe9;EA=1;break; case 0xfd:shumaguan=0xA4;tone1=0xfc;tone2=0x5c;EA=1;break; case 0xfb:shumaguan=0xB0;tone1=0xfc;tone2=0xc1;EA=1;break; case 0xf7:shumaguan=0x99;tone1=0xfc;tone2=0xef;EA=1;break; case 0xef:shumaguan=0x92;tone1=0xfd;tone2=0x45;EA=1;break; case 0xdf:shumaguan=0x82;tone1=0xfd;tone2=0x92;EA=1;break; case 0xbf:shumaguan=0xF8;tone1=0xfd;tone2=0xd0;EA=1;break; case 0x7f:shumaguan=0x79;tone1=0xfd;tone2=0xee;EA=1;break; default: EA=0;SPK=0;shumaguan=0xff;/如果没有键按下则关闭中断和数码管 switch(P3) case 0xfb:play1()

温馨提示

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

评论

0/150

提交评论