




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用AT89S52制作的MP3播放器仅供参考 原理图已经加上了于大家分享#include #include #define uchar unsigned char#define uint unsigned int#define LCDPORT P0unsigned int code tab=64021,64103,64260,64400, 64524,64580,64684,64777, 64820,64898,64968,65030, 65058,65110,65157,65178;unsigned char code name=1234567 ;unsigned char code num=200711111111;unsigned char code tab1=PLAYING MUSIC IS;unsigned char code tab2=TWO BUFFER;unsigned char code tab3=THE TONE IS;unsigned char code tab4=LOW SO LOW LA LOW TI MID DO MID RE MIN MI MIN FA MID SO MID LA MID TI HIG DO HIG RE HIG MI HIG FA HIG SO HIG LA;/两只蝴蝶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,0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0F,0x02,0x10,0x03, 0x15,0x00, 0x00,0x00 ;/*/*/#ifndef _SOUNDPLAY_H_REVISION_FIRST_#define _SOUNDPLAY_H_REVISION_FIRST_/*/#define SYSTEM_OSC 12000000#define SOUND_SPACE 4/5 sbit BeepIO=P30;unsigned int code FreTab12 = 262,277,294,311,330,349,369,392,415,440,466,494 ; /原始频率表unsigned char code SignTab7 = 0,2,4,5,7,9,11 ; /17在频率表中的位置unsigned char code LengthTab7= 1,2,4,8,16,32,64 ;unsigned char Sound_Temp_TH0,Sound_Temp_TL0;/音符定时器初值暂存unsigned char Sound_Temp_TH1,Sound_Temp_TL1;/音长定时器初值暂存/*/void InitialSound(void)BeepIO = 0;Sound_Temp_TH1 = (65536-(1/1200)*SYSTEM_OSC)/256;/ 计算TL1应装入的初值 (10ms的初装值)Sound_Temp_TL1 = (65536-(1/1200)*SYSTEM_OSC)%256;/ 计算TH1应装入的初值TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TMOD = 0x11;ET0 = 1; ET1 = 0; TR0 = 0; TR1= 0; EA = 1;void BeepTimer0(void) interrupt 1/音符发生中断BeepIO = !BeepIO;TH0 = Sound_Temp_TH0;TL0 = Sound_Temp_TL0;/*/void Play(unsigned char *Sound;unsigned char Signature;unsigned char Octachord;unsigned int Speed)unsigned int NewFreTab12;/新的频率表unsigned char i,j;int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLengt;unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;for(i=0;i 11)j = j-12; NewFreTabi = FreTabj*2;elseNewFreTabi = FreTabj;if(Octachord = 1)NewFreTabi=2;else if(Octachord = 3)NewFreTabi=2;SoundLength = 0;while(SoundSoundLength != 0x00)/计算歌曲长度SoundLength+=2;Point = 0; Tone = SoundPoint;Length = SoundPoint+1; / 读出第一个音符和它时时值LDiv0 = 12000/Speed;/ 算出1分音符的长度(几个10ms)LDiv4 = LDiv0/4; / 算出4分音符的长度LDiv4 = LDiv4-LDiv4*SOUND_SPACE; / 普通音最长间隔标准TR0 = 0;TR1 = 1;while(Point = 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=LengthTabLength%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 (SLen0;i-) /发规定长度的音while(TF1=0);TH1=Sound_Temp_TH1;TL1=Sound_Temp_TL1;TF1=0;if(LDiv2!=0)TR0=0; BeepIO=0;for(i=LDiv2;i0;i-) /音符间的间隔while(TF1=0);TH1=Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;Point+=2;Tone=SoundPoint;Length=SoundPoint+1;BeepIO = 0;/*液晶函数*/*/sbit LCDE=P35;sbit LCDRW=P36;sbit LCDRS=P37;void Delay()uint uiCount; for(uiCount=0;uiCount0;i-) for(y=255;y0;y-);/*/#endif main() unsigned char temp;unsigned char key;unsigned char k,y,m,x,z,i,j;unsigned char counter;InitialSound(); inicry();/*键盘扫描*/ void key_scan() if(key1=0)/-key1为模式转换键)-delay_ms(9);/延时,用于消抖动if(key1=0)/延时后再次确认按键按下while(!key1);set+;if(set=3)set=1;/模式转换按键选择模式if(key2=0)/-key2为曲目2或音符duo)-delay_ms(9);/延时,用于消抖动if(key2=0)/延时后再次确认按键按下 duo=1;while(!key2);if(key3=0)/-key3为曲目3或ruai)-delay_ms(9);/延时,用于消抖动if(key3=0)/延时后再次确认按键按下ru=1;while(!key3);if(key4=0)/-key4为曲目4或mi)-delay_ms(9);/延时,用于消抖动if(key4=0)/延时后再次确认按键按下mi=1;while(!key4);if(key5=0)/-key5为曲目5或fa)-delay_ms(9);/延时,用于消抖动if(key5=0)/延时后再次确认按键按下fa=1;while(!key5);if(key6=0)/-key6为曲目6或suo)-delay_ms(9);/延时,用于消抖动if(key6=0)/延时后再次确认按键按下suo=1;while(!key6);if(key7=0)/-key7为曲目7或la)-delay_ms(9);/延时,用于消抖动if(key7=0)/延时后再次确认按键按下la=1;while(!key7);if(key8=0)/-key8为曲目8或xi)-delay_ms(9);/延时,用于消抖动if(ke
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六年级下册期末数学重点中学真题(比较难)解析
- 2020年中考作文试题汇编(新课标)
- 【语文】河南省郑州市金水区纬五路第二小学六年级上册期末复习试题(含答案)
- 一年级一年级上册阅读理解解题技巧(超强)及练习题(含答案)含解析
- 少先队知识竞赛题及答案(参考版)
- 2025年文物保护专家素质评定考核试题及答案
- 康复医学治疗技术(士)考点研读及冲刺模拟试卷(含答案)
- 长安区春节活动方案策划
- 能源领域咨询工作方案
- 幼儿园演习咨询方案
- 部编版(2024)七年级上册道德与法治第一单元 少年有梦 单元测试卷(含答案)
- 重大危险源安全培训
- 中职历史说课课件
- 广西2025年初中学业水平考试英语真题(含答案及听力音频听力原文)
- 锻造工理论知识考试题(附答案)
- 妇科手术麻醉出科
- 公司人员来访管理制度
- 2025至2030MCU行业市场发展分析及竞争形势与投资机会报告
- 2025年植物保护专业考试试题及答案
- 防水工程质量保证书
- 大额资金使用管理办法
评论
0/150
提交评论