基于51单片机音乐播放器的设计

合集下载

基于51单片机的音乐播放器的软件

基于51单片机的音乐播放器的软件

基于51单片机的音乐播放器的软件* * 理工学院本科生毕业设计(论文)学院:电子与电气工程学院专业:自动化学生: *** 指导教师: ***完成日期 **年 **月**理工学院本科生毕业设计(论文)基于51单片机的音乐播放器的软件设计Software Design of Music Player Based on 51 MCU总计: 33 页表格: 3 个插图: 15 幅** 理工学院本科毕业设计(论文)基于51单片机的音乐播放器的软件设计Software Design of Music Player Based on 51 MCU学院:电子与电气工程学院专业:自动化学生姓名: ***学号: ***指导教师(职称):***评阅教师:完成日期:**理工学院Nanyang Institute of Technology目录1 引言 (1)1.1 设计背景 (1)1.2 设计意义 (1)1.3 理论分析与方案论证 (1)1.3.1 理论分析 (1)1.3.2 设计方案论证 (2)2 系统硬件原理及概述 (3)2.1 STC12C5A60S2处理器介绍 (3)2.2 系统硬件电路综述 (3)2.2.1 硬件系统总体设计方案 (3)2.2.2 USB总线的通用接口芯片CH375电路 (4)2.2.3 LCD12864显示电路 (5)2.2.4 按键控制电路 (5)2.2.5 音频解码芯片VS1003电路 (5)3 系统软件设计 (6)3.1 软件开发平台 (6)3.2 系统的软件设计 (7)3.2.1 软件总体分析 (7)3.2.2 CH375软件系统设计 (10)3.2.3 CH375模块的U盘数据读取程序设计 (11)3.2.4 VS1003模块的MP3文件播放程序设计 (13)3.3 系统流程图 (14)4 系统调试结果及分析 (15)结束语 (18)参考文献 (19)附录 (20)致谢 (33)1 引言1.1 设计背景随着电子技术的发展,MP3播放器向大容量、高音质、小巧便携不断发展。

基于51单片机的音乐播放器的软硬件方案设计书大学本科方案设计书

基于51单片机的音乐播放器的软硬件方案设计书大学本科方案设计书

本科生毕业设计(论文)学院:电子与电气工程学院专业:自动化学生:郝帅臣指导教师:刘忠超完成日期 2013 年 5 月南阳理工学院本科生毕业设计(论文)基于51单片机的音乐播放器的软件设计Software Design of Music Player Based on 51 MCU总计: 33 页表格: 3 个插图: 15 幅南阳理工学院本科毕业设计(论文)基于51单片机的音乐播放器的软件设计Software Design of Music Player Based on 51 MCU学院:电子与电气工程学院专业:自动化学生姓名:郝帅臣学号: 1109624064指导教师(职称):刘忠超(讲师)评阅教师:完成日期:南阳理工学院Nanyang Institute of Technology基于51单片机的音乐播放器的软件设计自动化专业郝帅臣[摘要]本课题完成了基于51单片机的音乐播放器的软件设计。

论文主要介绍了对U盘所存储的MP3、WMA或MIDI格式的文件识别、提取以及音频解码程序实现的方法,通过与硬件调试表明所设计的音乐播放器可以通过按键选择歌曲以及控制音量,同时还可以通过显示屏来显示所播放的歌曲名。

声音的播放可以通过扬声器或耳机进行,基本实现了音乐播放器的功能。

[关键词]单片机;音乐播放器;U盘文件读取;音频解码Software Design of Music Player Based on 51 MCUAutomation Specialty Hao Shuai-chenAbstract:This topic finishes the software design of the music player based on the 51 microcontroller. The paper mainly introduces the method of identification, extraction and audio decoding program to the storing the U disk MP3, WMA or MIDI format file. At the same time the hardware debugging shows that the music player can select the songs and control the volume through the keyboard, at the same time through the screen display the song name. The sound can play through the speakers or headphones. The design basically realizes the function of music player.Key words:Single chip microcomputer; music player; u disk file reading; audio decoding目录1 引言 (1)1.1 设计背景 (1)1.2 设计意义 (1)1.3 理论分析与方案论证 (1)1.3.1 理论分析 (1)1.3.2 设计方案论证 (2)2 系统硬件原理及概述 (3)2.1 STC12C5A60S2处理器介绍 (3)2.2 系统硬件电路综述 (3)2.2.1 硬件系统总体设计方案 (3)2.2.2 USB总线的通用接口芯片CH375电路 (4)2.2.3 LCD12864显示电路 (5)2.2.4 按键控制电路 (5)2.2.5 音频解码芯片VS1003电路 (5)3 系统软件设计 (6)3.1 软件开发平台 (6)3.2 系统的软件设计 (7)3.2.1 软件总体分析 (7)3.2.2 CH375软件系统设计 (10)3.2.3 CH375模块的U盘数据读取程序设计 (11)3.2.4 VS1003模块的MP3文件播放程序设计 (13)3.3 系统流程图 (15)4 系统调试结果及分析 (16)结束语 (18)参考文献 (19)附录 (21)致谢 (36)1 引言1.1 设计背景随着电子技术的发展,MP3播放器向大容量、高音质、小巧便携不断发展。

基于51单片机的音乐播放器设计

基于51单片机的音乐播放器设计

目录摘要 (1)Abstract (1)引言 (1)1系统主要功能 (2)2设计原理 (2)2.1STC89C51单片机的介绍 (2)2.2音乐发生器设计流程及思路 (2)2.3音频脉冲和音乐节拍的实现 (3)2.4音频功放 (5)3系统设计 (5)3.1硬件电路设计 (5)3.2软件设计 (6)3.3系统仿真 (7)结论 (8)参考文献 (8)基于51单片机的音乐播放器设计学生姓名:张家义学号:20095044005学院:物理电子工程学院专业:电子科学与技术指导教师:仓玉萍职称:讲师摘要:本音乐播放器是利用STC89C51单片机结合内部定时系统及数码管显示,设计一个简易的微电脑音乐盒。

本文分析了基于51单片机的音乐播放器的硬件电路和软件的设计的具体过程,包括数据处理子程序的设计、显示子程序的设计,最后针对仿真过程遇到的现象进行了具体的分析与说明。

