毕业论文-基于单片机的LED音波频谱播放器的设计与实现_第1页
毕业论文-基于单片机的LED音波频谱播放器的设计与实现_第2页
毕业论文-基于单片机的LED音波频谱播放器的设计与实现_第3页
毕业论文-基于单片机的LED音波频谱播放器的设计与实现_第4页
毕业论文-基于单片机的LED音波频谱播放器的设计与实现_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、大连东软信息学院本科毕业设计(论文)论文题目:论文题目:基于单片机的LED音波频谱播放器的设计与实现系 所:电子工程系 专 业:电子信息工程(微电子制造方向) 学生姓名: 学生学号: 指导教师: 导师职称:讲师 完成日期:2014年 4月 28日 大连东软信息学院Dalian Neusoft University of Information大连东软信息学院毕业设计(论文) 摘要 致 谢光阴似箭,四年大学生活即将结束,这四年中我收获了知识,收获了友谊,更收获了为人处世的道理。一路走来,需要感谢的人太多,实在是这些简单的文字所不能表达和承载的。经过将近一个学期的努力,终于如期完成了本次的毕业设计

2、。毕业设计能够顺利完成,完全离不开导师老师,感谢老师在整个毕业设计完成的过程中给予了我很大的帮助,在关键的知识点上给了我参考,并且详细的批改我的论文,使我少走了很多的弯路,从指导老师那里不仅学到了知识,更重要的是他的严格要求,精益求精的态度,老师的谆谆教诲和鼓励让我受益终身。另外还要感谢班上的同学,在与他们共同学习,共同生活的四年里,我们一起经历了风风雨雨,与他们的交流和讨论,扩展了我的思路,锻炼了我的能力,对我的毕业设计颇有益处。大学生活就要结束了,我即将步入社会。在大学所学的知识实在太少,但大学学的不是知识,而是一种学习的方法,一种在社会上不断学习进步的方法。感谢学校提供的环境,让我养成学

3、习新知识的方法。这将成为我今后的一笔宝贵财富。附 录全部代码:#include STC15F2K.H#include stdio.h#include others.h#include VS1003.h#include FAT32.h#include UART.h#include key.h#include SD.hstruct FAT32_Init_Arg Init_Arg_SD; /初始化参数结构体实体struct FileInfoStruct FileInfo; /文件信息结构体实体unsigned char FAT32_Buffer512;void main()unsigned char

4、 s40;unsigned char item=0;/ 当前播放的曲目unsigned char KeyCode;/ 按键键值unsigned long Offset=0;/ 读取偏移量unsigned char MusicNum=0;/ 总歌曲数unsigned char VolumeNum=18;/ 音量值unsigned char playflag=1; / 播放标志位UART1_init(); UART1_Send_String(串口初始化成功.rn); VS_Reset(); UART1_Send_String(VS1003初始化成功.rn);VS_sin_test(200);UAR

