基于单片机的音乐播放器文档_第1页
基于单片机的音乐播放器文档_第2页
基于单片机的音乐播放器文档_第3页
基于单片机的音乐播放器文档_第4页
基于单片机的音乐播放器文档_第5页
已阅读5页,还剩30页未读, 继续免费阅读

下载本文档

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

文档简介

基于单片机的音乐播放器文档基于单片机的音乐播放器文档35/35基于单片机的音乐播放器文档西北师范大学知行学院计算机与电子信息工程系课程设计报告书课程名称:单片机程序设计专业:电子信息工程课题名称:基于单片机的音乐播放器设计班级:12电本班学号:201292160124姓名:窦红莉指导教师:胡亚琦二○一四——二○一五学年第一学期基于单片机的音乐播放器设计一、实验题目基于单片机的音乐播放器设计二、实验内容本设计是一个基于AT89C51系列单片机的音乐播放器,依照单片机技术原理,经过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐播放器。该音乐播放器主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。使用两个按键控制音乐播放器,一个用来切换歌曲,另一个用来切换8路LED的变化花式,本音乐盒共有两首歌曲,花式灯花式共计3种。播放歌曲时,蜂鸣器发出某个音调,与之对应的LED亮起。本设计利用KEIL编程软件对音乐播放器源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。【要点字】音乐盒;AT89C51单片机;KEIL;PROTEUS;音调三、设计目的1、设计方案设计一个基于AT89C51系列单片机的音乐播放器,利用按键切换演奏出不同样的乐曲。蜂鸣器发出某个音调,与之相对应的LED亮起。使用两个按键,一个用来切换歌曲,另一个切换八路LED的变化花样。2、研究内容1)电路有两种工作模式:演奏音乐模式和花式灯模式。演奏音乐模式:演奏完满的一首的歌曲,八路LED随着音乐变化。花式灯模式:八路LED变化出各种花式,蜂鸣器随着发出“嘀嘀”声2)按下按键1进入演奏音乐模式,再按切换歌曲,共两首歌曲。3)按下按键2进入花式灯模式,再按切换LED花式,共三种花式。此电路的程序只占用了1K左右,可编制更多的音乐和LED花式,使系统的功能更加富强。3、设计原理1)系统组成框图音乐播放器的系统结构以AT89C51单片机位控制核心,加上2个按键、时钟复位电路、蜂鸣器、LED模块组成。单片机负责接收按键的输入,依照输入控制音乐播放曲目和音乐花式灯的显示样式以及蜂鸣器发音。系统组成框图如图2.1所示。2)音乐盒的功能结构图音乐播放器的功能结构如图2.2所示。Key1负责切换播放歌曲,播放歌曲共2首,分别是千年之恋和孤单沙洲冷。Key2负责切换LED显示花式,显示花式共3种,第一种序次显示,第二种由两边向中间搬动尔后向两边搬动,第三种循环显示。3)硬件设计四、整体设计框图五、调试5.1检查硬件连接在PROTUES检查各硬件管脚可否连接正确,线路逻辑可否正确,比方:晶振电路的连接,复位电路可否设计正确。5.2检查软件系统1.依照系统的原理结构检查各流程图可否正确,再依照流程图来检查程序可否也正确。2.将所有程序组织起来,在软件环境下运行,检查程序可否正确。经过对硬件和软件系统的认真检查,屡次测试,若是没有出现问题即可把源程序编译成HEX文件装载到单片机中,对硬件进行仿真。5.3测试结果.整体运行图.花式灯3种花式图由于截图只美丽到静态图,不能够看到整体图样,下面画图说明:1)第一种花式灯显示方式为:从D1移向D2,尔后D1熄灭,再从D2移向D3,尔后D2熄灭,以此类推,往来循环。(2)第二种花式灯显示方式为:从两边向中间搬动,第一从向D8,再从D8移向D2,以此类推,往来循环。详细如图

D15.3。

