毕业论文
您现在的位置: 电子琴 >> 电子琴前景 >> 正文 >> 正文

51单片机7键电子琴音乐播放器仿真源

来源:电子琴 时间:2022/5/31

AD封装库元器件库大全:封装库

资源目录:

本设计

基于51单片机的7键电子琴音乐播放器proteus(仿真+源码+原理图)

原理图:AltiumDesigner

仿真图proteus7.8

程序编译器:keil4/keil5

编程语言:C语言

编号C

设计介绍:

本次设计首先对单片机设计简易电子琴仔细分析,接着制作硬件电路和编写软件的程序,最后进行软硬件的调试运行。并且从原理图,主要芯片,各模块的原理和各个模块的程序调试来阐述。利用单片机产生不同频率来获得我们要求的音阶,实现高、中、低共21个音符的发音和显示和音乐播放时的控制显示,并且能自动播放程序中编排的音乐。系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比高等,具有一定的使用和参考价值。

设计思路:

用独立式键盘的7个按键分别对应相应的音符,当按下某一个按键时,产生一个相应音符,操作者按一定的节奏、规律进行输入时,信号经过单片机处理,然后经音频放大后经扬声器输出音频信号,产生乐曲。本次设计有一个创新,就是预先存放一段音乐程序在芯片内,整个设计既可以作电子琴用又可以作音乐盒用,且带显示功能。

仿真图(提供源文件):

原理图:

程序(提供源文件源码):

以下为部分程序,完整程序可在下载链接获取:

ucharcodetable1[]={0x3F,/*0*/0x06,/*1*/0x5B,/*2*/0x4F,/*3*/0x66,/*4*/0x6D,/*5*/0x7D,/*6*/0x07,/*7*/0x7F,/*8*/0x6F,/*9*/0x37,/*N*///中音0x38,/*L*///低音0x76,/*H*///高音0x79/*E*/};//共阴极数码管ucharcodetable2[]={0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,//中音0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,//低音的高8位0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,};//音阶频率表低八位ucharcodetable3[]={0x8E,0xED,0x44,0x6B,0xB4,0xF4,0x2D,//中音0x21,0xDB,0x87,0xD7,0x68,0xE8,0x5B,//低音的低8位0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};ucharcodetable4[]={1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,4,3,1,5,6,5,4,3,1,1,12/*低音5*/,1,1,12,1};ucharcodetable5[]={4,4,4,4,4,4,4,4,4,4,8,4,4,8,2,1,2,1,4,4,2,1,2,1,4,4,4,4,6,4,4,6};uchari;ucharkey,aa=0;ucharbb,cc;bitflag=0;//延时子函数voiddelay(uintz){uintx,y;for(x=z;x0;x--)for(y=;y0;y--);}voidin(ucharData){uchari;for(i=0;i8;i++)//循环8次,刚好移完8位{Data=1;SCL1=CY;SDA1=1;//先将移位寄存器控制引脚置为低_nop_();_nop_();SDA1=0;}}voidout(){SCL2=0;//先将存储寄存器引脚置为低_nop_();SCL2=1;//再置为高,产生移位时钟上升沿,上升沿时移位寄存器的数据进入数据存储寄存器,更新显示数据。_nop_();SCL2=0;}//初始化子函数voidinit(){beep=0;D1=1;D2=0;EA=1;//开总中断TCON=0x01;//外部中断0设置为边沿触发EX0=1;//开外部中断0ET0=1;ET1=1;TMOD=0x11;//定时器0,1工作在定时状态,均为方式1}//数码管显示子函数voiddisplay1(){in(table1[aa]);//再传段码out();W1=0;;delay(1);//延迟时间2ms以内W1=1;in(table1[cc+1]);//再传段码out();W2=0;delay(1);//延迟时间2ms以内W2=1;}//高低音选择子函数voidyinjie(){if(k10==0){delay(5);if(k10==0){aa=10;bb=0;//返回10为seg[10]显示C}}if(k9==0){delay(5);if(k9==0){aa=11;bb=1;//返回11为seg[11]显示L}}if(k11==0){delay(5);if(k11==0){aa=12;bb=2;//返回12为seg[12]显示H}}if(aa==0){aa=13;}}//播放音乐子函数voiddisplay_music(){TH0=table2[table4[i]-1];TL0=table3[table4[i]-1];while(flag==0){if(i32){TR0=1;delay(57*table5[i]);i++;}if(i==32){i=0;}}}

设计报告:

资料清单:

本设计资料下载链接:

注:仿真程序等源文件需要使用电脑打开,下载到电脑再使用解压密码进行解压!更多资源扫文章最上面

转载请注明:http://www.0431gb208.com/sjsbszl/458.html