5、T1_Send_String(VS1003测试成功.rn);while(SD_Reset()!=0)UART1_Send_String(SD卡复位失败.rn);delay_ms(500);UART1_Send_String(SD卡复位成功.rn);while(SD_Init()!=0)UART1_Send_String(SD卡初始化失败.rn);delay_ms(500); UART1_Send_String(SD卡初始化成功.rn);FAT32_Init();UART1_Send_String(FAT32文件系统初始化成功.rnrn); sprintf(s,SD卡总容量:%dMBrnrn,(

6、unsigned short)Init_Arg_SD.Total_Size);UART1_Send_String(s); while(FAT32_Open_File(&FileInfo,*.mp3,MusicNum+); / 获取歌曲数目MusicNum-;sprintf(s,共发现:%02d首歌曲rnrn,(unsigned short)MusicNum);UART1_Send_String(s);while(FAT32_Open_File(&FileInfo,*.mp3,item) / 播放歌曲 sprintf(s,播放第%02d首歌曲rn,(unsigned short)(item+1)

7、;UART1_Send_String(s);sprintf(s,%-16srn,FileInfo.FileName);UART1_Send_String(s);VS_XDCS=0; / 打开数据片选,此时可以送入音频数据 while(FAT32_Read_FileX(&FileInfo,Offset,1024,VS_Send_Dat)Offset=Offset+1024;KeyCode=get_keys();if(KeyCode=KEY_CODE_0) / if(item=0)item=MusicNum-1;elseitem-;break;else if(KeyCode=KEY_CODE_1)

8、if(item=MusicNum-1)item=0;elseitem+;break;else if(KeyCode=KEY_CODE_2)if(VolumeNum0)VS_Set_Volume(-VolumeNum);else if(KeyCode=KEY_CODE_4)if(playflag)playflag=0;elseplayflag=1; while(!playflag)KeyCode=get_keys();if(KeyCode=KEY_CODE_4)if(playflag)playflag=0;elseplayflag=1; break;VS_XDCS=1;if(Offset=Fil

9、eInfo.FileSize) / 歌曲播放结束,切换下一首if(item=MusicNum-1)item=0;elseitem+;VS_Flush_Buffer(); / 清空VS1003数据缓冲区Offset=0;while(1)#include STC15F2K.H#include stdio.h#include others.h#include VS1003.h#include FAT32.h#include UART.h#include FFT.h#include key.h#include SD.h#include AD.h#include LEDS.h#define TIMER0

10、CYCLE 250 struct FAT32_Init_Arg Init_Arg_SD; /初始化参数结构体实体struct FileInfoStruct FileInfo; /文件信息结构体实体unsigned char FAT32_Buffer512;void TIMER0_init()AUXR&=(T1x12);/传统的12分频 TMOD&=0 x0F; TMOD|=T1_M1; /16位定时器TH1=(65536-TIMER0CYCLE)/256; TL1=(65536-TIMER0CYCLE)%256;TR1=1;ET1=1;EA=1; void main()unsigned cha

11、r s40;unsigned char item=0;/ 当前播放的曲目unsigned char KeyCode;/ 按键键值unsigned long Offset=0;/ 读取偏移量unsigned char MusicNum=0;/ 总歌曲数unsigned char VolumeNum=18;/ 音量值unsigned char playflag=1; / 播放标志位LED_init();UART1_Send_String(LED初始化成功.rn); UART1_init(); UART1_Send_String(串口初始化成功.rn); TIMER0_init();UART1_Se

12、nd_String(TIMER0初始化成功.rn); AD_Init();UART1_Send_String(ADC初始化成功.rn); VS_Reset(); UART1_Send_String(VS1003初始化成功.rn);VS_sin_test(200);UART1_Send_String(VS1003测试成功.rn);while(SD_Reset()!=0)UART1_Send_String(SD卡复位失败.rn);delay_ms(500);UART1_Send_String(SD卡复位成功.rn);while(SD_Init()!=0)UART1_Send_String(SD卡初

13、始化失败.rn);delay_ms(500); UART1_Send_String(SD卡初始化成功.rn);FAT32_Init();UART1_Send_String(FAT32文件系统初始化成功.rnrn); sprintf(s,SD卡总容量:%dMBrnrn,(unsigned short)Init_Arg_SD.Total_Size);UART1_Send_String(s); while(FAT32_Open_File(&FileInfo,*.mp3,MusicNum+); / 获取歌曲数目MusicNum-;sprintf(s,共发现:%02d首歌曲rnrn,(unsigned

14、short)MusicNum);UART1_Send_String(s);while(FAT32_Open_File(&FileInfo,*.mp3,item) / 播放歌曲 sprintf(s,播放第%02d首歌曲rn,(unsigned short)(item+1);UART1_Send_String(s);sprintf(s,%-16srn,FileInfo.FileName);UART1_Send_String(s);VS_XDCS=0; / 打开数据片选,此时可以送入音频数据 while(FAT32_Read_FileX(&FileInfo,Offset,1024,VS_Send_D

15、at)Offset=Offset+1024;KeyCode=get_keys();if(KeyCode=KEY_CODE_0) / if(item=0)item=MusicNum-1;elseitem-;break;else if(KeyCode=KEY_CODE_1)if(item=MusicNum-1)item=0;elseitem+;break;else if(KeyCode=KEY_CODE_2)if(VolumeNum0)VS_Set_Volume(-VolumeNum);else if(KeyCode=KEY_CODE_4)if(playflag)playflag=0;elsepl

16、ayflag=1; while(!playflag)KeyCode=get_keys();if(KeyCode=KEY_CODE_4)if(playflag)playflag=0;elseplayflag=1; break;VS_XDCS=1;if(Offset=FileInfo.FileSize) / 歌曲播放结束,切换下一首if(item=MusicNum-1)item=0;elseitem+;VS_Flush_Buffer(); / 清空VS1003数据缓冲区Offset=0;while(1)void Timer1_IRQ_Service() interrupt 3static unsi

17、gned char count=0;TH1=(65536-TIMER0CYCLE)/256; TL1=(65536-TIMER0CYCLE)%256;count+;if(count=15) /刷新速度count=0;/ 刷新点阵/LED_Refresh();if(ADC_Count=63)FFT();ADC_Count=0;EADC=1;KeyCode=get_keys();if(KeyCode=KEY_CODE_0) / if(item=0)item=MusicNum-1;elseitem-;break;else if(KeyCode=KEY_CODE_1)if(item=MusicNum-

18、1)item=0;elseitem+;break;else if(KeyCode=KEY_CODE_2)if(VolumeNum0)VS_Set_Volume(-VolumeNum);else if(KeyCode=KEY_CODE_4)if(playflag)playflag=0;elseplayflag=1; while(!playflag)KeyCode=get_keys();if(KeyCode=KEY_CODE_4)if(playflag)playflag=0;elseplayflag=1; break;VS_XDCS=1;if(Offset=FileInfo.FileSize) /

19、 歌曲播放结束,切换下一首if(item=MusicNum-1)item=0;elseitem+;VS_Flush_Buffer(); / 清空VS1003数据缓冲区Offset=0;void Timer1_IRQ_Service() interrupt 3static unsigned char count=0;TH1=(65536-TIMER0CYCLE)/256; TL1=(65536-TIMER0CYCLE)%256;count+;if(count=15) /刷新速度count=0;LED_Refresh();ADC_CONTR=ADC_POWER|ADC_SPEEDHH|ADC_ST

20、ART|0 x00; /开始AD采集#include STC15F2K.H#include stdio.h#include others.h#include VS1003.h#include FAT32.h#include UART.h#include FFT.h#include key.h#include SD.h#include AD.h#include LEDS.h#define TIMER0CYCLE 250 struct FAT32_Init_Arg Init_Arg_SD; /初始化参数结构体实体struct FileInfoStruct FileInfo; /文件信息结构体实体u

21、nsigned char FAT32_Buffer512;void TIMER0_init()AUXR&=(T1x12);/传统的12分频 TMOD&=0 x0F; TMOD|=T1_M1; /16位定时器TH1=(65536-TIMER0CYCLE)/256; TL1=(65536-TIMER0CYCLE)%256;TR1=1;ET1=1;EA=1; void main()unsigned char s40;unsigned char item=0;/ 当前播放的曲目unsigned char KeyCode;/ 按键键值unsigned long Offset=0;/ 读取偏移量unsig

22、ned char MusicNum=0;/ 总歌曲数unsigned char VolumeNum=18;/ 音量值unsigned char playflag=1; / 播放标志位LED_init();UART1_Send_String(LED初始化成功.rn); UART1_init(); UART1_Send_String(串口初始化成功.rn); TIMER0_init();UART1_Send_String(TIMER0初始化成功.rn); AD_Init();UART1_Send_String(ADC初始化成功.rn); VS_Reset(); UART1_Send_String(

23、VS1003初始化成功.rn);VS_sin_test(200);UART1_Send_String(VS1003测试成功.rn);while(SD_Reset()!=0)UART1_Send_String(SD卡复位失败.rn);delay_ms(500);UART1_Send_String(SD卡复位成功.rn);while(SD_Init()!=0)UART1_Send_String(SD卡初始化失败.rn);delay_ms(500); UART1_Send_String(SD卡初始化成功.rn);FAT32_Init();UART1_Send_String(FAT32文件系统初始化成

24、功.rnrn); sprintf(s,SD卡总容量:%dMBrnrn,(unsigned short)Init_Arg_SD.Total_Size);UART1_Send_String(s); while(FAT32_Open_File(&FileInfo,*.mp3,MusicNum+); / 获取歌曲数目MusicNum-;sprintf(s,共发现:%02d首歌曲rnrn,(unsigned short)MusicNum);UART1_Send_String(s);while(FAT32_Open_File(&FileInfo,*.mp3,item) / 播放歌曲 sprintf(s,播

25、放第%02d首歌曲rn,(unsigned short)(item+1);UART1_Send_String(s);sprintf(s,%-16srn,FileInfo.FileName);UART1_Send_String(s);VS_XDCS=0; / 打开数据片选,此时可以送入音频数据 while(FAT32_Read_FileX(&FileInfo,Offset,1024,VS_Send_Dat)Offset=Offset+1024;if(ADC_Count=127)FFT();ADC_Count=0;KeyCode=get_keys();if(KeyCode=KEY_CODE_0)

26、/ if(item=0)item=MusicNum-1;elseitem-;break;else if(KeyCode=KEY_CODE_1)if(item=MusicNum-1)item=0;elseitem+;break;else if(KeyCode=KEY_CODE_2)if(VolumeNum0)VS_Set_Volume(-VolumeNum);else if(KeyCode=KEY_CODE_4)if(playflag)playflag=0;elseplayflag=1; while(!playflag)KeyCode=get_keys();if(KeyCode=KEY_CODE_4)if(playflag)playflag=0;elseplayflag=1; break;VS_XDCS=1;if(Offset=FileInfo.FileSize) / 歌曲播放结束,切换下一首if(item=MusicNum-1)item=0;elseitem+;VS_Flush_Buffer(); / 清空VS1003数据

温馨提示

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

评论

0/150

提交评论