关键词:STC89C51;音乐播放;中断51 Microcontroller-based Music Player DesignAbstract: The music player is the use of STC89C51 with combination of single-chip timing system and the digital display, design a simple microcomputer music box. This article analyses the music player based on 51 single chip computer hardware circuit and software specific to the design process, including the design of data processing programs and display , And at last, explaining the simulation process for analysis and description of the specific phenomenon encountered.Key words: STC89C51 ; music player; interrupt引言单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

基于51单片机音乐播放器课程设计报告

基于51单片机音乐播放器课程设计报告

基于51 单片机音乐播放器课程设计报告课程设计课程设计名称:单片机课程设计专业班级电科0901 学生姓名:学号:200948360118指导教师:课程设计时间:2012-9-20〜2012-9-28 电子信息科学与技术专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文) 首页一设计任务及要求利用单片机定时器完成控制音乐的频率,每个音调响的时长,来达到播放出音乐。

并且实时监测红外接收管是否触发中断,来判断是否遥控器按下了播放/ 暂停键、上一首、下一首,进而实时处理。

并把信息显示在1602 液晶上。

音高与频率的对应关系下表:二设计原理图单片机与1602 液晶、红外接收管SM0038 接线图单片机驱动蜂鸣器电路及红外遥控器键码本次实验所用按键及对应编码:( 1 )上一首07 (2) 下一首15 (3)播放/暂停09三程序设计框图Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256;装入的初值(10ms 的初装值)Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256; 装入的初值TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TMOD |= 0x11;ET0 = 1;ET1 = 0;PT0 = 0;TR0 = 0;TR1 = 0;EA = 1;void write_cmd(uchar cmd)//1602 lcd_rs=0; lcd_w=0;P0=cmd;delay(7);lcd_en=1;delay(6);lcd_en=0;void write_date(uchar date)//1602lcd_rs=1;lcd_w=0;P0=date;delay(7);lcd_en=1;delay(6);lcd_en=0;void init_1602()// 初始化1602lcd_en=0;write_cmd(1);write_cmd(0x84);write_cmd(0x38); write_cmd(0x0f); write_cmd(0x06);void inte1_init()// 红外中断 // 计算 TL1 应 // 计算 TH1 应 IT1 = 1;// 外部中断,下降沿中断EX1 = 1;// 开外部中断PX1 = 1;//EA = 1;// 开总中断IRIN=1; // 读引脚前,先置高void jiema() // 红外解码uchar i,j; for(j=0;j<4;j++)irma[j]=0;// 清除上次的码for(i=0;i<8;i++)irma[j]=irma[j]>>1;// 右移 1 位while(!IRIN);// 等待 0.56ms 低电平结束 time2_init();// 启动定时, 0.8ms while(!TF2);// 等到 0.8ms 时间到TR2=0;// 关定时器TF2=0;// 清标志位if(IRIN)// 发送是 1,其高电平时间长,大于 0.565ms irma[j]|=0x80;// 把最高位置 1 while(IRIN);// 等待高电平结束,以便于进入下一位的解码 } void Lcd_displays(uchar add,char *s)//1602 显示字符串uchar i;write_cmd(add);for(i=0;i<strlen(s);i++)write_date(s[i]);void Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int 写命令写数据Speed)// 播放歌曲函数unsigned int NewFreTab[12]; // 新的频率表unsigned char i,j;unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength; unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;for(i=0;i<12;i++) // 根据调号及升降八度来生成新的频率表j = i + Signature;if(j > 11)j = j-12;NewFreTab[i] = FreTab[j]*2;NewFreTab[i] = FreTab[j];if(Octachord == 1)NewFreTab[i]>>=2;else if(Octachord == 3)NewFreTab[i]<<=2;SoundLength = 0;while(Sound[SoundLength] != 0x00) // 计算歌曲长度SoundLength+=2;Point = 0;Tone = Sound[Point];Length = Sound[Point+1]; // 读出第一个音符和它时时值LDiv0 = 12000/Speed; // 算出 1 分音符的长度(几个10ms)LDiv4 = LDiv0/4; // 算出 4 分音符的长度LDiv4 = LDiv4-LDiv4*SOUND_SPACE; // 普通音最长间隔标准TR0 = 0;TR1 = 1;while(Point < SoundLength)SL=Tone%10; // 计算出音符SM=Tone/10%10; // 计算出高低音SH=Tone/100; // 计算出是否升半CurrentFre = NewFreTab[SignTab[SL-1]+SH]; // 查出对应音符的频率if(SL!=0)if (SM==1) CurrentFre >>= 2; // 低音if (SM==3) CurrentFre <<= 2; // 高音Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);// 计算计数器初值Sound_Temp_TH0 = Temp_T/256;Sound_Temp_TL0 = Temp_T%256;TH0 = Sound_Temp_TH0;TL0 = Sound_Temp_TL0 + 12; // 加12 是对中断延时的补偿}SLen=LengthTab[Length%10]; // 算出是几分音符XG=Length/10%10; // 算出音符类型(0 普通 1 连音 2 顿音) FD=Length/100;LDiv=LDiv0/SLen; // 算出连音音符演奏的长度(多少个10ms) if (FD==1)LDiv=LDiv+LDiv/2;if(XG!=1)if(XG==0) // 算出普通音符的演奏长度if (SLen<=4)LDiv1=LDiv-LDiv4;LDiv1=LDiv*SOUND_SPACE;LDiv1=LDiv/2; // 算出顿音的演奏长度LDiv1=LDiv;if(SL==0) LDiv1=0;LDiv2=LDiv-LDiv1; // 算出不发音的长度if (SL!=0)TR0=1;for(i=LDiv1;i>0;i--) // 发规定长度的音while(TF1==0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0; if(LDiv2!=0) void BeepTimer0(void) interrupt 1 // 音符发生中断BeepIO = !BeepIO;TH0 = Sound_Temp_TH0;TL0 = Sound_Temp_TL0;void inte1inte() interrupt 2 // 红外中断,外部中断 1 uchar k=10;EX1 = 0;// 关外部中断while(k--)〃循环十次,一次0.8ms,十次8ms , time2_init();while(!TF2);TF2 = 0;TR2 = 0;if(IRIN)// 中间如果出现高电平,就说明不是9MS 的引导电平{EX1 = 1;// 则开外部中断,退出中断return;while(!IRIN);// 运行到此,说明是引导电平,等待9MS 引导结束k=3;// 循环 3 次,每次0.8ms ,总共 2.4ms,while(k--)time2_init();while(!TF2);TF2 = 0;TR2 = 0;if(!IRIN)//2.4ms 结束如果变低电平,说明是重码,EX1 = 1;return;// 开中断,退出中断while(IRIN);// 等待 4.5ms 高电平结束,到此说明是正常红外信号jiema();// 解码程序,包括用户码,和按键码// irfenli();if(irma[2]==0x09||irma[2]==0x15||irma[2]==0x07){// 判断按下是哪一个键if(irma[2]==0x09)if(com==0)com=1;com=0; if(com)Lcd_displays(0x80,"START");Lcd_displays(0x80,"PAUSE");else if(irma[2]==0x15) newmusic++;if(newmusic==4)newmusic=1;Lcd_displays(0x80,"NEST "); newmusic--;if(newmusic==0)newmusic=3;Lcd_displays(0x80,"LAST ");switch(newmusic){// 更新1602 显示case 1:Lcd_displays(0x88,"MUSIC1");break; case 2:Lcd_displays(0x88,"MUSIC2");break; case 3:Lcd_displays(0x88,"MUSIC3");break; }// Lcd_display();EX1 = 1;return;三首歌曲的代码:位于music.h 文件内// 挥着翅膀的女孩unsigned char code Music_Girl[]={0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03, 0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02,0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03, 0x1B,0x03, 0x1F,0x03,0x1F,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03, 0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E, 0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02, 0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02, 0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00}; // 同一首歌unsigned char code Music_Same[]={0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02, 0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66, 0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00, 0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03, 0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03, 0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C,0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03, 0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02, 0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70, 0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66, 0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02, 0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C, 0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66, 0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00, 0x00,0x00 };// 两只蝴蝶unsigned char code Music_Two[] ={0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01, 0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0D, 0x15,0x00, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x0D, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x03, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,课程设计课程设计名称:单片机课程设计专业班级电科0901 学生姓名:学号:200948360118指导教师:课程设计时间:2012-9-20〜2012-9-28电子信息科学与技术专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页一设计任务及要求利用单片机定时器完成控制音乐的频率,每个音调响的时长,来达到播放出音乐。