移3)第三种花式灯显示方式为:从D1移向D2,尔后D1熄灭,再从D2移向D3,尔后D2熄灭,以此往来循环。与第一种方式的不同样之处为:当D1移向D2时,D1不熄灭,再从D2移向D3时,D2也不熄灭,以此类推。六、实验程序#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitduan=P2^6;sbitkey1=P3^2;//按key1可切换花式sbitkey2=P3^3;//按key2可切换歌曲sbitfm=P0^7;//蜂鸣器连续的IO口sbitP34=P3^4;//矩阵键盘的一列ucharcodehuayang1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};//花式1ucharcodehuayang2[]={0x7f,0xfe,0xbf,0xfd,0xdf,0xfb,0xef,0xf7,0xef,0xfb,0xdf,0xfd,0xbf,0xfe};//花式2ucharcodehuayang3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x0,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};charcodehuayang4[]={0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0};ucharcount1;//花式标志ucharcount2;//歌曲标志uchartimeh,timel,i;//简谱//编程规则字节高位是简谱,低位是连续时间,//代表多少个十六分音符//1-7代表中央C调,8-E代表高八度,0代表逗留//最后的0是结束标志ucharcodeqnzl[]={//千年之恋0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xA8,0x08,//前奏0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,//竹林的灯火到过的沙漠0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,//七色的国家不断俊逸风中0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,//有一种奇特灰色的旋涡0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02,//将我卷入了迷雾中0x63,0xA1,0xA2,0x62,0x92,0x82,0x52,//看不清的双手0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7C,0x02,//一朵花传来谁经过的温柔0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76,//穿越千年的伤痛0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,//只为求一个结果0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,//你留下的轮廓指引我0x42,0x63,0x83,0x83,0x91,0x91,//黑夜中不孤单0x61,0x71,0x82,0x71,0x62,0x0A2,0x71,0x76,//穿越千年的忧虑0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,//是你在尽优等我0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,//最美丽的动人会值得0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff//结束标志//用一世等待};ucharcodejmszl[]={//孤单沙洲冷0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,//自你走后心憔倅0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14,//白色油桐风中纷飞0x51,0x52,0x31,0x52,0x62,0x13,0x11,0x13,0x32,0x28,0x08,0x28,//落花似人有情这个季节0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52,//河畔的风?嚣张拼命地吹0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63,//不断拨弄离人的眼泪0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54,//那样浓烈的爱再也无法给0x22,0x12,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26,//伤感一夜一夜0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,//当记忆的线围绕过往支离破碎0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34,//是慌乱据有了心扉0x31,0x81,0x81,0x81,0x61,0x91,0x82,//有花儿伴着蝴蝶0x51,0x51,0x51,0x51,0x31,0x61,0x53,//孤雁能够双飞0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x26,//更深夜静独彷徨0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52,//当幸福恋人寄来红色分享欢乐0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56,//闭上双眼伤心头也不敢回0x32,0x32,0x81,0x81,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34,//依旧捡尽寒枝不肯安歇微带着后悔0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,//孤单沙洲我该思念谁0xff};//

简谱音调对应的准时器初值//合适11.0592M的晶振ucharcodecuzhi[]={0xff,0xff,//