基于51单片机的音乐播放器设计

基于51单片机的音乐播放器设计

题目:音乐播放器课程设计(论文)任务书课程设计(论文)题目:音乐播发器基本内容:利用单片机的定时器产生各种频率的方波,信号经过放大后送到喇叭从而产生各种音调。

自行定义键盘,每按一键,可选择一首歌曲进行演奏,至少能够存储并播放十首歌曲,在LCD上显示演奏歌曲的名称并滚动显示歌词,单片机可连续播放这首歌曲,演奏可通过按键停止。

课程设计(论文)专题部分:题目:音乐播放器基本内容:通过单片机设计可以播放十首歌曲的音乐播放器,同步显示歌曲名称和歌词。

学生接受毕业设计(论文)题目日期第19 周指导教师签字:2009年7月摘要随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。

音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。

目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。

单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。

它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。

而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。

随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。

作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。

基于51单片机的音乐播放器[1]

基于51单片机的音乐播放器[1]

目录一、概述:_____________________________________________________________ 1二、实验目的:_________________________________________________________ 1三、实验设计:_________________________________________________________ 1四、调试与仿真:_______________________________________________________ 5五、板子外观:________________________________________________________ 15六、设计及调试中的体会:______________________________________________ 16一、概述:现当今,单片机的应用无处不在。

利用单片机控制的万年历也多不胜举。

时钟芯片也相当之多,而利用单片机存储音乐,控制播放最为广泛。

它有功能多﹑价格优﹑外围电路简单的特点,备受音乐爱好者及音乐芯片制造商的青昧。

本实验,用80C51单电机及少数外围实现音乐播放器功能,并伴有彩灯闪烁。

C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。

此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。

因此,使用C语言进行程序设计已成为软件开发的一个主流。

C 语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可靠性,便于改进和扩展,从而研制出规模更大、性能更完备的系统。

因此,用C语言进行8051单片机程序设计是单片机开发与应用的必然趋势。

设计时采用Keil C软件编程,用protues软件仿真,核心器件采用灵活性高且价格低廉的A T89C51芯片。

设计完成后系统可播放自编歌曲,同时发光二极管随着歌曲的不同而闪烁。

基于51单片机音乐播放器设计毕业设计

基于51单片机音乐播放器设计毕业设计

学生毕业设计报告设计题目:基于51单片机音乐播放器设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:毕业设计任务书专业班级姓名一、课题名称:基于51单片机的音乐播放器设计二、主要技术指标:1、AT89c51的输入电压:DC+5V2、4k字节在系统编程(ISP) Flash 闪速存储器3、128*8字节内部RAM4、32个可编程I/O口线5、2个16位定时/计数器三、工作内容和要求:1、播放时显示歌曲序号(或名称)2、利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,演奏乐曲。

3、可通过功能键选择乐曲,暂停,播放4、按顺序从头至尾自动循环播放全部设置的乐曲5、按规范要求写出论文说明书四、主要参考文献:[1]胡汉才. 单片机原理及其接口技术(第2版)[M]. 北京:清华大学出版社,2003[2]孙涵芳.MCS-51系列单片机原理及应用[M].北京:北京航空航天大学出版社,1996.4[3]阎石.数字电子技术基础(第三版)[M].北京:高等教育出版社,1989[4]王晓君,安国臣.MCS-51及兼容单片机原理与选型[M] .北京:电子工业出版社,2003[5]马家辰,孙玉德,张颖.MCS-51单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社,2001[6]林凌,李刚,丁茹,李小霞. 新型单片机接口器件与技术[M]. 西安:西安电子科技大学出版社,2005学生(签名)年月日指导教师(签名)年月日教研室主任(签名)年月日系主任(签名)年月日毕业设计开题报告设计(论文)题目基于51单片机的液晶显示器控制电路设计一、选题的背景和意义:随着科技的不断发展,目前市场上出现了许许多多的音乐播放器,人们对播放器的需求也越来越广泛,对其要求也越来越高。

基于51单片机的音乐播放器制作讲解

基于51单片机的音乐播放器制作讲解
The course design of the music player is the combination of software and hardware,Different notes in the music, the essence is different frequency of sound. Through the single-chip microcomputer produce different frequency of the pulse signal, amplified circuit, released by a buzzer to produce the harmonious beauty of music.according to each octave frequency calculate timer time constant, according to beat the the duration of the scale are given, finally realizes the play simple songs function. For example "There is only a good mother". Keywords: MCU,music player, Syllable frequency
II
目录Βιβλιοθήκη 目录第 1 章 引言................................................................................................................. 1 1.1 选题背景 ................................................................................................................... 1 1.2 设计原理 ................................................................................................................... 1 1.3 单片机简介 ............................................................................................................... 2 1.4 单片机的发展历史 ................................................................................................... 2 1.5 单片机的应用领域及发展趋势 ............................................................................... 2 第 2 章 方案论证......................................................................................................... 5 2.1 设计要求 ................................................................................................................... 5 2.2 系统描述 ................................................................................................................... 5 2.3 设计方案 ................................................................................................................... 6 2.3.1 集成电路 ................................................................................................................ 6 2.3.2 单片机最小系统 .................................................................................................. 10 2.3.3 结论 ...................................................................................................................... 12 第 3 章 硬件设计....................................................................................................... 13 3.1 硬件结构 ................................................................................................................. 13 3.2 中心控制模块 ......................................................................................................... 13 3.3 电源模块 ................................................................................................................. 16 3.4 控制电路 ................................................................................................................. 17 3.5 复位电路 ................................................................................................................. 17 3.6 电路设计所需要的器件 ......................................................................................... 19 第 4 章 软件设计....................................................................................................... 20 4.1 音乐发声设计原理 ................................................................................................. 20 4.1.1 发声原理 .............................................................................................................. 20 4.1.2 单片机产生不同频率脉冲信号的原理 .............................................................. 20 4.1.3 键控子程序 .......................................................................................................... 23 4.1.4 播放/暂停子程序 ................................................................................................. 24 4.1.5 曲目选择子程序 .................................................................................................. 24 4.2 音乐播放程序设计 ................................................................................................. 25

(完整版)基于51单片机的自动音乐播放器设计毕业论文

(完整版)基于51单片机的自动音乐播放器设计毕业论文

本科毕业论文(设计)题目: 基于51单片机的自动音乐播放器设计院系:电子与通信工程学院专业:通信工程姓名:张志顺指导教师:陈冬云教师职称:助教填写日期:2014年4月20日摘要为了人们在快节奏的日常生活,优化工厂、事业单位、公司等的计时系统,采用了依靠单片机为基础设计了一种的自动音乐播放器。

本设计利用单片机89C58RD+的计数和定时功能,来完成对时间的定时和显示功能。

并且,通过对定时器初值的设定来产生不同频率的声音,利用定时器中断来对音乐节拍长度的控制。

通过LM386N1音频功率放大器的音频放大功能,将单片机控制输出的信号放大,然后通过扩音器播放乐曲。

通过MAX232型芯片,可以转换PC机上的电压和单片机的电源电压,再通过相应串口接入PC机,这样就能从PC机上将用C语言编写的程序代码下载到单片机上。

最后可以在数码管上显示时间,当到达之前设定的时间之后,扩音系统就会自动播放一段连续而美妙动听的音乐。

此设计规避了传统闹钟的难听并且刺耳声音,而变成的是美妙动听的音乐,能给处于当前快节奏生活的人们的日常生活提供精确的计时,且因为成本较低,值得推广。

关键词:单片机;自动音乐播放;音频转换;时间显示;LM386N1音频功率放大器。

AbstractTo people in the fast pace of daily life, optimization of factories, institutions, companies such as timing system, based on microcomputer was adopted to design a kind of automatic music player. This design using the single chip microcomputer 89 c58rd + count and timing functions, to complete the regular and display function of time. And, through to the setting of the initial value of timer to generate different frequencies of sound, using a timer interrupt to control of the beat of the music length. Through the audio amplifier function LM386N1 audio power amplifier, the single-chip microcomputer control output signal amplification, and then through loudspeakers. Through MAX232 chip, can convert the voltage of power supply voltage of PC and microcontroller, again through the corresponding access PC serial port, so you can from the PC to download program code written in C language to the single chip microcomputer. Last time can be displayed on the digital tube, when, after arriving in setting the time before the public address system will automatically play a continuous and delightful music. This design to avoid the traditional alarm clock ugly and harsh voice, and become the beautiful melody of music, can give in the fast-paced life of the People's Daily life to provide accurate timing, and because of lower cost, is worth promoting.Key words: single chip microcomputer; Automatic music playback; Audio conversion; Time display; LM386N1 audio power amplifier.目录第一章绪论 (1)第二章系统硬件的设计 (2)2.1设计目的 (2)2.2硬件电路结构 (2)2.3 89C51单片机芯片介绍 (3)2.4 89C51单片机的基本组成 (3)2.5 硬件电路设计 (4)第三章音乐播放器的系统软件设计 (8)3.1音频脉冲产生的原理 (8)3.2 节拍产生原理与音乐频率转换 (9)3.3 音阶的实现 (10)3.4 音频转换流程图 (11)3.5 主程序设计流程 (12)第四章系统调试及分析 (12)4.1硬件调试 (13)4.2 软件调试 (14)4.3 仿真结果 (17)4.4 演示效果 (17)结论 (19)致谢 (19)参考文献 (20)附录 (22)第一章绪论本设计系统是基于单片机控制实现完成音乐播放功能的设计,在现实生活中具有其广泛的应用及实际意义。

基于51单片机的音乐播放器

基于51单片机的音乐播放器

基于51单片机的音乐播放器制作一、设计原理乐曲中有不音符,实质就是不同频率的声音。

通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。

二、AT89C51简介AT89C51:是一种4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AAT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

主要功能特性:1)与MCS-51兼容;2)4K字节可编程FLASH存储器;3)全静态工作:0Hz-24MHz;4)128×8位内部RAM;5)两个16位定时器/计数器;6)5个中断源;7)可编程串行通道;8)低功耗的闲置和掉电模式;9)片内振荡器和时钟电路。

三、硬件结构下图是以AT89C51单片机为核心的音乐播放器系统硬件设计结构图。

该系统主要是由复位电路、按键电路、时钟电路、中心模块、扬声器驱动等组成。