占位0xFC,0x8E,//中央C调1-70xFC,0xED,0xFD,0x43,0xFD,0x6A,0xFD,0xB3,0xFD,0xF3,0xFE,0x2D,0xFE,0x47,//高八度1-70xFE,0x76,0xFE,0xA1,0xFE,0xC7,0xFE,0xD9,0xFE,0xF9,0xFF,0x16};ucharyinyue[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x0,0x0};//将音调转变成对应的LED样式voiddelay1(uintz);//延时1MSvoiddelay(uintz);//延时165MS,即十六分音符voidsong();voidbeep();//蜂鸣器叫一声main(){ucharx;count1=0;//流水灯无花式count2=1;//唱第一首歌P34=0;//采用矩阵键盘的一列EA=1;//开总中断EX0=1;//开外面中断0IT0=1;//外面中断0下降沿触发方式EX1=1;//开外面中断1IT1=1;//外面中断1下降沿触发方式TMOD=0x01;//准时器0工作在方式1TH0=0;TL0=0;ET0=1;while(1){if(count1!=0){switch(count1){case1:for(x=0;x<14;x++){duan=1;P1=huayang1[x];beep();delay1(300);duan=0;if(count1!=1)break;}break;case2:for(x=0;x<14;x++){duan=1;P1=huayang2[x];beep();delay1(300);duan=0;if(count1!=2)break;}break;case3:for(x=0;x<16;x++){duan=1;P1=huayang3[x];beep();delay1(300);duan=0;if(count1!=3)break;}break;case4:for(x=0;x<8;x++){duan=1;P1=huayang4[x];beep();delay1(300);duan=0;if(count1!=4)break;}break;}}else{song();delay1(1000);}}}voidint0()interrupt0{EA=0;//关总中断delay1(1);//去抖if(key1==0){count2=0;//不让蜂鸣器唱歌TR0=0;count1++;if(count1==5)count1=1;}EA=1;//开总中断}voidint1()interrupt2{EA=0;//关总中断delay1(1);//去抖if(key2==0){count1=0;//流水灯无花式TR0=1;i=0;//从头开始唱count2++;if(count2==3)count2=1;}EA=1;//开总中断}voidtimer0()interrupt1{

//用于产生各种音调TH0=timeh;TL0=timel;fm=~fm;}voidsong(){uinttemp;ucharjp;//jpi=0;while(1)