其工作原理为:此音乐播放器,有三个按键及控制按钮:播放/暂停、下一曲、上一曲;通过控制按钮控制单片机,播放所要求的音乐,并通过放大电路和喇叭输出声音。

三、简易仿真原理图四、音乐发声设计原理4.1发声原理一首乐曲是由多个音符构成的。

每个音符都对应着一个确定的频率,乐曲中不同的音符,实质就是不同频率的声音;另外每个音符会根据乐曲的要求设定一个确定的节拍。

可以控制单片机不同频率不同节拍的脉冲信号,蜂鸣器发出就产生了美妙和谐的乐曲。

4.2单片机产生不同频率脉冲信号的原理1、要产生音频脉冲,只要算出来某一个音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这半周期的时间,每当计时到后就降输出脉冲I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O 脚上得到此频率的脉冲。

基于51单片机音乐播放器

基于51单片机音乐播放器
7.文件系统…………………………………………5
三、总体设计………………………………………………5
1.设计整体框图………………………………………5
2.程序流程图…………………………………………6
3.SD模块………………………………………………7
4.功率放大部分………………………………………10
四、电路调试与完成情况……………………………11
[4].于振南.单片机高级外设.视频资料
Summaries:
This design uses STC12C5A60S2 as the master chip, read MP3 song files from the SD card, transplantspetit FAT Files miniaturized lightweight file system, using VS1003 decoder chip,to complyMP3 music player functions. Using oled screen as an interface display, infrared remote control, to achieve the song’s switch, volume change, the menu switch playback modes (including: sequential, random, three loop playback mode) switch. using TDA2822 two-channel audio amplifierasoutput power amplifier.
TDA2822是意法半导体(ST)开发的双通道单片功率放大集成电路,通常在袖珍式盒式放音机(WALKMAN)、收录机和多媒体有源音箱中作音频放大器。具有电路简单、音质好、电压范围宽等特点。

基于51单片机音乐播放器设计

基于51单片机音乐播放器设计

基于51单片机音乐播放器设计音乐播放器是一种可以播放音频文件的设备,广泛应用于日常生活中。

本文将基于51单片机设计一个简单的音乐播放器。

一、设计目标本音乐播放器设计的主要目标是实现以下功能:1.支持播放多种格式的音频文件,如MP3、WAV等;2.支持音量调节和音频文件选择功能;3.具备简单的界面和易于理解的操作方式;4.能够适应不同的音频文件大小和音乐时长。

二、硬件设计2. 存储器:选择外接Flash存储器作为音频文件的存放介质,具备较大的存储容量和较高的读写速度,能够满足音频文件的多样性需求。

3.音频解码芯片:选择支持MP3和WAV格式音频解码的芯片,能够将音频文件翻译成能够被音频输出部分播放的信号。

4.音频输出部分:选择合适的音频输出部分,如耳机接口或喇叭接口,将解码后的音频信号输出为声音。

三、软件设计1.系统初始化:在开机时进行系统初始化,包括对主控芯片、存储器和音频解码芯片的初始化。

2.文件系统管理:设计一个简单的文件系统,能够以目录结构的形式管理存储器中的音频文件。

3.音频解码:根据选择的音频文件格式,进行相应的解码操作,将解码后的音频数据传输给音频输出部分。

4.播放控制:实现音量调节和音频文件选择功能,能够暂停、播放、停止等操作。

5.用户界面:设计一个简单直观的用户界面,通过按键或显示屏等方式进行操作反馈和信息显示。

四、系统流程1.开机初始化:对主控芯片、存储器和音频解码芯片进行初始化。

2.文件系统管理:读取存储器中的文件目录,生成文件列表供用户选择。

3.用户操作:用户通过按键或其他方式进行音量调节和音频文件选择操作。

4.音频解码:根据用户选择的音频文件,进行相应的解码操作。

5.播放控制:根据用户的操作,进行音频的暂停、播放、停止等操作。

6.操作反馈:在用户界面上显示操作反馈和信息。

五、总结本文基于51单片机设计了一个简单的音乐播放器,实现了支持多种格式音频文件的播放、音量调节和文件选择功能,并提供了简单的用户界面。

基于51单片机音乐播放器课程设计报告

基于51单片机音乐播放器课程设计报告

基于51单片机音乐播放器课程设计报告课程设计课程设计名称:单片机课程设计专业班级电科0901 学生姓名:学号:200948360118 指导教师:课程设计时间: 2012-9-20~2012-9-28电子信息科学与技术专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页一设计任务及要求利用单片机定时器完成控制音乐的频率,每个音调响的时长,来达到播放出音乐。

并且实时监测红外接收管是否触发中断,来判断是否遥控器按下了播放/暂停键、上一首、下一首,进而实时处理。

并把信息显示在1602液晶上。

音高与频率的对应关系下表:二设计原理图单片机与1602液晶、红外接收管SM0038接线图单片机驱动蜂鸣器电路及红外遥控器键码本次实验所用按键及对应编码:(1)上一首 07 (2) 下一首 15 (3)播放/暂停 09三程序设计框图Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256;装入的初值 (10ms的初装值)Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256;装入的初值TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TMOD |= 0x11;ET0 = 1;ET1 = 0;PT0 = 0;TR0 = 0;TR1 = 0;EA = 1;void write_cmd(uchar cmd)//1602写命令lcd_rs=0;lcd_w=0;P0=cmd;delay(7);lcd_en=1;delay(6);lcd_en=0;void write_date(uchar date)//1602写数据lcd_rs=1;lcd_w=0;P0=date;delay(7);lcd_en=1;delay(6);lcd_en=0;void init_1602()//初始化1602lcd_en=0;write_cmd(1);write_cmd(0x84);write_cmd(0x38);write_cmd(0x0f);write_cmd(0x06);void inte1_init()//红外中断 // 计算TL1应// 计算TH1应IT1 = 1;//外部中断,下降沿中断EX1 = 1;//开外部中断PX1 = 1;//EA = 1;//开总中断IRIN=1; //读引脚前,先置高void jiema() //红外解码uchar i,j;for(j=0;j<4;j++)irma[j]=0;//清除上次的码for(i=0;i<8;i++)irma[j]=irma[j]>>1;//右移1位while(!IRIN);//等待0.56ms低电平结束time2_init();//启动定时,0.8mswhile(!TF2);//等到0.8ms时间到TR2=0;//关定时器TF2=0;//清标志位if(IRIN)//发送是1,其高电平时间长,大于0.565msirma[j]|=0x80;//把最高位置1while(IRIN);//等待高电平结束,以便于进入下一位的解码 } void Lcd_displays(uchar add,char *s)//1602显示字符串uchar i;write_cmd(add);for(i=0;i<strlen(s);i++)write_date(s[i]);void Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int Speed)//播放歌曲函数unsigned int NewFreTab[12]; //新的频率表unsigned char i,j;unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength; unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;for(i=0;i<12;i++) // 根据调号及升降八度来生成新的频率表j = i + Signature;if(j > 11)j = j-12;NewFreTab[i] = FreTab[j]*2;NewFreTab[i] = FreTab[j];if(Octachord == 1)NewFreTab[i]>>=2;else if(Octachord == 3)NewFreTab[i]<<=2;SoundLength = 0;while(Sound[SoundLength] != 0x00) //计算歌曲长度SoundLength+=2;Point = 0;Tone = Sound[Point];Length = Sound[Point+1]; // 读出第一个音符和它时时值LDiv0 = 12000/Speed; // 算出1分音符的长度(几个10ms)LDiv4 = LDiv0/4; // 算出4分音符的长度LDiv4 = LDiv4-LDiv4*SOUND_SPACE; // 普通音最长间隔标准 TR0 = 0;TR1 = 1;while(Point < SoundLength)SL=Tone%10; //计算出音符SM=Tone/10%10; //计算出高低音 SH=Tone/100; //计算出是否升半CurrentFre = NewFreTab[SignTab[SL-1]+SH]; //查出对应音符的频率if(SL!=0)if (SM==1) CurrentFre >>= 2; //低音if (SM==3) CurrentFre <<= 2; //高音Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);//计算计数器初值Sound_Temp_TH0 = Temp_T/256;Sound_Temp_TL0 = Temp_T%256;TH0 = Sound_Temp_TH0;TL0 = Sound_Temp_TL0 + 12; //加12是对中断延时的补偿 }SLen=LengthTab[Length%10]; //算出是几分音符XG=Length/10%10; //算出音符类型(0普通1连音2顿音) FD=Length/100;LDiv=LDiv0/SLen; //算出连音音符演奏的长度(多少个10ms) if (FD==1)LDiv=LDiv+LDiv/2;if(XG!=1)if(XG==0) //算出普通音符的演奏长度if (SLen<=4)LDiv1=LDiv-LDiv4;LDiv1=LDiv*SOUND_SPACE;LDiv1=LDiv/2; //算出顿音的演奏长度LDiv1=LDiv;if(SL==0) LDiv1=0;LDiv2=LDiv-LDiv1; //算出不发音的长度if (SL!=0)TR0=1;for(i=LDiv1;i>0;i--) //发规定长度的音while(TF1==0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;if(LDiv2!=0)void BeepTimer0(void) interrupt 1 //音符发生中断BeepIO = !BeepIO;TH0 = Sound_Temp_TH0;TL0 = Sound_Temp_TL0;void inte1inte() interrupt 2 //红外中断,外部中断1 uchar k=10;EX1 = 0;//关外部中断while(k--)//循环十次,一次0.8ms,十次8ms,time2_init();while(!TF2);TF2 = 0;TR2 = 0;if(IRIN)//中间如果出现高电平,就说明不是9MS的引导电平 {EX1 = 1;//则开外部中断,退出中断return;while(!IRIN);//运行到此,说明是引导电平,等待9MS引导结束 k=3;//循环3次,每次0.8ms,总共2.4ms,while(k--)time2_init();while(!TF2);TF2 = 0;TR2 = 0;if(!IRIN)//2.4ms结束如果变低电平,说明是重码,EX1 = 1;return;//开中断,退出中断while(IRIN);//等待4.5ms高电平结束,到此说明是正常红外信号 jiema();//解码程序,包括用户码,和按键码// irfenli();if(irma[2]==0x09||irma[2]==0x15||irma[2]==0x07){//判断按下是哪一个键if(irma[2]==0x09)if(com==0)com=1;com=0;if(com)Lcd_displays(0x80,"START");Lcd_displays(0x80,"PAUSE");else if(irma[2]==0x15)newmusic++;if(newmusic==4)newmusic=1;Lcd_displays(0x80,"NEST ");newmusic--;if(newmusic==0)newmusic=3;Lcd_displays(0x80,"LAST ");switch(newmusic){//更新1602显示case 1:Lcd_displays(0x88,"MUSIC1");break; case 2:Lcd_displays(0x88,"MUSIC2");break; case 3:Lcd_displays(0x88,"MUSIC3");break; }// Lcd_display();EX1 = 1;return;三首歌曲的代码:位于music.h文件内//挥着翅膀的女孩unsigned char code Music_Girl[]={0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03, 0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02,0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03, 0x1B,0x03, 0x1F,0x03,0x1F,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66,0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03,0x1B,0x03, 0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03, 0x1B,0x03,0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03, 0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E, 0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x04,0x1B,0x0E, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03,0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03,0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00,0x18,0x02, 0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02, 0x18,0x66,0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00}; //同一首歌unsigned char code Music_Same[]={0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02, 0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66, 0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00, 0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03, 0x1A,0x01,0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02, 0x1A,0x0D, 0x19,0x03, 0x17,0x00,0x18,0x66, 0x18,0x03, 0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03,0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C,0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03, 0x1B,0x0C, 0x1A,0x0D,0x19,0x03, 0x17,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01,0x10,0x02, 0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x00,0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70, 0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66, 0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02, 0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C, 0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66, 0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00, 0x00,0x00 };//两只蝴蝶unsigned char code Music_Two[] ={0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04,0x0F,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01, 0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03,0x10,0x03, 0x10,0x0D, 0x15,0x00, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03,0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x0D,0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03,0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03,0x19,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02,0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03,0x16,0x03, 0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03, 0x19,0x03,0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03,0x16,0x03, 0x16,0x03, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02,0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03,0x19,0x03, 0x17,0x03, 0x19,0x03, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E,0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,课程设计课程设计名称:单片机课程设计专业班级电科0901 学生姓名:学号:200948360118 指导教师:课程设计时间: 2012-9-20~2012-9-28电子信息科学与技术专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页一设计任务及要求利用单片机定时器完成控制音乐的频率,每个音调响的时长,来达到播放出音乐。