是简谱{if(count2==0){break;}if(count2==1)//选曲temp=qnzl[i];if(count2==2)temp=jmszl[i];if(temp==0xff)break;jp=temp/16;//取数的高4位duan=1;P1=yinyue[jp];duan=0;if(jp!=0){timeh=cuzhi[jp*2];timel=cuzhi[jp*2+1];}else{TR0=0;fm=1;//关蜂鸣器}delay(temp%16);//取数的低4位TR0=0;//唱完一个音停10MSfm=1;delay1(10);TR0=1;i++;}TR0=0;fm=1;}voiddelay(uintz)//延时165MS,即十六分音符{uintx,y;for(x=z;x>0;x--)for(y=19000;y>0;y--);}voiddelay1(uintz)//延时1MS{uintx,y;for(x=z;x>0;x--)for(y=112;y>0;y--);}voidbeep()//蜂鸣器叫一声{uchari;for(i=0;i<50;i++){fm=~fm;delay1(1);}fm=1;}七、设计心得:单片机的设计到此刻为止已经进入了令人激励的阶段,在进行了长达两个多月的时间的探究与实验,使我不不过是对于单片机入门软件与硬件的常用设计与功能,还使我对于一项设计研究的制作过程所需要的详细步骤和详细的实现方法的力度的掌握。自然在此次难得的设计活动中,经验才是对于我们最大的收获,而且还加强了自己对未知问题以及对知识的深入认识的能力,用受益匪浅这个词语来概括此次难忘的活动我感觉再合适但是了。总之,此次设计从软件编写、调试到软硬件联机调试,我倾注了大量的时间和心血。真是从前为程序的编写而冥思查找过,从前为无法找出错误而烦闷烦忧过,也从前为某一功能不能够实现而迟疑彷徨过,但最后我成功了。我不但品味到了结果的欢乐,更理解了过程的弥足难得感谢我的导师胡亚琪老师,他慎重细致、谨言慎行的作风素来是我工作、学习中的模范;他谆谆教育的教导和不名一格的思路恩赐我无尽的启迪。八、参照文件:1、《单片机原理及应用系统设计》胡亚琦编著西安科技大学初版社2、《C语言程序设计》(第三版)林小茶中国铁道初版社附录:源程序代码#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitduan=P2^6;sbitkey1=P3^2;//按key1可切换花式sbitkey2=P3^3;//按key2可切换歌曲sbitfm=P3^7;//蜂鸣器连续的IO口sbitP34=P3^4;//矩阵键盘的一列ucharcodehuayang1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};//花式1ucharcodehuayang2[]={0x7f,0xfe,0xbf,0xfd,0xdf,0xfb,0xef,0xf7,0xef,0xfb,0xdf,0xfd,0xbf,0xfe};//花式2ucharcodehuayang3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x0,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};charcodehuayang4[]={0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0};ucharcount1;//花式标志ucharcount2;//歌曲标志uchartimeh,timel,i;//简谱//编程规则字节高位是简谱,低位是连续时间,//代表多少个十六分音符//1-7代表中央C调,8-E代表高八度,0代表逗留//最后的0是结束标志ucharcodeqnzl[]={//千年之恋0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xA8,0x08,//前奏0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,//竹林的灯火到过的沙漠0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,//七色的国家不断俊逸风中0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,//有一种奇特灰色的旋涡0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02,//将我卷入了迷雾中0x63,0xA1,0xA2,0x62,0x92,0x82,0x52,//看不清的双手0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7C,0x02,//一朵花传来谁经过的温柔0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76,//穿越千年的伤痛0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,//只为求一个结果0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,//你留下的轮廓指引我0x42,0x63,0x83,0x83,0x91,0x91,//黑夜中不孤单0x61,0x71,0x82,0x71,0x62,0x0A2,0x71,0x76,//穿越千年的忧虑0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,//是你在尽优等我0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,//最美丽的动人会值得0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff//结束标志//用一世等待};ucharcodejmszl[]={//孤单沙洲冷0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,//自你走后心憔倅0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14,//白色油桐风中纷飞0x51,0x52,0x31,0x52,0x62,0x13,0x11,0x13,0x32,0x28,0x08,0x28,//落花似人有情这个季节0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52,//河畔的风?嚣张拼命地吹0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63,//不断拨弄离人的眼泪0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54,//那样浓烈的爱再也无法给0x22,0x12,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26,//伤感一夜一夜0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,//当记忆的线围绕过往支离破碎0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34,//是慌乱据有了心扉0x31,0x81,0x81,0x81,0x61,0x91,0x82,//有花儿伴着蝴蝶0x51,0x51,0x51,0x51,0x31,0x61,0x53,//孤雁能够双飞0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x26,//更深夜静独彷徨0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52,//当幸福恋人寄来红色分享欢乐0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56,//闭上双眼伤心头也不敢回0x32,0x32,0x81,0x81,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34,//依旧捡尽寒枝不肯安歇微带着后悔0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,//孤单沙洲我该思念谁0xff};//

简谱音调对应的准时器初值//合适11.0592M的晶振ucharcodecuzhi[]={0xff,0xff,//占位0xFC,0x8E,//中央C调1-70xFC,0xED,0xFD,0x43,0xFD,0x6A,0xFD,0xB3,0xFD,0xF3,0xFE,0x2D,0xFE,0x47,//高八度1-70xFE,0x76,0xFE,0xA1,0xFE,0xC7,0xFE,0xD9,0xFE,0xF9,0xFF,0x16};ucharyinyue[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x0,0x0};//将音调转变成对应的LED样式voiddelay1(uintz);//延时1MSvoiddelay(uintz);//延时165MS,即十六分音符voidsong();voidbeep();//蜂鸣器叫一声main(){ucharx;count1=0;//流水灯无花式count2=1;//唱第一首歌P34=0;//采用矩阵键盘的一列EA=1;//开总中断EX0=1;//开外面中断0IT0=1;//外面中断0下降沿触发方式EX1=1;//开外面中断1IT1=1;//外面中断1下降沿触发方式TMOD=0x01;//准时器0工作在方式1TH0=0;TL0=0;ET0=1;while(1){if(count1!=0){switch(count1){case1:for(x=0;x<14;x++){duan=1;P1=huayang1[x];beep();delay1(300);duan=0;if(count1!=1)break;}break;case2:for(x=0;x<14;x++){duan=1;P1=huayang2[x];beep();delay1(300);duan=0;if(count1!=2)break;}break;case3:for(x=

温馨提示

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

评论

0/150

提交评论