基于51单片机的音乐播放设计

基于51单片机的音乐播放设计

基于51单片机的音乐播放设计摘要为方便人们的日常生活,优化学校、机关等单位的计时系统,采用以单片机为基础设计了一种的自动音乐播放器。

本设计利用单片机AT89S52的定时和计数功能,来完成时间的显示和定时功能。

并且,通过对定时器初值的设定来产生不同频率的声音,利用定时器中断来完成对音乐节拍长度的控制。

通过音频功率放大器,将单片机输出的信号放大,再通过喇叭播放乐曲。

通过MAX232型芯片,可以转换PC机上的电压和单片机的电源电压,再通过串口接入PC机,这样就能从PC机上将用C语言编写的程序下载到单片机上。

最后可在数码管上显示时间,当定时时间到后,喇叭自动播放一段连续的音乐。

此设计摆脱了传统闹钟的刺耳声音,取而代之的是美妙的音乐,能为人们的日常生活提供准确的计时,且成本低廉,值得推广。

关键词:音乐播放;音频转换;时间显示;ULN2003Music playback design based on 51 single chip microcomputerAbstractFor the convenience of People's Daily lives, to optimize the timing system schools, agencies and other units, on the basis of the single chip microcomputer was adopted to design a kind of automatic music player.This design using the single chip microcomputer AT89S52 timing and counting functions, to complete the time display and timing functions.And, by the setting of the initial value of timer to generate different frequencies of sound, using a timer interrupt to complete control of the beat of the music length.Through the audio power amplifier, MCU output signal amplification, then play the music over the loudspeaker.Through MAX232 chip, can convert the voltage of power supply voltage of PC and microcontroller, through a serial port connected to the PC, so you can from the PC will be written in C language program downloaded to the microcontroller.Finally on the digital tube display time, when the time to regularly, speakers play a continuous music automatically.This design to get rid of the traditional alarm clock sharp voice, instead, the wonderful music, can offer the accurate timing for People's Daily lives, and low cost, is worth promoting.Key words:Music playback;Audio conversion;Time display;ULN2003目录1 总体设计 (1)2 硬件设计 (2)2.1 AT89S52型单片机介绍 (2)2.2 ULN2003及外围电路的设计 (2)2.3 串行通信和MAX232芯片 (3)2.4 AT89S52的定时/计数器概述 (3)2.5 LED显示 (5)3 软件设计 (6)3.1 音乐编程原理及其流程图 (6)3.1.1 产生声音信号 (6)3.1.2 产生节拍信号 (6)3.1.3 音频转换 (7)3.2 时间显示程序设计 (8)4 仿真及调试过程 (9)4.1 硬件调试过程 (9)4.2 软件仿真过程 (9)5 结束语 (11)参考文献 (12)1 总体设计在基于单片机的自动音乐播放器中,采用AT89C52RC型单片机为硬件基础,通过C语言对芯片进行编程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科毕业论文(设计)题目:基于51单片机音乐播放器的设计学院:班级:姓名:指导教师:王振义职称:副教授完成日期:2015年5月20日基于51单片机音乐播放器设计摘要:在当今这个繁杂的社会,随着生活节奏的加快,人们从事长期的工作和面对学习过大的压力导致我们处于紧绷的状态,因此音乐对于调节压力不言而喻的十分重要。

校园里的上下课的铃声,广场中爷爷奶奶伴随着音乐进行锻炼身体。

此设备为人们目前压力过大的生活带来了乐趣。

本文是利用51单片机原理设计音乐演奏的硬件电路,并运用C语言进行程序部分的设计。

经过51单片机来产生频率不同的波,这些波经过单片机输出和放大电路的放大驱使喇叭发出不一样的音调,延迟系统有可控制音符发音长短。

把音乐转化成可以从发音设备中发出的悦耳动听的音乐。

关键字:单片机;音乐播放器;C语言Design based on 51 SCM music player Abstract:In today's complex society, with the accelerating rhythm of life, the people in the long-term work and face learning too much pressure lead to us is in a state of tension, so the music is very important for regulating pressure self-evident.The ringing of a campus of adding and dropping classes, grandma and grandpa accompanied by music in the square to exercise.This device at present stress for people brought joy of life.This paper is the use of 51 single chip microcomputer hardware circuit design of music playing, and part using C language program design.After 51 single chip microcomputer to produce different frequency of wave, the wave through single chip microcomputer output and amplifying circuit amplifier drives the horn a different tone, length of the delay system with control pronunciation notes.Can put the music into sweet music from pronunciation in the device.Keywords : Single-chip processor; Music player; C programming language目录1 引言 (1)2 51单片机的结构与原理 (2)2.1 51单片机的基本结构 (2)2.1.1 8051单片机的基本组成及主要性能 (2)2.1.2 8051单片机的外部引脚说明 (4)2.1.3并行输入/输出口电路结构 (5)2.1.4时钟电路 (6)2.2 51单片机的微处理器 (6)2.2.1 运算器 (6)2.2.2 控制器 (6)2.3 51单片机的存储器 (7)2.3.1 内部数据存储器 (7)2.3.2 内部程序存储器 (7)3 硬件电路设计 (8)3.1 总体设计框图 (8)3.2原理图 (8)3.3 焊接实物图 (9)3.4 时钟电路 (9)3.7 音频发生及放大电路 (9)4软件程序设计 (10)4.1单片机发声原理 (10)4.2 程序流程图 (11)4.3 程序代码 (12)5 调试与故障分析 (12)5.1 软件程序调试 (12)5.2 硬件电路调试 (13)6 总结与展望 (13)7参考文献 (14)8致谢 (15)1、引言单片机又被人家称为微控制器,是一种大规模构成的电路模块,其特点是功能实用、体积又小、性能优秀、价格优惠,适用大多数人群。

其中51单片机特点更突出的,并且大范围的应用于工业测试和工业控制之中。

51系列也是大多数国内企业喜欢生产的一种,它一定会在今后占有大量的人群供给量。

51单片机广泛用于学校做实验,还是我们大学生实验课上喜爱的一种单片机。

51单片机它从根本上更换了我们以往的设计的思想和设计的方法。

以前必须用模电或数电知识实现的功能,如今已能用单片机和软件技术来达到我们目标。

随着时间的流逝,我们更加的追求享受方面的生活,音乐更是我们追求巅峰。

传统音乐盒我们父辈都有,多是体积很重,发音质量不好,在工厂里不好批量生产。

我在这论文中设计的音乐盒,是基于51单片机设计制作的,经过多次的软件测试来实现发出美丽好听的音乐节拍。

和以前很重的音乐盒相比更小巧玲玲,音质更美丽可口。

用户我们可以按自己的爱好需求的音乐将其转化成程序码存在单片机的程序存储器中。

我们可以把单片机生成不一样的频率波音用音频功率放大器将其声音信号放大,再经过喇叭播放一段连续音乐。

这设计经过我很多次尝试验证,发音的效果很好。

2、51单片机的结构与原理2.1 51单片机的基本结构2.1.1 51单片机的基本组成及主要性能图 2-1 51单片机基本组成中央处理器即CPU :是51的大脑,他控制其他各个组成元素协调工作,CPU (大脑)能够处理8位二进制数或者代码。

CPU 是单片机的最重要的成员,并且他里面还有运算功能、控制功能以及寄存器的功能等若干部件的功能。

内部数据存储器即RAM :51单片机芯片有很多的单元组成,而单元又被专用寄存器行使控制。

51单片机前面若干单元可供用户使用,我们用他来存储可读写的部分。

所以通常所说的内部数据存储器就是指前前面的若干单元。

51单片机入口地址从00H 到FFH时钟电路总线控制CPUROM/EPROM/FLASH4K 字节RAM 128字节SFR 21个定时/计数器2个中断系统5中断源、2优先级串行口全双工 2个并行口4个RST EA ALE PSENXTAL2XTAL1P0P1P2P3V CCV SS串行通信接口全双工 1个 ROM TXD RXD中断系统并行通信接口4×8bit 定时/计数器n×16bitRAM时 钟 电 路CPU总线控制(一共有256B)。

他是一个有许多功能的可以存储数据的结构,但数据存储可以在栈和堆中,又可以在方法区中的位地址和常量池中。

内部程序存储器即ROM:51的单片机内部ROM的字节为4KB和8KB,用在存放烧入的程序和用户原始数据等基本计算机数据。

定时器/计数器:51单片机共有双个16位的定时器和计数器,从而可以实现定时功能和计数功能,并以其定时和计数产生的结果作用在播放音乐上。

定时是是用来确定各个时间段的,可以当用作计数器用,并且在脉冲上进行计数的操作。

并行通信接口:51单片机用于数据的输入和输出功能的接口。

串行通信接口:51单片机有一个能够编程的插口,这个插口必须接外部设备或电脑。

我们可以看到单片机和其它设备在数据传送的时候必须用到。

这个插口是双排的,它的功能第一可以用作接收信号,第二可以作为移位器用。

RXD( P3.0)脚为接收端口,TXD(P3.1)脚为发送端口。

中断系统:51单片机有中断系统,我们可以用他中断程序。

51系列是有5个中断源,分别是外中断(2个),定时中断(2个),串行中断(1个),所有的中断从不同的顺序开始执行。

时钟电路:单片机的芯片的内部是有时钟电路的。

时钟电路可以生产我们可以看到的时钟脉冲序列。

系统默许的晶振频率肯定是6 MHz到12 MHz。

2.1.2 8051单片机的外部引脚说明8051是准确的40引脚集成电子芯片,引脚如图2-2所示。

图2-2 89c51引脚P0口有二个功能:(1)外部扩展存储器时,当作数据输入总线。

(2)外部不作扩展时,是用作I/O供使时,无上拉电阻,当P0用作I/O时有上拉电阻。

P1口只能做I/O口使用:内部是有上拉电阻的,P1口接在外部的接受器件上,接受数据。

P2口有一个功能:扩展外部存储器时,P2也可作为地址总线使用。

P3口有两个功能:既可认作为I/O使有且无拉电阻的,又有些许不同的其他的特殊功能.VCC:电源+5V输入VSS:GND接地ALE/PROG:地址可以控制信号,当我们在扩展系统时,ALE可以在锁存器吧内容封装起来,低位地址在不同的区间数据进行隔离的效果。

PORG:我们说是编程脉冲的输入端,51单片机内部结构的程序存储器烧入程序和这个接口息息相关。

PSEN:外部读入动作:(1)当内部程序存储器读取时:PSEN是不反应的;(2)当外部程序存储器读取时:每个机器周期只动作2次(3)当外部数据存储器读取时:PSEN脉冲不会输出,没作用效果;(4)当外接程序存储器读取时:与程序存储器的OE脚相接。

EA/VPP 访问和程序存储器控制信号:(1)接高电平时:读取内部程序。

(2)扩展外部ROM:即读取外部程序存储器进来(3)读取外部ROM:读取外部程序。

XTAL1和XTAL2:它外面接的是晶振引脚。

我们在使用外部时钟的时侯,可以接一个外部的时钟脉冲信号。

2.1.3并行输入/输出口电路结构51单片机共有双排输入/输出口为P0~p4。

低的位地址和数据由P0这个口传送的,高的位地址是由P2这个口传送的。

因此在无片外扩展存储器的系统中,输入/输出口的为双排的输入/输出端口。

2.1.4 时钟电路由多片单片机共同构成的系统中,外部时钟电路是导入外部脉冲信号的硬件电路。

导入信号脉冲时,应注意不要接超过规定范围的直流电压,并且应该和时钟脉冲相同步。

如下图。

80511XTAL1XTAL2VSSTTL 外部时钟信号VCC图 2-4 时钟源接法2.2 51单片机CPU 结构分析2.2.1 运算器(1)算术和逻辑运算。

一个字节符号byte 由是8位二进制组成,半个字节就是4位二进制组成。

(2)加、减、乘、除、++、--、%取余等算术运算。

(3)与、或、异或、同或、求反等逻辑运算。

(4)位运算。

2.2.2 控制器程序计数器:当我们要执行程序时就要从ROM 中的读出来程序字节,然后让CPU去帮我们执行,而程序计数器就可以记录数字,让我们知道程序执行到哪里了,标记起来让程序员更容易的调试程序,更简单。

相关文档
最新文档